You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by si...@apache.org on 2012/03/29 14:11:39 UTC

svn commit: r1306800 [1/2] - in /lucene/dev/trunk: ./ dev-tools/ dev-tools/eclipse/ dev-tools/maven/ dev-tools/maven/solr/core/ dev-tools/maven/solr/solrj/ lucene/ modules/analysis/common/ solr/ solr/contrib/dataimporthandler/src/java/org/apache/solr/h...

Author: siren
Date: Thu Mar 29 12:11:37 2012
New Revision: 1306800

URL: http://svn.apache.org/viewvc?rev=1306800&view=rev
Log:
SOLR-2020: migrate to Java client that uses Apache Http Components http client (4.x)

Added:
    lucene/dev/trunk/solr/lib/httpclient-4.1.3.jar   (props changed)
      - copied unchanged from r1306788, lucene/dev/branches/branch_3x/solr/lib/httpclient-4.1.3.jar
    lucene/dev/trunk/solr/lib/httpclient-LICENSE-ASL.txt   (props changed)
      - copied unchanged from r1306788, lucene/dev/branches/branch_3x/solr/lib/httpclient-LICENSE-ASL.txt
    lucene/dev/trunk/solr/lib/httpclient-NOTICE.txt   (props changed)
      - copied unchanged from r1306788, lucene/dev/branches/branch_3x/solr/lib/httpclient-NOTICE.txt
    lucene/dev/trunk/solr/lib/httpcore-4.1.4.jar   (props changed)
      - copied unchanged from r1306788, lucene/dev/branches/branch_3x/solr/lib/httpcore-4.1.4.jar
    lucene/dev/trunk/solr/lib/httpcore-LICENSE-ASL.txt   (props changed)
      - copied unchanged from r1306788, lucene/dev/branches/branch_3x/solr/lib/httpcore-LICENSE-ASL.txt
    lucene/dev/trunk/solr/lib/httpcore-NOTICE.txt   (props changed)
      - copied unchanged from r1306788, lucene/dev/branches/branch_3x/solr/lib/httpcore-NOTICE.txt
    lucene/dev/trunk/solr/lib/httpmime-4.1.3.jar   (props changed)
      - copied unchanged from r1306788, lucene/dev/branches/branch_3x/solr/lib/httpmime-4.1.3.jar
    lucene/dev/trunk/solr/lib/httpmime-LICENSE-ASL.txt   (props changed)
      - copied unchanged from r1306788, lucene/dev/branches/branch_3x/solr/lib/httpmime-LICENSE-ASL.txt
    lucene/dev/trunk/solr/lib/httpmime-NOTICE.txt   (props changed)
      - copied unchanged from r1306788, lucene/dev/branches/branch_3x/solr/lib/httpmime-NOTICE.txt
    lucene/dev/trunk/solr/solrj/src/java/org/apache/solr/client/solrj/impl/ConcurrentUpdateSolrServer.java
      - copied unchanged from r1305074, lucene/dev/branches/branch_3x/solr/solrj/src/java/org/apache/solr/client/solrj/impl/ConcurrentUpdateSolrServer.java
    lucene/dev/trunk/solr/solrj/src/java/org/apache/solr/client/solrj/impl/HttpSolrServer.java
      - copied, changed from r1305074, lucene/dev/branches/branch_3x/solr/solrj/src/java/org/apache/solr/client/solrj/impl/HttpSolrServer.java
    lucene/dev/trunk/solr/solrj/src/test/org/apache/solr/client/solrj/BasicHttpSolrServerTest.java
Removed:
    lucene/dev/trunk/solr/lib/commons-httpclient-3.1.jar
    lucene/dev/trunk/solr/lib/commons-httpclient-LICENSE-ASL.txt
    lucene/dev/trunk/solr/lib/commons-httpclient-NOTICE.txt
    lucene/dev/trunk/solr/solrj/src/java/org/apache/solr/client/solrj/impl/CommonsHttpSolrServer.java
    lucene/dev/trunk/solr/solrj/src/java/org/apache/solr/client/solrj/impl/StreamingUpdateSolrServer.java
Modified:
    lucene/dev/trunk/   (props changed)
    lucene/dev/trunk/dev-tools/   (props changed)
    lucene/dev/trunk/dev-tools/eclipse/dot.classpath
    lucene/dev/trunk/dev-tools/maven/pom.xml.template
    lucene/dev/trunk/dev-tools/maven/solr/core/pom.xml.template
    lucene/dev/trunk/dev-tools/maven/solr/solrj/pom.xml.template
    lucene/dev/trunk/lucene/   (props changed)
    lucene/dev/trunk/modules/analysis/common/   (props changed)
    lucene/dev/trunk/solr/   (props changed)
    lucene/dev/trunk/solr/CHANGES.txt
    lucene/dev/trunk/solr/contrib/dataimporthandler/src/java/org/apache/solr/handler/dataimport/SolrEntityProcessor.java
    lucene/dev/trunk/solr/contrib/dataimporthandler/src/test/org/apache/solr/handler/dataimport/TestContentStreamDataSource.java
    lucene/dev/trunk/solr/contrib/dataimporthandler/src/test/org/apache/solr/handler/dataimport/TestSolrEntityProcessorEndToEnd.java
    lucene/dev/trunk/solr/core/src/java/org/apache/solr/client/solrj/embedded/JettySolrRunner.java
    lucene/dev/trunk/solr/core/src/java/org/apache/solr/cloud/RecoveryStrategy.java
    lucene/dev/trunk/solr/core/src/java/org/apache/solr/cloud/SyncStrategy.java
    lucene/dev/trunk/solr/core/src/java/org/apache/solr/cloud/ZkController.java
    lucene/dev/trunk/solr/core/src/java/org/apache/solr/handler/SnapPuller.java
    lucene/dev/trunk/solr/core/src/java/org/apache/solr/handler/component/HttpShardHandler.java
    lucene/dev/trunk/solr/core/src/java/org/apache/solr/handler/component/HttpShardHandlerFactory.java
    lucene/dev/trunk/solr/core/src/java/org/apache/solr/update/PeerSync.java
    lucene/dev/trunk/solr/core/src/java/org/apache/solr/update/SolrCmdDistributor.java
    lucene/dev/trunk/solr/core/src/java/org/apache/solr/update/processor/DistributedUpdateProcessor.java
    lucene/dev/trunk/solr/core/src/test/org/apache/solr/TestSolrCoreProperties.java
    lucene/dev/trunk/solr/core/src/test/org/apache/solr/cloud/BasicDistributedZkTest.java
    lucene/dev/trunk/solr/core/src/test/org/apache/solr/cloud/ChaosMonkeyNothingIsSafeTest.java
    lucene/dev/trunk/solr/core/src/test/org/apache/solr/cloud/FullSolrCloudDistribCmdsTest.java
    lucene/dev/trunk/solr/core/src/test/org/apache/solr/cloud/FullSolrCloudTest.java
    lucene/dev/trunk/solr/core/src/test/org/apache/solr/handler/TestReplicationHandler.java
    lucene/dev/trunk/solr/core/src/test/org/apache/solr/request/TestRemoteStreaming.java
    lucene/dev/trunk/solr/core/src/test/org/apache/solr/schema/TestBinaryField.java
    lucene/dev/trunk/solr/core/src/test/org/apache/solr/servlet/CacheHeaderTest.java
    lucene/dev/trunk/solr/core/src/test/org/apache/solr/servlet/CacheHeaderTestBase.java
    lucene/dev/trunk/solr/core/src/test/org/apache/solr/servlet/NoCacheHeaderTest.java
    lucene/dev/trunk/solr/core/src/test/org/apache/solr/update/DirectUpdateHandlerTest.java
    lucene/dev/trunk/solr/core/src/test/org/apache/solr/update/PeerSyncTest.java
    lucene/dev/trunk/solr/core/src/test/org/apache/solr/update/SolrCmdDistributorTest.java
    lucene/dev/trunk/solr/solrj/src/java/org/apache/solr/client/solrj/impl/CloudSolrServer.java
    lucene/dev/trunk/solr/solrj/src/java/org/apache/solr/client/solrj/impl/LBHttpSolrServer.java
    lucene/dev/trunk/solr/solrj/src/java/org/apache/solr/client/solrj/util/ClientUtils.java
    lucene/dev/trunk/solr/solrj/src/test/org/apache/solr/client/solrj/SolrExampleBinaryTest.java
    lucene/dev/trunk/solr/solrj/src/test/org/apache/solr/client/solrj/SolrExampleTests.java
    lucene/dev/trunk/solr/solrj/src/test/org/apache/solr/client/solrj/SolrExceptionTest.java
    lucene/dev/trunk/solr/solrj/src/test/org/apache/solr/client/solrj/TestBatchUpdate.java
    lucene/dev/trunk/solr/solrj/src/test/org/apache/solr/client/solrj/TestLBHttpSolrServer.java
    lucene/dev/trunk/solr/solrj/src/test/org/apache/solr/client/solrj/embedded/MultiCoreExampleJettyTest.java
    lucene/dev/trunk/solr/solrj/src/test/org/apache/solr/client/solrj/embedded/SolrExampleJettyTest.java
    lucene/dev/trunk/solr/solrj/src/test/org/apache/solr/client/solrj/embedded/SolrExampleStreamingBinaryTest.java
    lucene/dev/trunk/solr/solrj/src/test/org/apache/solr/client/solrj/embedded/SolrExampleStreamingTest.java
    lucene/dev/trunk/solr/test-framework/src/java/org/apache/solr/BaseDistributedSearchTestCase.java
    lucene/dev/trunk/solr/test-framework/src/java/org/apache/solr/SolrJettyTestBase.java

Modified: lucene/dev/trunk/dev-tools/eclipse/dot.classpath
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/dev-tools/eclipse/dot.classpath?rev=1306800&r1=1306799&r2=1306800&view=diff
==============================================================================
--- lucene/dev/trunk/dev-tools/eclipse/dot.classpath (original)
+++ lucene/dev/trunk/dev-tools/eclipse/dot.classpath Thu Mar 29 12:11:37 2012
@@ -104,7 +104,9 @@
 	<classpathentry kind="lib" path="solr/lib/apache-solr-noggit-r1211150.jar"/>
 	<classpathentry kind="lib" path="solr/lib/apache-solr-commons-csv-1.0-SNAPSHOT-r966014.jar"/>
 	<classpathentry kind="lib" path="solr/lib/commons-fileupload-1.2.1.jar"/>
-	<classpathentry kind="lib" path="solr/lib/commons-httpclient-3.1.jar"/>
+	<classpathentry kind="lib" path="solr/lib/httpclient-4.1.3.jar"/>
+	<classpathentry kind="lib" path="solr/lib/httpcore-4.1.4.jar"/>
+	<classpathentry kind="lib" path="solr/lib/httpmime-4.1.3.jar"/>
 	<classpathentry kind="lib" path="solr/lib/commons-io-2.1.jar"/>
 	<classpathentry kind="lib" path="solr/lib/commons-lang-2.6.jar"/>
 	<classpathentry kind="lib" path="solr/lib/easymock-2.2.jar"/>

Modified: lucene/dev/trunk/dev-tools/maven/pom.xml.template
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/dev-tools/maven/pom.xml.template?rev=1306800&r1=1306799&r2=1306800&view=diff
==============================================================================
--- lucene/dev/trunk/dev-tools/maven/pom.xml.template (original)
+++ lucene/dev/trunk/dev-tools/maven/pom.xml.template Thu Mar 29 12:11:37 2012
@@ -45,6 +45,7 @@
     <jetty.version>8.1.2.v20120308</jetty.version>
     <slf4j.version>1.6.1</slf4j.version>
     <tika.version>1.0</tika.version>
+    <httpcomponents.version>4.1.3</httpcomponents.version>
   </properties>
   <issueManagement>
     <system>JIRA</system>
@@ -150,9 +151,14 @@
         <version>2.1</version>
       </dependency>
       <dependency>
-        <groupId>commons-httpclient</groupId>
-        <artifactId>commons-httpclient</artifactId>
-        <version>3.1</version>
+        <groupId>org.apache.httpcomponents</groupId>
+        <artifactId>httpclient</artifactId>
+        <version>${httpcomponents.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.httpcomponents</groupId>
+        <artifactId>httpmime</artifactId>
+        <version>${httpcomponents.version}</version>
       </dependency>
       <dependency>
         <groupId>commons-lang</groupId>

Modified: lucene/dev/trunk/dev-tools/maven/solr/core/pom.xml.template
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/dev-tools/maven/solr/core/pom.xml.template?rev=1306800&r1=1306799&r2=1306800&view=diff
==============================================================================
--- lucene/dev/trunk/dev-tools/maven/solr/core/pom.xml.template (original)
+++ lucene/dev/trunk/dev-tools/maven/solr/core/pom.xml.template Thu Mar 29 12:11:37 2012
@@ -151,14 +151,8 @@
       <artifactId>commons-fileupload</artifactId>
     </dependency>
     <dependency>
-      <groupId>commons-httpclient</groupId>
-      <artifactId>commons-httpclient</artifactId>
-      <exclusions>
-        <exclusion>
-          <groupId>commons-logging</groupId>
-          <artifactId>commons-logging</artifactId>
-        </exclusion>
-      </exclusions>
+      <groupId>org.apache.httpcomponents</groupId>
+      <artifactId>httpmime</artifactId>
     </dependency>
     <dependency>
       <groupId>org.slf4j</groupId>
@@ -213,6 +207,20 @@
       <artifactId>easymock</artifactId>
       <scope>test</scope>
     </dependency>
+    <dependency>
+      <groupId>org.apache.httpcomponents</groupId>
+      <artifactId>httpclient</artifactId>
+      <exclusions>
+        <exclusion>
+          <groupId>commons-logging</groupId>
+          <artifactId>commons-logging</artifactId>
+        </exclusion>
+      </exclusions>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.httpcomponents</groupId>
+      <artifactId>httpmime</artifactId>
+    </dependency>
   </dependencies>
   <build>
     <directory>${build-directory}</directory>

Modified: lucene/dev/trunk/dev-tools/maven/solr/solrj/pom.xml.template
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/dev-tools/maven/solr/solrj/pom.xml.template?rev=1306800&r1=1306799&r2=1306800&view=diff
==============================================================================
--- lucene/dev/trunk/dev-tools/maven/solr/solrj/pom.xml.template (original)
+++ lucene/dev/trunk/dev-tools/maven/solr/solrj/pom.xml.template Thu Mar 29 12:11:37 2012
@@ -84,14 +84,8 @@
       <artifactId>log4j-over-slf4j</artifactId>
     </dependency>
     <dependency>
-      <groupId>commons-httpclient</groupId>
-      <artifactId>commons-httpclient</artifactId>
-      <exclusions>
-        <exclusion>
-          <groupId>commons-logging</groupId>
-          <artifactId>commons-logging</artifactId>
-        </exclusion>
-      </exclusions>
+      <groupId>org.apache.httpcomponents</groupId>
+      <artifactId>httpmime</artifactId>
     </dependency>
     <dependency>
       <groupId>org.slf4j</groupId>
@@ -101,6 +95,22 @@
       <groupId>commons-io</groupId>
       <artifactId>commons-io</artifactId>
     </dependency>
+    <dependency>
+      <groupId>org.apache.httpcomponents</groupId>
+      <artifactId>httpclient</artifactId>
+      <!-- HttpSolrServer requires this dependency. -->
+      <exclusions>
+        <exclusion>
+          <groupId>commons-logging</groupId>
+          <artifactId>commons-logging</artifactId>
+        </exclusion>
+      </exclusions>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.httpcomponents</groupId>
+      <artifactId>httpmime</artifactId>
+      <!-- HttpSolrServer requires this dependency. -->
+    </dependency>
     <!-- Technically, this is optional in SolrJ; but it's fast. SOLR-2852 -->
     <dependency>
       <groupId>org.codehaus.woodstox</groupId>

Modified: lucene/dev/trunk/solr/CHANGES.txt
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/CHANGES.txt?rev=1306800&r1=1306799&r2=1306800&view=diff
==============================================================================
--- lucene/dev/trunk/solr/CHANGES.txt (original)
+++ lucene/dev/trunk/solr/CHANGES.txt Thu Mar 29 12:11:37 2012
@@ -508,6 +508,9 @@ Upgrading from Solr 3.5
 
 New Features
 ----------------------
+* SOLR-2020: Add Java client that uses Apache Http Components http client (4.x).
+  (Chantal Ackermann, Ryan McKinley, Yonik Seeley, siren)
+
 * SOLR-2854: Now load URL content stream data (via stream.url) when called for during request handling,
   rather than loading URL content streams automatically regardless of use.
   (David Smiley and Ryan McKinley via ehatcher)

Modified: lucene/dev/trunk/solr/contrib/dataimporthandler/src/java/org/apache/solr/handler/dataimport/SolrEntityProcessor.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/contrib/dataimporthandler/src/java/org/apache/solr/handler/dataimport/SolrEntityProcessor.java?rev=1306800&r1=1306799&r2=1306800&view=diff
==============================================================================
--- lucene/dev/trunk/solr/contrib/dataimporthandler/src/java/org/apache/solr/handler/dataimport/SolrEntityProcessor.java (original)
+++ lucene/dev/trunk/solr/contrib/dataimporthandler/src/java/org/apache/solr/handler/dataimport/SolrEntityProcessor.java Thu Mar 29 12:11:37 2012
@@ -17,12 +17,13 @@ package org.apache.solr.handler.dataimpo
  * limitations under the License.
  */
 
-import org.apache.commons.httpclient.HttpClient;
-import org.apache.commons.httpclient.MultiThreadedHttpConnectionManager;
+import org.apache.http.client.HttpClient;
+import org.apache.http.impl.client.DefaultHttpClient;
+import org.apache.http.impl.conn.tsccm.ThreadSafeClientConnManager;
 import org.apache.solr.client.solrj.SolrQuery;
 import org.apache.solr.client.solrj.SolrServer;
 import org.apache.solr.client.solrj.SolrServerException;
-import org.apache.solr.client.solrj.impl.CommonsHttpSolrServer;
+import org.apache.solr.client.solrj.impl.HttpSolrServer;
 import org.apache.solr.client.solrj.impl.XMLResponseParser;
 import org.apache.solr.client.solrj.response.QueryResponse;
 import org.apache.solr.common.SolrDocument;
@@ -82,7 +83,7 @@ public class SolrEntityProcessor extends
    * @return a {@link HttpClient} instance used for interfacing with a source Solr service
    */
   protected HttpClient getHttpClient() {
-    return new HttpClient(new MultiThreadedHttpConnectionManager());
+    return new DefaultHttpClient(new ThreadSafeClientConnManager());
   }
 
   @Override
@@ -100,10 +101,10 @@ public class SolrEntityProcessor extends
       URL url = new URL(serverPath);
       // (wt="javabin|xml") default is javabin
       if ("xml".equals(context.getResolvedEntityAttribute(CommonParams.WT))) {
-        solrServer = new CommonsHttpSolrServer(url, client, new XMLResponseParser(), false);
+        solrServer = new HttpSolrServer(url.toExternalForm(), client, new XMLResponseParser());
         LOG.info("using XMLResponseParser");
       } else {
-        solrServer = new CommonsHttpSolrServer(url, client);
+        solrServer = new HttpSolrServer(url.toExternalForm(), client);
         LOG.info("using BinaryResponseParser");
       }
     } catch (MalformedURLException e) {

Modified: lucene/dev/trunk/solr/contrib/dataimporthandler/src/test/org/apache/solr/handler/dataimport/TestContentStreamDataSource.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/contrib/dataimporthandler/src/test/org/apache/solr/handler/dataimport/TestContentStreamDataSource.java?rev=1306800&r1=1306799&r2=1306800&view=diff
==============================================================================
--- lucene/dev/trunk/solr/contrib/dataimporthandler/src/test/org/apache/solr/handler/dataimport/TestContentStreamDataSource.java (original)
+++ lucene/dev/trunk/solr/contrib/dataimporthandler/src/test/org/apache/solr/handler/dataimport/TestContentStreamDataSource.java Thu Mar 29 12:11:37 2012
@@ -18,7 +18,7 @@ package org.apache.solr.handler.dataimpo
 
 import org.apache.commons.io.FileUtils;
 import org.apache.solr.client.solrj.embedded.JettySolrRunner;
-import org.apache.solr.client.solrj.impl.CommonsHttpSolrServer;
+import org.apache.solr.client.solrj.impl.HttpSolrServer;
 import org.apache.solr.client.solrj.request.DirectXmlRequest;
 import org.apache.solr.client.solrj.response.QueryResponse;
 import org.apache.solr.common.SolrDocument;
@@ -69,7 +69,7 @@ public class TestContentStreamDataSource
     params.set("clean", "false");
     req.setParams(params);
     String url = "http://localhost:" + jetty.getLocalPort() + "/solr";
-    CommonsHttpSolrServer solrServer = new CommonsHttpSolrServer(url);
+    HttpSolrServer solrServer = new HttpSolrServer(url);
     solrServer.request(req);
     ModifiableSolrParams qparams = new ModifiableSolrParams();
     qparams.add("q", "*:*");
@@ -89,7 +89,7 @@ public class TestContentStreamDataSource
         UpdateParams.COMMIT_WITHIN, "1000");
     req.setParams(params);
     String url = "http://localhost:" + jetty.getLocalPort() + "/solr";
-    CommonsHttpSolrServer solrServer = new CommonsHttpSolrServer(url);
+    HttpSolrServer solrServer = new HttpSolrServer(url);
     solrServer.request(req);
     Thread.sleep(100);
     ModifiableSolrParams queryAll = params("q", "*");

Modified: lucene/dev/trunk/solr/contrib/dataimporthandler/src/test/org/apache/solr/handler/dataimport/TestSolrEntityProcessorEndToEnd.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/contrib/dataimporthandler/src/test/org/apache/solr/handler/dataimport/TestSolrEntityProcessorEndToEnd.java?rev=1306800&r1=1306799&r2=1306800&view=diff
==============================================================================
--- lucene/dev/trunk/solr/contrib/dataimporthandler/src/test/org/apache/solr/handler/dataimport/TestSolrEntityProcessorEndToEnd.java (original)
+++ lucene/dev/trunk/solr/contrib/dataimporthandler/src/test/org/apache/solr/handler/dataimport/TestSolrEntityProcessorEndToEnd.java Thu Mar 29 12:11:37 2012
@@ -26,12 +26,12 @@ import java.util.List;
 import java.util.Map;
 import java.util.Map.Entry;
 
-import org.apache.commons.httpclient.HttpClient;
-import org.apache.commons.httpclient.MultiThreadedHttpConnectionManager;
 import org.apache.commons.io.FileUtils;
+import org.apache.http.impl.client.DefaultHttpClient;
+import org.apache.http.impl.conn.tsccm.ThreadSafeClientConnManager;
 import org.apache.solr.client.solrj.SolrServerException;
 import org.apache.solr.client.solrj.embedded.JettySolrRunner;
-import org.apache.solr.client.solrj.impl.CommonsHttpSolrServer;
+import org.apache.solr.client.solrj.impl.HttpSolrServer;
 import org.apache.solr.common.SolrInputDocument;
 import org.junit.After;
 import org.junit.AfterClass;
@@ -274,9 +274,9 @@ public class TestSolrEntityProcessorEndT
       sidl.add(sd);
     }
     
-    HttpClient client = new HttpClient(new MultiThreadedHttpConnectionManager());
+    DefaultHttpClient client = new DefaultHttpClient(new ThreadSafeClientConnManager());
     URL url = new URL(getSourceUrl(jetty.getLocalPort()));
-    CommonsHttpSolrServer solrServer = new CommonsHttpSolrServer(url, client);
+    HttpSolrServer solrServer = new HttpSolrServer(url.toExternalForm(), client);
     solrServer.add(sidl);
     solrServer.commit(true, true);
   }

Modified: lucene/dev/trunk/solr/core/src/java/org/apache/solr/client/solrj/embedded/JettySolrRunner.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/core/src/java/org/apache/solr/client/solrj/embedded/JettySolrRunner.java?rev=1306800&r1=1306799&r2=1306800&view=diff
==============================================================================
--- lucene/dev/trunk/solr/core/src/java/org/apache/solr/client/solrj/embedded/JettySolrRunner.java (original)
+++ lucene/dev/trunk/solr/core/src/java/org/apache/solr/client/solrj/embedded/JettySolrRunner.java Thu Mar 29 12:11:37 2012
@@ -28,8 +28,8 @@ import javax.servlet.http.HttpServletRes
 
 import org.apache.solr.servlet.SolrDispatchFilter;
 import org.eclipse.jetty.server.*;
-import org.eclipse.jetty.server.Server;
 import org.eclipse.jetty.server.bio.SocketConnector;
+import org.eclipse.jetty.server.handler.GzipHandler;
 import org.eclipse.jetty.server.session.HashSessionIdManager;
 import org.eclipse.jetty.servlet.FilterHolder;
 import org.eclipse.jetty.servlet.ServletContextHandler;
@@ -124,6 +124,7 @@ public class JettySolrRunner {
 
     // Initialize the servlets
     final ServletContextHandler root = new ServletContextHandler(server,context,ServletContextHandler.SESSIONS);
+    root.setHandler(new GzipHandler());
     server.addLifeCycleListener(new LifeCycle.Listener() {
 
       public void lifeCycleStopping(LifeCycle arg0) {

Modified: lucene/dev/trunk/solr/core/src/java/org/apache/solr/cloud/RecoveryStrategy.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/core/src/java/org/apache/solr/cloud/RecoveryStrategy.java?rev=1306800&r1=1306799&r2=1306800&view=diff
==============================================================================
--- lucene/dev/trunk/solr/core/src/java/org/apache/solr/cloud/RecoveryStrategy.java (original)
+++ lucene/dev/trunk/solr/core/src/java/org/apache/solr/cloud/RecoveryStrategy.java Thu Mar 29 12:11:37 2012
@@ -26,7 +26,7 @@ import java.util.concurrent.Future;
 import java.util.concurrent.TimeoutException;
 
 import org.apache.solr.client.solrj.SolrServerException;
-import org.apache.solr.client.solrj.impl.CommonsHttpSolrServer;
+import org.apache.solr.client.solrj.impl.HttpSolrServer;
 import org.apache.solr.client.solrj.request.AbstractUpdateRequest;
 import org.apache.solr.client.solrj.request.CoreAdminRequest.WaitForState;
 import org.apache.solr.client.solrj.request.UpdateRequest;
@@ -159,7 +159,7 @@ public class RecoveryStrategy extends Th
 
   private void commitOnLeader(String leaderUrl) throws MalformedURLException,
       SolrServerException, IOException {
-    CommonsHttpSolrServer server = new CommonsHttpSolrServer(leaderUrl);
+    HttpSolrServer server = new HttpSolrServer(leaderUrl);
     server.setConnectionTimeout(30000);
     server.setSoTimeout(30000);
     UpdateRequest ureq = new UpdateRequest();
@@ -174,7 +174,7 @@ public class RecoveryStrategy extends Th
   private void sendPrepRecoveryCmd(String leaderBaseUrl,
       String leaderCoreName) throws MalformedURLException, SolrServerException,
       IOException {
-    CommonsHttpSolrServer server = new CommonsHttpSolrServer(leaderBaseUrl);
+    HttpSolrServer server = new HttpSolrServer(leaderBaseUrl);
     server.setConnectionTimeout(45000);
     server.setSoTimeout(45000);
     WaitForState prepCmd = new WaitForState();

Modified: lucene/dev/trunk/solr/core/src/java/org/apache/solr/cloud/SyncStrategy.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/core/src/java/org/apache/solr/cloud/SyncStrategy.java?rev=1306800&r1=1306799&r2=1306800&view=diff
==============================================================================
--- lucene/dev/trunk/solr/core/src/java/org/apache/solr/cloud/SyncStrategy.java (original)
+++ lucene/dev/trunk/solr/core/src/java/org/apache/solr/cloud/SyncStrategy.java Thu Mar 29 12:11:37 2012
@@ -23,12 +23,12 @@ import java.util.ArrayList;
 import java.util.List;
 import java.util.Map;
 
-import org.apache.commons.httpclient.DefaultHttpMethodRetryHandler;
-import org.apache.commons.httpclient.HttpClient;
-import org.apache.commons.httpclient.MultiThreadedHttpConnectionManager;
-import org.apache.commons.httpclient.params.HttpMethodParams;
+import org.apache.http.impl.client.DefaultHttpClient;
+import org.apache.http.impl.client.DefaultHttpRequestRetryHandler;
+import org.apache.http.impl.conn.tsccm.ThreadSafeClientConnManager;
+import org.apache.http.params.CoreConnectionPNames;
 import org.apache.solr.client.solrj.SolrServerException;
-import org.apache.solr.client.solrj.impl.CommonsHttpSolrServer;
+import org.apache.solr.client.solrj.impl.HttpSolrServer;
 import org.apache.solr.client.solrj.request.CoreAdminRequest.RequestRecovery;
 import org.apache.solr.common.SolrException;
 import org.apache.solr.common.cloud.CloudState;
@@ -55,17 +55,16 @@ public class SyncStrategy {
 
   private ShardHandler shardHandler;
   
-  private static MultiThreadedHttpConnectionManager mgr = new MultiThreadedHttpConnectionManager();
-  private static HttpClient client = new HttpClient(mgr);
+  private static ThreadSafeClientConnManager mgr = new ThreadSafeClientConnManager();
+  private static DefaultHttpClient client = new DefaultHttpClient(mgr);
   static {
-    mgr.getParams().setDefaultMaxConnectionsPerHost(20);
-    mgr.getParams().setMaxTotalConnections(10000);
-    mgr.getParams().setConnectionTimeout(30000);
-    mgr.getParams().setSoTimeout(30000);
-
+    mgr.setDefaultMaxPerRoute(20);
+    mgr.setMaxTotal(10000);
+    client.getParams().setIntParameter(CoreConnectionPNames.CONNECTION_TIMEOUT, 30000);
+    client.getParams().setIntParameter(CoreConnectionPNames.SO_TIMEOUT, 30000);
     // prevent retries  (note: this didn't work when set on mgr.. needed to be set on client)
-    DefaultHttpMethodRetryHandler retryhandler = new DefaultHttpMethodRetryHandler(0, false);
-    client.getParams().setParameter(HttpMethodParams.RETRY_HANDLER, retryhandler);
+    DefaultHttpRequestRetryHandler retryhandler = new DefaultHttpRequestRetryHandler(0, false);
+    client.setHttpRequestRetryHandler(retryhandler);
   }
   
   public SyncStrategy() {
@@ -241,7 +240,7 @@ public class SyncStrategy {
            recoverRequestCmd.setAction(CoreAdminAction.REQUESTRECOVERY);
            recoverRequestCmd.setCoreName(((SyncShardRequest)srsp.getShardRequest()).coreName);
            
-           CommonsHttpSolrServer server = new CommonsHttpSolrServer(zkLeader.getBaseUrl());
+           HttpSolrServer server = new HttpSolrServer(zkLeader.getBaseUrl());
            server.request(recoverRequestCmd);
          } catch (Exception e) {
            log.info("Could not tell a replica to recover", e);

Modified: lucene/dev/trunk/solr/core/src/java/org/apache/solr/cloud/ZkController.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/core/src/java/org/apache/solr/cloud/ZkController.java?rev=1306800&r1=1306799&r2=1306800&view=diff
==============================================================================
--- lucene/dev/trunk/solr/core/src/java/org/apache/solr/cloud/ZkController.java (original)
+++ lucene/dev/trunk/solr/core/src/java/org/apache/solr/cloud/ZkController.java Thu Mar 29 12:11:37 2012
@@ -20,7 +20,6 @@ package org.apache.solr.cloud;
 import java.io.File;
 import java.io.IOException;
 import java.net.InetAddress;
-import java.net.MalformedURLException;
 import java.util.Collections;
 import java.util.HashMap;
 import java.util.Iterator;
@@ -33,7 +32,7 @@ import java.util.concurrent.TimeoutExcep
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 
-import org.apache.solr.client.solrj.impl.CommonsHttpSolrServer;
+import org.apache.solr.client.solrj.impl.HttpSolrServer;
 import org.apache.solr.client.solrj.request.CoreAdminRequest.WaitForState;
 import org.apache.solr.common.SolrException;
 import org.apache.solr.common.SolrException.ErrorCode;
@@ -1119,13 +1118,8 @@ public final class ZkController {
     
     boolean isLeader = leaderProps.getCoreUrl().equals(ourUrl);
     if (!isLeader && !SKIP_AUTO_RECOVERY) {
-      CommonsHttpSolrServer server = null;
-      try {
-        server = new CommonsHttpSolrServer(leaderBaseUrl);
-      } catch (MalformedURLException e) {
-        throw new ZooKeeperException(SolrException.ErrorCode.SERVER_ERROR, "",
-            e);
-      }
+      HttpSolrServer server = null;
+      server = new HttpSolrServer(leaderBaseUrl);
       server.setConnectionTimeout(45000);
       server.setSoTimeout(45000);
       WaitForState prepCmd = new WaitForState();

Modified: lucene/dev/trunk/solr/core/src/java/org/apache/solr/handler/SnapPuller.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/core/src/java/org/apache/solr/handler/SnapPuller.java?rev=1306800&r1=1306799&r2=1306800&view=diff
==============================================================================
--- lucene/dev/trunk/solr/core/src/java/org/apache/solr/handler/SnapPuller.java (original)
+++ lucene/dev/trunk/solr/core/src/java/org/apache/solr/handler/SnapPuller.java Thu Mar 29 12:11:37 2012
@@ -16,10 +16,21 @@
  */
 package org.apache.solr.handler;
 
-import org.apache.commons.httpclient.*;
-import org.apache.commons.httpclient.auth.AuthScope;
-import org.apache.commons.httpclient.methods.PostMethod;
 import org.apache.commons.io.IOUtils;
+import org.apache.http.Header;
+import org.apache.http.HttpResponse;
+import org.apache.http.HttpStatus;
+import org.apache.http.auth.AuthScope;
+import org.apache.http.auth.UsernamePasswordCredentials;
+import org.apache.http.client.HttpClient;
+import org.apache.http.client.entity.UrlEncodedFormEntity;
+import org.apache.http.client.methods.HttpPost;
+import org.apache.http.impl.client.DefaultHttpClient;
+import org.apache.http.impl.conn.tsccm.ThreadSafeClientConnManager;
+import org.apache.http.message.AbstractHttpMessage;
+import org.apache.http.message.BasicNameValuePair;
+import org.apache.http.params.CoreConnectionPNames;
+import org.apache.http.util.EntityUtils;
 import org.apache.lucene.index.IndexCommit;
 import org.apache.solr.common.SolrException;
 import org.apache.solr.common.params.ModifiableSolrParams;
@@ -109,17 +120,23 @@ public class SnapPuller {
   // HttpClient for this instance if connectionTimeout or readTimeout has been specified
   private final HttpClient myHttpClient;
 
-  private static synchronized HttpClient createHttpClient(String connTimeout, String readTimeout) {
+  private static synchronized HttpClient createHttpClient(String connTimeout, String readTimeout, String httpBasicAuthUser, String httpBasicAuthPassword) {
     if (connTimeout == null && readTimeout == null && client != null)  return client;
-    MultiThreadedHttpConnectionManager mgr = new MultiThreadedHttpConnectionManager();
+    ThreadSafeClientConnManager mgr = new ThreadSafeClientConnManager();
     // Keeping a very high number so that if you have a large number of cores
     // no requests are kept waiting for an idle connection.
-    mgr.getParams().setDefaultMaxConnectionsPerHost(10000);
-    mgr.getParams().setMaxTotalConnections(10000);
-    mgr.getParams().setSoTimeout(readTimeout == null ? 20000 : Integer.parseInt(readTimeout)); //20 secs
-    mgr.getParams().setConnectionTimeout(connTimeout == null ? 5000 : Integer.parseInt(connTimeout)); //5 secs
-    HttpClient httpClient = new HttpClient(mgr);
+    mgr.setDefaultMaxPerRoute(10000);
+    mgr.setMaxTotal(10000);
+    DefaultHttpClient httpClient = new DefaultHttpClient(mgr);
+    httpClient.getParams().setIntParameter(CoreConnectionPNames.SO_TIMEOUT, readTimeout == null ? 20000 : Integer.parseInt(readTimeout)); //20 secs
+    httpClient.getParams().setIntParameter(CoreConnectionPNames.CONNECTION_TIMEOUT, connTimeout == null ? 5000 : Integer.parseInt(connTimeout)); //5 secs
     if (client == null && connTimeout == null && readTimeout == null) client = httpClient;
+    
+    if (httpBasicAuthUser != null && httpBasicAuthPassword != null) {
+      httpClient.getCredentialsProvider().setCredentials(AuthScope.ANY,
+              new UsernamePasswordCredentials(httpBasicAuthUser, httpBasicAuthPassword));
+    }
+
     return httpClient;
   }
 
@@ -139,11 +156,7 @@ public class SnapPuller {
     String readTimeout = (String) initArgs.get(HTTP_READ_TIMEOUT);
     String httpBasicAuthUser = (String) initArgs.get(HTTP_BASIC_AUTH_USER);
     String httpBasicAuthPassword = (String) initArgs.get(HTTP_BASIC_AUTH_PASSWORD);
-    myHttpClient = createHttpClient(connTimeout, readTimeout);
-    if (httpBasicAuthUser != null && httpBasicAuthPassword != null) {
-      myHttpClient.getState().setCredentials(AuthScope.ANY,
-              new UsernamePasswordCredentials(httpBasicAuthUser, httpBasicAuthPassword));
-    }
+    myHttpClient = createHttpClient(connTimeout, readTimeout, httpBasicAuthUser, httpBasicAuthPassword);
     if (pollInterval != null && pollInterval > 0) {
       startExecutorService();
     } else {
@@ -177,45 +190,66 @@ public class SnapPuller {
    */
   @SuppressWarnings("unchecked")
   NamedList getLatestVersion() throws IOException {
-    PostMethod post = new PostMethod(masterUrl);
-    post.addParameter(COMMAND, CMD_INDEX_VERSION);
-    post.addParameter("wt", "javabin");
+    HttpPost post = new HttpPost(masterUrl);
+    List<BasicNameValuePair> formparams = new ArrayList<BasicNameValuePair>();
+    formparams.add(new BasicNameValuePair("wt", "javabin"));
+    formparams.add(new BasicNameValuePair(COMMAND, CMD_INDEX_VERSION));
+    UrlEncodedFormEntity entity = new UrlEncodedFormEntity(formparams, "UTF-8");
+    post.setEntity(entity);
     return getNamedListResponse(post);
   }
 
   NamedList getCommandResponse(NamedList<String> commands) throws IOException {
-    PostMethod post = new PostMethod(masterUrl);
+    
+    HttpPost post = new HttpPost(masterUrl);
+
+    List<BasicNameValuePair> formparams = new ArrayList<BasicNameValuePair>();
+    formparams.add(new BasicNameValuePair("wt", "javabin"));
+    
     for (Map.Entry<String, String> c : commands) {
-      post.addParameter(c.getKey(),c.getValue());
+      formparams.add(new BasicNameValuePair(c.getKey(), c.getValue()));
     }
-    post.addParameter("wt", "javabin");
+    UrlEncodedFormEntity entity = new UrlEncodedFormEntity(formparams, "UTF-8");
+    post.setEntity(entity);
     return getNamedListResponse(post);
   }
 
-  private NamedList<?> getNamedListResponse(PostMethod method) throws IOException {
+  private NamedList<?> getNamedListResponse(HttpPost method) throws IOException {
+    InputStream input = null;
+    NamedList<?> result = null;
     try {
-      int status = myHttpClient.executeMethod(method);
+      HttpResponse response = myHttpClient.execute(method);
+      int status = response.getStatusLine().getStatusCode();
       if (status != HttpStatus.SC_OK) {
         throw new SolrException(SolrException.ErrorCode.SERVICE_UNAVAILABLE,
                 "Request failed for the url " + method);
       }
-      return (NamedList<?>) new JavaBinCodec().unmarshal(method.getResponseBodyAsStream());
+      input = response.getEntity().getContent();
+      result = (NamedList<?>)new JavaBinCodec().unmarshal(input);
     } finally {
       try {
-        method.releaseConnection();
+        if (input != null) {
+          input.close();
+        }
       } catch (Exception e) {
       }
     }
+    return result;
   }
 
   /**
    * Fetches the list of files in a given index commit point
    */
   void fetchFileList(long gen) throws IOException {
-    PostMethod post = new PostMethod(masterUrl);
-    post.addParameter(COMMAND, CMD_GET_FILE_LIST);
-    post.addParameter(GENERATION, String.valueOf(gen));
-    post.addParameter("wt", "javabin");
+    HttpPost post = new HttpPost(masterUrl);
+
+    List<BasicNameValuePair> formparams = new ArrayList<BasicNameValuePair>();
+    formparams.add(new BasicNameValuePair("wt", "javabin"));
+    formparams.add(new BasicNameValuePair(COMMAND, CMD_GET_FILE_LIST));
+    formparams.add(new BasicNameValuePair(GENERATION, String.valueOf(gen)));
+
+    UrlEncodedFormEntity entity = new UrlEncodedFormEntity(formparams, "UTF-8");
+    post.setEntity(entity);
 
     @SuppressWarnings("unchecked")
     NamedList<List<Map<String, Object>>> nl 
@@ -907,7 +941,7 @@ public class SnapPuller {
 
     private boolean isConf;
 
-    private PostMethod post;
+    private HttpPost post;
 
     private boolean aborted = false;
 
@@ -1064,10 +1098,6 @@ public class SnapPuller {
       } catch (Exception e) {/* noop */
           LOG.error("Error closing the file stream: "+ this.saveAs ,e);
       }
-      try {
-        post.releaseConnection();
-      } catch (Exception e) {
-      }
       if (bytesDownloaded != size) {
         //if the download is not complete then
         //delete the file being downloaded
@@ -1088,35 +1118,43 @@ public class SnapPuller {
      * Open a new stream using HttpClient
      */
     FastInputStream getStream() throws IOException {
-      post = new PostMethod(masterUrl);
+      post = new HttpPost(masterUrl);
       //the method is command=filecontent
-      post.addParameter(COMMAND, CMD_GET_FILE);
+      
+      List<BasicNameValuePair> formparams = new ArrayList<BasicNameValuePair>();
+
+      formparams.add(new BasicNameValuePair(COMMAND, CMD_GET_FILE));
+
       //add the version to download. This is used to reserve the download
-      post.addParameter(GENERATION, indexGen.toString());
+      formparams.add(new BasicNameValuePair(GENERATION, indexGen.toString()));
       if (isConf) {
         //set cf instead of file for config file
-        post.addParameter(CONF_FILE_SHORT, fileName);
+        formparams.add(new BasicNameValuePair(CONF_FILE_SHORT, fileName));
       } else {
-        post.addParameter(FILE, fileName);
+        formparams.add(new BasicNameValuePair(FILE, fileName));
       }
       if (useInternal) {
-        post.addParameter(COMPRESSION, "true");
+        formparams.add(new BasicNameValuePair(COMPRESSION, "true"));
       }
       if (useExternal) {
-        post.setRequestHeader(new Header("Accept-Encoding", "gzip,deflate"));
+        formparams.add(new BasicNameValuePair("Accept-Encoding", "gzip,deflate"));
       }
       //use checksum
       if (this.includeChecksum)
-        post.addParameter(CHECKSUM, "true");
+        formparams.add(new BasicNameValuePair(CHECKSUM, "true"));
       //wt=filestream this is a custom protocol
-      post.addParameter("wt", FILE_STREAM);
+      formparams.add(new BasicNameValuePair("wt", FILE_STREAM));
       // This happen if there is a failure there is a retry. the offset=<sizedownloaded> ensures that
       // the server starts from the offset
       if (bytesDownloaded > 0) {
-        post.addParameter(OFFSET, "" + bytesDownloaded);
+        formparams.add(new BasicNameValuePair(OFFSET, "" + bytesDownloaded));
       }
-      myHttpClient.executeMethod(post);
-      InputStream is = post.getResponseBodyAsStream();
+      
+      UrlEncodedFormEntity entity = new UrlEncodedFormEntity(formparams, "UTF-8");
+      post.setEntity(entity);
+
+      HttpResponse response = myHttpClient.execute(post);
+      InputStream is = response.getEntity().getContent();
       //wrap it using FastInputStream
       if (useInternal) {
         is = new InflaterInputStream(is);
@@ -1130,8 +1168,8 @@ public class SnapPuller {
   /*
    * This is copied from CommonsHttpSolrServer
    */
-  private InputStream checkCompressed(HttpMethod method, InputStream respBody) throws IOException {
-    Header contentEncodingHeader = method.getResponseHeader("Content-Encoding");
+  private InputStream checkCompressed(AbstractHttpMessage method, InputStream respBody) throws IOException {
+    Header contentEncodingHeader = method.getFirstHeader("Content-Encoding");
     if (contentEncodingHeader != null) {
       String contentEncoding = contentEncodingHeader.getValue();
       if (contentEncoding.contains("gzip")) {
@@ -1140,7 +1178,7 @@ public class SnapPuller {
         respBody = new InflaterInputStream(respBody);
       }
     } else {
-      Header contentTypeHeader = method.getResponseHeader("Content-Type");
+      Header contentTypeHeader = method.getFirstHeader("Content-Type");
       if (contentTypeHeader != null) {
         String contentType = contentTypeHeader.getValue();
         if (contentType != null) {

Modified: lucene/dev/trunk/solr/core/src/java/org/apache/solr/handler/component/HttpShardHandler.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/core/src/java/org/apache/solr/handler/component/HttpShardHandler.java?rev=1306800&r1=1306799&r2=1306800&view=diff
==============================================================================
--- lucene/dev/trunk/solr/core/src/java/org/apache/solr/handler/component/HttpShardHandler.java (original)
+++ lucene/dev/trunk/solr/core/src/java/org/apache/solr/handler/component/HttpShardHandler.java Thu Mar 29 12:11:37 2012
@@ -16,11 +16,24 @@ package org.apache.solr.handler.componen
  * limitations under the License.
  */
 
-import org.apache.commons.httpclient.HttpClient;
+import java.net.ConnectException;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+import java.util.concurrent.Callable;
+import java.util.concurrent.CompletionService;
+import java.util.concurrent.ExecutionException;
+import java.util.concurrent.ExecutorCompletionService;
+import java.util.concurrent.Future;
+
+import org.apache.http.client.HttpClient;
 import org.apache.solr.client.solrj.SolrRequest;
 import org.apache.solr.client.solrj.SolrResponse;
 import org.apache.solr.client.solrj.SolrServer;
-import org.apache.solr.client.solrj.impl.CommonsHttpSolrServer;
+import org.apache.solr.client.solrj.impl.HttpSolrServer;
 import org.apache.solr.client.solrj.impl.LBHttpSolrServer;
 import org.apache.solr.client.solrj.request.QueryRequest;
 import org.apache.solr.client.solrj.util.ClientUtils;
@@ -42,10 +55,6 @@ import org.apache.solr.common.util.StrUt
 import org.apache.solr.core.CoreDescriptor;
 import org.apache.solr.request.SolrQueryRequest;
 
-import java.net.ConnectException;
-import java.util.*;
-import java.util.concurrent.*;
-
 public class HttpShardHandler extends ShardHandler {
 
   private HttpShardHandlerFactory httpShardHandlerFactory;
@@ -152,7 +161,7 @@ public class HttpShardHandler extends Sh
           if (urls.size() <= 1) {
             String url = urls.get(0);
             srsp.setShardAddress(url);
-            SolrServer server = new CommonsHttpSolrServer(url, httpClient == null ? httpShardHandlerFactory.client : httpClient);
+            SolrServer server = new HttpSolrServer(url, httpClient == null ? httpShardHandlerFactory.client : httpClient);
             ssr.nl = server.request(req);
           } else {
             LBHttpSolrServer.Rsp rsp = httpShardHandlerFactory.loadbalancer.request(new LBHttpSolrServer.Req(req, urls));

Modified: lucene/dev/trunk/solr/core/src/java/org/apache/solr/handler/component/HttpShardHandlerFactory.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/core/src/java/org/apache/solr/handler/component/HttpShardHandlerFactory.java?rev=1306800&r1=1306799&r2=1306800&view=diff
==============================================================================
--- lucene/dev/trunk/solr/core/src/java/org/apache/solr/handler/component/HttpShardHandlerFactory.java (original)
+++ lucene/dev/trunk/solr/core/src/java/org/apache/solr/handler/component/HttpShardHandlerFactory.java Thu Mar 29 12:11:37 2012
@@ -16,10 +16,15 @@ package org.apache.solr.handler.componen
  * limitations under the License.
  */
 
-import org.apache.commons.httpclient.DefaultHttpMethodRetryHandler;
-import org.apache.commons.httpclient.HttpClient;
-import org.apache.commons.httpclient.MultiThreadedHttpConnectionManager;
-import org.apache.commons.httpclient.params.HttpMethodParams;
+import java.net.MalformedURLException;
+import java.util.Random;
+import java.util.concurrent.*;
+
+import org.apache.http.client.HttpClient;
+import org.apache.http.impl.client.DefaultHttpClient;
+import org.apache.http.impl.client.DefaultHttpRequestRetryHandler;
+import org.apache.http.impl.conn.tsccm.ThreadSafeClientConnManager;
+import org.apache.http.params.CoreConnectionPNames;
 import org.apache.solr.client.solrj.impl.LBHttpSolrServer;
 import org.apache.solr.common.SolrException;
 import org.apache.solr.common.util.NamedList;
@@ -29,10 +34,6 @@ import org.apache.solr.util.plugin.Plugi
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import java.net.MalformedURLException;
-import java.util.Random;
-import java.util.concurrent.*;
-
 public class HttpShardHandlerFactory extends ShardHandlerFactory implements PluginInfoInitialized {
   protected static Logger log = LoggerFactory.getLogger(HttpShardHandlerFactory.class);
 
@@ -64,7 +65,7 @@ public class HttpShardHandlerFactory ext
 
   public String scheme = "http://"; //current default values
 
-  private MultiThreadedHttpConnectionManager mgr;
+  private ThreadSafeClientConnManager mgr;
   // socket timeout measured in ms, closes a socket if read
   // takes longer than x ms to complete. throws
   // java.net.SocketTimeoutException: Read timed out exception
@@ -100,7 +101,7 @@ public class HttpShardHandlerFactory ext
     return getShardHandler(null);
   }
 
-  public ShardHandler getShardHandler(HttpClient httpClient) {
+  public ShardHandler getShardHandler(DefaultHttpClient httpClient){
     return new HttpShardHandler(this, httpClient);
   }
 
@@ -130,18 +131,20 @@ public class HttpShardHandlerFactory ext
         new DefaultSolrThreadFactory("httpShardExecutor")
     );
 
-    mgr = new MultiThreadedHttpConnectionManager();
-    mgr.getParams().setDefaultMaxConnectionsPerHost(this.maxConnectionsPerHost);
-    mgr.getParams().setMaxTotalConnections(10000);
-    mgr.getParams().setConnectionTimeout(this.connectionTimeout);
-    mgr.getParams().setSoTimeout(this.soTimeout);
+    mgr = new ThreadSafeClientConnManager();
+    mgr.setDefaultMaxPerRoute(256);
+    mgr.setMaxTotal(10000);
+    DefaultHttpClient client = new DefaultHttpClient(mgr);
+    
+    client.getParams().setIntParameter(CoreConnectionPNames.CONNECTION_TIMEOUT, connectionTimeout);
+    client.getParams().setIntParameter(CoreConnectionPNames.SO_TIMEOUT, soTimeout);
     // mgr.getParams().setStaleCheckingEnabled(false);
 
-    client = new HttpClient(mgr);
 
     // prevent retries  (note: this didn't work when set on mgr.. needed to be set on client)
-    DefaultHttpMethodRetryHandler retryhandler = new DefaultHttpMethodRetryHandler(0, false);
-    client.getParams().setParameter(HttpMethodParams.RETRY_HANDLER, retryhandler);
+    DefaultHttpRequestRetryHandler retryhandler = new DefaultHttpRequestRetryHandler(0, false);
+    client.setHttpRequestRetryHandler(retryhandler);
+    this.client = client;
 
     try {
       loadbalancer = new LBHttpSolrServer(client);

Modified: lucene/dev/trunk/solr/core/src/java/org/apache/solr/update/PeerSync.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/core/src/java/org/apache/solr/update/PeerSync.java?rev=1306800&r1=1306799&r2=1306800&view=diff
==============================================================================
--- lucene/dev/trunk/solr/core/src/java/org/apache/solr/update/PeerSync.java (original)
+++ lucene/dev/trunk/solr/core/src/java/org/apache/solr/update/PeerSync.java Thu Mar 29 12:11:37 2012
@@ -26,11 +26,11 @@ import java.util.HashSet;
 import java.util.List;
 import java.util.Set;
 
-import org.apache.commons.httpclient.DefaultHttpMethodRetryHandler;
-import org.apache.commons.httpclient.HttpClient;
-import org.apache.commons.httpclient.MultiThreadedHttpConnectionManager;
-import org.apache.commons.httpclient.NoHttpResponseException;
-import org.apache.commons.httpclient.params.HttpMethodParams;
+import org.apache.http.NoHttpResponseException;
+import org.apache.http.impl.client.DefaultHttpClient;
+import org.apache.http.impl.client.DefaultHttpRequestRetryHandler;
+import org.apache.http.impl.conn.tsccm.ThreadSafeClientConnManager;
+import org.apache.http.params.CoreConnectionPNames;
 import org.apache.lucene.util.BytesRef;
 import org.apache.solr.client.solrj.SolrServerException;
 import org.apache.solr.cloud.ZkController;
@@ -77,17 +77,17 @@ public class PeerSync  {
   private Set<Long> requestedUpdateSet;
   private long ourLowThreshold;  // 20th percentile
   private long ourHighThreshold; // 80th percentile
-  private static MultiThreadedHttpConnectionManager mgr = new MultiThreadedHttpConnectionManager();
-  private static HttpClient client = new HttpClient(mgr);
+  private static ThreadSafeClientConnManager mgr = new ThreadSafeClientConnManager();
+  private static DefaultHttpClient client = new DefaultHttpClient(mgr);
   static {
-    mgr.getParams().setDefaultMaxConnectionsPerHost(20);
-    mgr.getParams().setMaxTotalConnections(10000);
-    mgr.getParams().setConnectionTimeout(30000);
-    mgr.getParams().setSoTimeout(30000);
+    mgr.setDefaultMaxPerRoute(20);
+    mgr.setMaxTotal(10000);
+    client.getParams().setIntParameter(CoreConnectionPNames.CONNECTION_TIMEOUT, 30000);
+    client.getParams().setIntParameter(CoreConnectionPNames.SO_TIMEOUT, 30000);
 
     // prevent retries  (note: this didn't work when set on mgr.. needed to be set on client)
-    DefaultHttpMethodRetryHandler retryhandler = new DefaultHttpMethodRetryHandler(0, false);
-    client.getParams().setParameter(HttpMethodParams.RETRY_HANDLER, retryhandler);
+    DefaultHttpRequestRetryHandler retryhandler = new DefaultHttpRequestRetryHandler(0, false);
+    client.setHttpRequestRetryHandler(retryhandler);
   }
 
   // comparator that sorts by absolute value, putting highest first

Modified: lucene/dev/trunk/solr/core/src/java/org/apache/solr/update/SolrCmdDistributor.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/core/src/java/org/apache/solr/update/SolrCmdDistributor.java?rev=1306800&r1=1306799&r2=1306800&view=diff
==============================================================================
--- lucene/dev/trunk/solr/core/src/java/org/apache/solr/update/SolrCmdDistributor.java (original)
+++ lucene/dev/trunk/solr/core/src/java/org/apache/solr/update/SolrCmdDistributor.java Thu Mar 29 12:11:37 2012
@@ -33,9 +33,10 @@ import java.util.concurrent.SynchronousQ
 import java.util.concurrent.ThreadPoolExecutor;
 import java.util.concurrent.TimeUnit;
 
-import org.apache.commons.httpclient.HttpClient;
-import org.apache.commons.httpclient.MultiThreadedHttpConnectionManager;
-import org.apache.solr.client.solrj.impl.CommonsHttpSolrServer;
+import org.apache.http.client.HttpClient;
+import org.apache.http.impl.client.DefaultHttpClient;
+import org.apache.http.impl.conn.tsccm.ThreadSafeClientConnManager;
+import org.apache.solr.client.solrj.impl.HttpSolrServer;
 import org.apache.solr.client.solrj.request.AbstractUpdateRequest;
 import org.apache.solr.client.solrj.request.UpdateRequestExt;
 import org.apache.solr.common.SolrException;
@@ -58,10 +59,10 @@ public class SolrCmdDistributor {
   static HttpClient client;
   
   static {
-    MultiThreadedHttpConnectionManager mgr = new MultiThreadedHttpConnectionManager();
-    mgr.getParams().setDefaultMaxConnectionsPerHost(8);
-    mgr.getParams().setMaxTotalConnections(200);
-    client = new HttpClient(mgr);
+    ThreadSafeClientConnManager mgr = new ThreadSafeClientConnManager();
+    mgr.setDefaultMaxPerRoute(8);
+    mgr.setMaxTotal(200);
+    client = new DefaultHttpClient(mgr);
   }
   
   CompletionService<Request> completionService;
@@ -313,7 +314,7 @@ public class SolrCmdDistributor {
             fullUrl = url;
           }
   
-          CommonsHttpSolrServer server = new CommonsHttpSolrServer(fullUrl,
+          HttpSolrServer server = new HttpSolrServer(fullUrl,
               client);
           
           clonedRequest.ursp = server.request(clonedRequest.ureq);

Modified: lucene/dev/trunk/solr/core/src/java/org/apache/solr/update/processor/DistributedUpdateProcessor.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/core/src/java/org/apache/solr/update/processor/DistributedUpdateProcessor.java?rev=1306800&r1=1306799&r2=1306800&view=diff
==============================================================================
--- lucene/dev/trunk/solr/core/src/java/org/apache/solr/update/processor/DistributedUpdateProcessor.java (original)
+++ lucene/dev/trunk/solr/core/src/java/org/apache/solr/update/processor/DistributedUpdateProcessor.java Thu Mar 29 12:11:37 2012
@@ -25,7 +25,7 @@ import java.util.Map.Entry;
 
 import org.apache.lucene.util.BytesRef;
 import org.apache.lucene.util.CharsRef;
-import org.apache.solr.client.solrj.impl.CommonsHttpSolrServer;
+import org.apache.solr.client.solrj.impl.HttpSolrServer;
 import org.apache.solr.client.solrj.request.CoreAdminRequest.RequestRecovery;
 import org.apache.solr.cloud.CloudDescriptor;
 import org.apache.solr.cloud.ZkController;
@@ -333,10 +333,10 @@ public class DistributedUpdateProcessor 
       // TODO: what if its is already recovering? Right now recoveries queue up -
       // should they?
       String recoveryUrl = error.node.getBaseUrl();
-      CommonsHttpSolrServer server;
+      HttpSolrServer server;
       log.info("try and ask " + recoveryUrl + " to recover");
       try {
-        server = new CommonsHttpSolrServer(recoveryUrl);
+        server = new HttpSolrServer(recoveryUrl);
         server.setSoTimeout(5000);
         server.setConnectionTimeout(5000);
         

Modified: lucene/dev/trunk/solr/core/src/test/org/apache/solr/TestSolrCoreProperties.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/core/src/test/org/apache/solr/TestSolrCoreProperties.java?rev=1306800&r1=1306799&r2=1306800&view=diff
==============================================================================
--- lucene/dev/trunk/solr/core/src/test/org/apache/solr/TestSolrCoreProperties.java (original)
+++ lucene/dev/trunk/solr/core/src/test/org/apache/solr/TestSolrCoreProperties.java Thu Mar 29 12:11:37 2012
@@ -19,10 +19,10 @@ package org.apache.solr;
 import org.apache.lucene.util.LuceneTestCase;
 import org.apache.solr.util.AbstractSolrTestCase;
 import org.apache.solr.client.solrj.embedded.JettySolrRunner;
+import org.apache.solr.client.solrj.impl.HttpSolrServer;
 import org.apache.solr.client.solrj.SolrServer;
 import org.apache.solr.client.solrj.SolrServerException;
 import org.apache.solr.client.solrj.response.QueryResponse;
-import org.apache.solr.client.solrj.impl.CommonsHttpSolrServer;
 import org.apache.solr.common.params.ModifiableSolrParams;
 import org.apache.commons.io.IOUtils;
 
@@ -51,7 +51,7 @@ public class TestSolrCoreProperties exte
 
     solrJetty.start();
     String url = "http://localhost:" + solrJetty.getLocalPort() + "/solr";
-    client = new CommonsHttpSolrServer(url);
+    client = new HttpSolrServer(url);
 
   }
 

Modified: lucene/dev/trunk/solr/core/src/test/org/apache/solr/cloud/BasicDistributedZkTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/core/src/test/org/apache/solr/cloud/BasicDistributedZkTest.java?rev=1306800&r1=1306799&r2=1306800&view=diff
==============================================================================
--- lucene/dev/trunk/solr/core/src/test/org/apache/solr/cloud/BasicDistributedZkTest.java (original)
+++ lucene/dev/trunk/solr/core/src/test/org/apache/solr/cloud/BasicDistributedZkTest.java Thu Mar 29 12:11:37 2012
@@ -38,7 +38,7 @@ import org.apache.solr.client.solrj.Solr
 import org.apache.solr.client.solrj.SolrServer;
 import org.apache.solr.client.solrj.SolrServerException;
 import org.apache.solr.client.solrj.impl.CloudSolrServer;
-import org.apache.solr.client.solrj.impl.CommonsHttpSolrServer;
+import org.apache.solr.client.solrj.impl.HttpSolrServer;
 import org.apache.solr.client.solrj.request.AbstractUpdateRequest;
 import org.apache.solr.client.solrj.request.ContentStreamUpdateRequest;
 import org.apache.solr.client.solrj.request.CoreAdminRequest.Create;
@@ -288,7 +288,7 @@ public class BasicDistributedZkTest exte
 
   private void testNumberOfCommitsWithCommitAfterAdd()
       throws MalformedURLException, SolrServerException, IOException {
-    long startCommits = getNumCommits((CommonsHttpSolrServer) clients.get(0));
+    long startCommits = getNumCommits((HttpSolrServer) clients.get(0));
     
     ContentStreamUpdateRequest up = new ContentStreamUpdateRequest("/update/csv");
     up.addFile(getFile("books_numeric_ids.csv"));
@@ -296,14 +296,14 @@ public class BasicDistributedZkTest exte
     up.setAction(AbstractUpdateRequest.ACTION.COMMIT, true, true);
     NamedList<Object> result = clients.get(0).request(up);
     
-    long endCommits = getNumCommits((CommonsHttpSolrServer) clients.get(0));
+    long endCommits = getNumCommits((HttpSolrServer) clients.get(0));
 
     assertEquals(startCommits + 1L, endCommits);
   }
 
-  private Long getNumCommits(CommonsHttpSolrServer solrServer) throws MalformedURLException,
+  private Long getNumCommits(HttpSolrServer solrServer) throws MalformedURLException,
       SolrServerException, IOException {
-    CommonsHttpSolrServer server = new CommonsHttpSolrServer(solrServer.getBaseURL());
+    HttpSolrServer server = new HttpSolrServer(solrServer.getBaseURL());
     ModifiableSolrParams params = new ModifiableSolrParams();
     params.set("qt", "/admin/mbeans?key=updateHandler&stats=true");
     // use generic request to avoid extra processing of queries
@@ -322,7 +322,7 @@ public class BasicDistributedZkTest exte
     List<SolrServer> collectionClients = new ArrayList<SolrServer>();
     SolrServer client = clients.get(0);
     otherCollectionClients.put(oneInstanceCollection2, collectionClients);
-    String baseUrl = ((CommonsHttpSolrServer) client).getBaseURL();
+    String baseUrl = ((HttpSolrServer) client).getBaseURL();
     createCollection(oneInstanceCollection2, collectionClients, baseUrl, 1, "slice1");
     createCollection(oneInstanceCollection2, collectionClients, baseUrl, 2, "slice2");
     createCollection(oneInstanceCollection2, collectionClients, baseUrl, 3, "slice2");
@@ -386,7 +386,7 @@ public class BasicDistributedZkTest exte
 
   private void testSearchByCollectionName() throws SolrServerException {
     SolrServer client = clients.get(0);
-    String baseUrl = ((CommonsHttpSolrServer) client).getBaseURL();
+    String baseUrl = ((HttpSolrServer) client).getBaseURL();
     
     // the cores each have different names, but if we add the collection name to the url
     // we should get mapped to the right core
@@ -400,7 +400,7 @@ public class BasicDistributedZkTest exte
     List<SolrServer> collectionClients = new ArrayList<SolrServer>();
     SolrServer client = clients.get(0);
     otherCollectionClients.put(oneInstanceCollection , collectionClients);
-    String baseUrl = ((CommonsHttpSolrServer) client).getBaseURL();
+    String baseUrl = ((HttpSolrServer) client).getBaseURL();
     createCollection(oneInstanceCollection, collectionClients, baseUrl, 1);
     createCollection(oneInstanceCollection, collectionClients, baseUrl, 2);
     createCollection(oneInstanceCollection, collectionClients, baseUrl, 3);
@@ -458,9 +458,9 @@ public class BasicDistributedZkTest exte
       IOException, InterruptedException {
     Callable call = new Callable() {
       public Object call() {
-        CommonsHttpSolrServer server;
+        HttpSolrServer server;
         try {
-          server = new CommonsHttpSolrServer(baseUrl);
+          server = new HttpSolrServer(baseUrl);
           
           Create createCmd = new Create();
           createCmd.setRoles("none");
@@ -570,10 +570,10 @@ public class BasicDistributedZkTest exte
       final int frozeUnique = unique;
       Callable call = new Callable() {
         public Object call() {
-          CommonsHttpSolrServer server;
+          HttpSolrServer server;
           try {
-            server = new CommonsHttpSolrServer(
-                ((CommonsHttpSolrServer) client).getBaseURL());
+            server = new HttpSolrServer(
+                ((HttpSolrServer) client).getBaseURL());
             
             Create createCmd = new Create();
             createCmd.setCoreName(collection);
@@ -590,7 +590,7 @@ public class BasicDistributedZkTest exte
       };
      
       collectionClients.add(createNewSolrServer(collection,
-          ((CommonsHttpSolrServer) client).getBaseURL()));
+          ((HttpSolrServer) client).getBaseURL()));
       pending.add(completionService.submit(call));
       while (pending != null && pending.size() > 0) {
         
@@ -604,7 +604,7 @@ public class BasicDistributedZkTest exte
   protected SolrServer createNewSolrServer(String collection, String baseUrl) {
     try {
       // setup the server...
-      CommonsHttpSolrServer s = new CommonsHttpSolrServer(baseUrl + "/" + collection);
+      HttpSolrServer s = new HttpSolrServer(baseUrl + "/" + collection);
       s.setConnectionTimeout(100); // 1/10th sec
       s.setDefaultMaxConnectionsPerHost(100);
       s.setMaxTotalConnections(100);

Modified: lucene/dev/trunk/solr/core/src/test/org/apache/solr/cloud/ChaosMonkeyNothingIsSafeTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/core/src/test/org/apache/solr/cloud/ChaosMonkeyNothingIsSafeTest.java?rev=1306800&r1=1306799&r2=1306800&view=diff
==============================================================================
--- lucene/dev/trunk/solr/core/src/test/org/apache/solr/cloud/ChaosMonkeyNothingIsSafeTest.java (original)
+++ lucene/dev/trunk/solr/core/src/test/org/apache/solr/cloud/ChaosMonkeyNothingIsSafeTest.java Thu Mar 29 12:11:37 2012
@@ -25,12 +25,12 @@ import java.util.ArrayList;
 import java.util.List;
 import java.util.Set;
 
-import org.apache.commons.httpclient.HttpClient;
-import org.apache.commons.httpclient.MultiThreadedHttpConnectionManager;
+import org.apache.http.impl.client.DefaultHttpClient;
+import org.apache.http.impl.conn.tsccm.ThreadSafeClientConnManager;
 import org.apache.solr.client.solrj.SolrQuery;
 import org.apache.solr.client.solrj.SolrServer;
-import org.apache.solr.client.solrj.impl.CommonsHttpSolrServer;
-import org.apache.solr.client.solrj.impl.StreamingUpdateSolrServer;
+import org.apache.solr.client.solrj.impl.ConcurrentUpdateSolrServer;
+import org.apache.solr.client.solrj.impl.HttpSolrServer;
 import org.apache.solr.common.SolrInputDocument;
 import org.apache.zookeeper.KeeperException;
 import org.junit.After;
@@ -206,11 +206,11 @@ public class ChaosMonkeyNothingIsSafeTes
   }
 
   class FullThrottleStopableIndexingThread extends StopableIndexingThread {
-    MultiThreadedHttpConnectionManager cm = new MultiThreadedHttpConnectionManager();
-    private HttpClient httpClient = new HttpClient(cm) ;
+    ThreadSafeClientConnManager cm = new ThreadSafeClientConnManager();
+    private DefaultHttpClient httpClient = new DefaultHttpClient(cm) ;
     private volatile boolean stop = false;
     int clientIndex = 0;
-    private StreamingUpdateSolrServer suss;
+    private ConcurrentUpdateSolrServer suss;
     private List<SolrServer> clients;  
     
     public FullThrottleStopableIndexingThread(List<SolrServer> clients,
@@ -219,8 +219,8 @@ public class ChaosMonkeyNothingIsSafeTes
       setName("FullThrottleStopableIndexingThread");
       setDaemon(true);
       this.clients = clients;
-      suss = new StreamingUpdateSolrServer(
-          ((CommonsHttpSolrServer) clients.get(0)).getBaseURL(), httpClient, 8,
+      suss = new ConcurrentUpdateSolrServer(
+          ((HttpSolrServer) clients.get(0)).getBaseURL(), httpClient, 8,
           2) {
         public void handleError(Throwable ex) {
           log.warn("suss error", ex);
@@ -288,8 +288,8 @@ public class ChaosMonkeyNothingIsSafeTes
         }
         try {
           suss.shutdownNow();
-          suss = new StreamingUpdateSolrServer(
-              ((CommonsHttpSolrServer) clients.get(clientIndex)).getBaseURL(),
+          suss = new ConcurrentUpdateSolrServer(
+              ((HttpSolrServer) clients.get(clientIndex)).getBaseURL(),
               httpClient, 30, 3) {
             public void handleError(Throwable ex) {
               log.warn("suss error", ex);

Modified: lucene/dev/trunk/solr/core/src/test/org/apache/solr/cloud/FullSolrCloudDistribCmdsTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/core/src/test/org/apache/solr/cloud/FullSolrCloudDistribCmdsTest.java?rev=1306800&r1=1306799&r2=1306800&view=diff
==============================================================================
--- lucene/dev/trunk/solr/core/src/test/org/apache/solr/cloud/FullSolrCloudDistribCmdsTest.java (original)
+++ lucene/dev/trunk/solr/core/src/test/org/apache/solr/cloud/FullSolrCloudDistribCmdsTest.java Thu Mar 29 12:11:37 2012
@@ -24,8 +24,8 @@ import java.util.concurrent.TimeoutExcep
 import org.apache.solr.client.solrj.SolrQuery;
 import org.apache.solr.client.solrj.SolrServer;
 import org.apache.solr.client.solrj.SolrServerException;
-import org.apache.solr.client.solrj.impl.CommonsHttpSolrServer;
-import org.apache.solr.client.solrj.impl.StreamingUpdateSolrServer;
+import org.apache.solr.client.solrj.impl.HttpSolrServer;
+import org.apache.solr.client.solrj.impl.ConcurrentUpdateSolrServer;
 import org.apache.solr.client.solrj.request.UpdateRequest;
 import org.apache.solr.client.solrj.response.QueryResponse;
 import org.apache.solr.common.SolrDocument;
@@ -40,7 +40,6 @@ import org.apache.solr.update.processor.
 import org.apache.zookeeper.CreateMode;
 import org.apache.zookeeper.KeeperException;
 import org.junit.BeforeClass;
-import org.junit.Ignore;
 
 /**
  * Super basic testing, no shard restarting or anything.
@@ -239,8 +238,8 @@ public class FullSolrCloudDistribCmdsTes
   }
 
   private void testIndexingWithSuss() throws MalformedURLException, Exception {
-    StreamingUpdateSolrServer suss = new StreamingUpdateSolrServer(
-        ((CommonsHttpSolrServer) clients.get(0)).getBaseURL(), 3, 1);
+    ConcurrentUpdateSolrServer suss = new ConcurrentUpdateSolrServer(
+        ((HttpSolrServer) clients.get(0)).getBaseURL(), 3, 1);
     
     for (int i=100; i<150; i++) {
       index_specific(suss, id, i);      

Modified: lucene/dev/trunk/solr/core/src/test/org/apache/solr/cloud/FullSolrCloudTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/core/src/test/org/apache/solr/cloud/FullSolrCloudTest.java?rev=1306800&r1=1306799&r2=1306800&view=diff
==============================================================================
--- lucene/dev/trunk/solr/core/src/test/org/apache/solr/cloud/FullSolrCloudTest.java (original)
+++ lucene/dev/trunk/solr/core/src/test/org/apache/solr/cloud/FullSolrCloudTest.java Thu Mar 29 12:11:37 2012
@@ -25,12 +25,13 @@ import java.util.*;
 import java.util.concurrent.TimeoutException;
 import java.util.concurrent.atomic.AtomicInteger;
 
+import org.apache.http.params.CoreConnectionPNames;
 import org.apache.solr.client.solrj.SolrQuery;
 import org.apache.solr.client.solrj.SolrServer;
 import org.apache.solr.client.solrj.SolrServerException;
 import org.apache.solr.client.solrj.embedded.JettySolrRunner;
 import org.apache.solr.client.solrj.impl.CloudSolrServer;
-import org.apache.solr.client.solrj.impl.CommonsHttpSolrServer;
+import org.apache.solr.client.solrj.impl.HttpSolrServer;
 import org.apache.solr.client.solrj.request.UpdateRequest;
 import org.apache.solr.client.solrj.response.QueryResponse;
 import org.apache.solr.common.SolrDocument;
@@ -206,8 +207,9 @@ public class FullSolrCloudTest extends A
           CloudSolrServer server = new CloudSolrServer(zkServer.getZkAddress());
           server.setDefaultCollection(DEFAULT_COLLECTION);
           server.getLbServer().getHttpClient().getParams()
-              .setConnectionManagerTimeout(5000);
-          server.getLbServer().getHttpClient().getParams().setSoTimeout(15000);
+              .setParameter(CoreConnectionPNames.CONNECTION_TIMEOUT, 5000);
+          server.getLbServer().getHttpClient().getParams()
+              .setParameter(CoreConnectionPNames.SO_TIMEOUT, 15000);
           cloudClient = server;
         } catch (MalformedURLException e) {
           throw new RuntimeException(e);
@@ -348,7 +350,7 @@ public class FullSolrCloudTest extends A
       for (Map.Entry<String,Slice> slice : slices.entrySet()) {
         Map<String,ZkNodeProps> theShards = slice.getValue().getShards();
         for (Map.Entry<String,ZkNodeProps> shard : theShards.entrySet()) {
-          int port = new URI(((CommonsHttpSolrServer) client).getBaseURL())
+          int port = new URI(((HttpSolrServer) client).getBaseURL())
               .getPort();
           
           if (shard.getKey().contains(":" + port + "_")) {
@@ -475,7 +477,7 @@ public class FullSolrCloudTest extends A
     }
     controlClient.add(doc);
     
-    CommonsHttpSolrServer client = (CommonsHttpSolrServer) clients
+    HttpSolrServer client = (HttpSolrServer) clients
         .get(serverNumber);
     
     UpdateRequest ureq = new UpdateRequest();
@@ -1207,7 +1209,7 @@ public class FullSolrCloudTest extends A
         Map<String,ZkNodeProps> theShards = slice.getValue().getShards();
         for (Map.Entry<String,ZkNodeProps> shard : theShards.entrySet()) {
           String shardName = new URI(
-              ((CommonsHttpSolrServer) client).getBaseURL()).getPort()
+              ((HttpSolrServer) client).getBaseURL()).getPort()
               + "_solr_";
           if (verbose && shard.getKey().endsWith(shardName)) {
             System.err.println("shard:" + slice.getKey());
@@ -1317,7 +1319,7 @@ public class FullSolrCloudTest extends A
     if (VERBOSE || printLayoutOnTearDown) {
       super.printLayout();
     }
-    ((CommonsHttpSolrServer) controlClient).shutdown();
+    ((HttpSolrServer) controlClient).shutdown();
     if (cloudClient != null) {
       cloudClient.close();
     }
@@ -1353,7 +1355,7 @@ public class FullSolrCloudTest extends A
       // setup the server...
       String url = "http://localhost:" + port + context + "/"
           + DEFAULT_COLLECTION;
-      CommonsHttpSolrServer s = new CommonsHttpSolrServer(url);
+      HttpSolrServer s = new HttpSolrServer(url);
       s.setConnectionTimeout(100); // 1/10th sec
       s.setSoTimeout(15000);
       s.setDefaultMaxConnectionsPerHost(100);

Modified: lucene/dev/trunk/solr/core/src/test/org/apache/solr/handler/TestReplicationHandler.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/core/src/test/org/apache/solr/handler/TestReplicationHandler.java?rev=1306800&r1=1306799&r2=1306800&view=diff
==============================================================================
--- lucene/dev/trunk/solr/core/src/test/org/apache/solr/handler/TestReplicationHandler.java (original)
+++ lucene/dev/trunk/solr/core/src/test/org/apache/solr/handler/TestReplicationHandler.java Thu Mar 29 12:11:37 2012
@@ -41,7 +41,7 @@ import org.apache.solr.TestDistributedSe
 import org.apache.solr.client.solrj.SolrServer;
 import org.apache.solr.client.solrj.SolrServerException;
 import org.apache.solr.client.solrj.embedded.JettySolrRunner;
-import org.apache.solr.client.solrj.impl.CommonsHttpSolrServer;
+import org.apache.solr.client.solrj.impl.HttpSolrServer;
 import org.apache.solr.client.solrj.request.QueryRequest;
 import org.apache.solr.client.solrj.response.QueryResponse;
 import org.apache.solr.common.SolrDocument;
@@ -131,7 +131,7 @@ public class TestReplicationHandler exte
     try {
       // setup the server...
       String url = "http://localhost:" + port + context;
-      CommonsHttpSolrServer s = new CommonsHttpSolrServer(url);
+      HttpSolrServer s = new HttpSolrServer(url);
       s.setDefaultMaxConnectionsPerHost(100);
       s.setMaxTotalConnections(100);
       return s;

Modified: lucene/dev/trunk/solr/core/src/test/org/apache/solr/request/TestRemoteStreaming.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/core/src/test/org/apache/solr/request/TestRemoteStreaming.java?rev=1306800&r1=1306799&r2=1306800&view=diff
==============================================================================
--- lucene/dev/trunk/solr/core/src/test/org/apache/solr/request/TestRemoteStreaming.java (original)
+++ lucene/dev/trunk/solr/core/src/test/org/apache/solr/request/TestRemoteStreaming.java Thu Mar 29 12:11:37 2012
@@ -22,7 +22,7 @@ import org.apache.solr.SolrJettyTestBase
 import org.apache.solr.client.solrj.SolrQuery;
 import org.apache.solr.client.solrj.SolrServer;
 import org.apache.solr.client.solrj.SolrServerException;
-import org.apache.solr.client.solrj.impl.CommonsHttpSolrServer;
+import org.apache.solr.client.solrj.impl.HttpSolrServer;
 import org.apache.solr.client.solrj.request.QueryRequest;
 import org.apache.solr.client.solrj.response.QueryResponse;
 import org.apache.solr.common.SolrException;
@@ -68,7 +68,7 @@ public class TestRemoteStreaming extends
 
   @Test
   public void testStreamUrl() throws Exception {
-    CommonsHttpSolrServer solrServer = (CommonsHttpSolrServer) getSolrServer();
+    HttpSolrServer solrServer = (HttpSolrServer) getSolrServer();
     String streamUrl = solrServer.getBaseURL()+"/select?q=*:*&fl=id&wt=csv";
 
     String getUrl = solrServer.getBaseURL()+"/debug/dump?wt=xml&stream.url="+URLEncoder.encode(streamUrl,"UTF-8");
@@ -127,7 +127,7 @@ public class TestRemoteStreaming extends
 
   /** Compose a url that if you get it, it will delete all the data. */
   private String makeDeleteAllUrl() throws UnsupportedEncodingException {
-    CommonsHttpSolrServer solrServer = (CommonsHttpSolrServer) getSolrServer();
+    HttpSolrServer solrServer = (HttpSolrServer) getSolrServer();
     String deleteQuery = "<delete><query>*:*</query></delete>";
     return solrServer.getBaseURL()+"/update?commit=true&stream.body="+ URLEncoder.encode(deleteQuery, "UTF-8");
   }

Modified: lucene/dev/trunk/solr/core/src/test/org/apache/solr/schema/TestBinaryField.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/core/src/test/org/apache/solr/schema/TestBinaryField.java?rev=1306800&r1=1306799&r2=1306800&view=diff
==============================================================================
--- lucene/dev/trunk/solr/core/src/test/org/apache/solr/schema/TestBinaryField.java (original)
+++ lucene/dev/trunk/solr/core/src/test/org/apache/solr/schema/TestBinaryField.java Thu Mar 29 12:11:37 2012
@@ -27,18 +27,19 @@ import org.apache.lucene.util.SystemProp
 import org.apache.solr.client.solrj.SolrQuery;
 import org.apache.solr.client.solrj.beans.Field;
 import org.apache.solr.client.solrj.embedded.JettySolrRunner;
-import org.apache.solr.client.solrj.impl.CommonsHttpSolrServer;
+import org.apache.solr.client.solrj.impl.HttpSolrServer;
 import org.apache.solr.client.solrj.response.QueryResponse;
 import org.apache.solr.common.SolrDocument;
 import org.apache.solr.common.SolrDocumentList;
 import org.apache.solr.common.SolrInputDocument;
 import org.apache.solr.core.SolrResourceLoader;
+import org.apache.commons.io.IOUtils;
 import org.junit.Rule;
 import org.junit.rules.RuleChain;
 import org.junit.rules.TestRule;
 
 public class TestBinaryField extends LuceneTestCase {
-  CommonsHttpSolrServer server;
+  HttpSolrServer server;
   JettySolrRunner jetty;
 
   int port = 0;
@@ -83,7 +84,7 @@ public class TestBinaryField extends Luc
     port = jetty.getLocalPort();
 
     String url = "http://localhost:" + jetty.getLocalPort() + context;
-    server = new CommonsHttpSolrServer(url);
+    server = new HttpSolrServer(url);
   }
 
   public void testSimple() throws Exception {

Modified: lucene/dev/trunk/solr/core/src/test/org/apache/solr/servlet/CacheHeaderTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/core/src/test/org/apache/solr/servlet/CacheHeaderTest.java?rev=1306800&r1=1306799&r2=1306800&view=diff
==============================================================================
--- lucene/dev/trunk/solr/core/src/test/org/apache/solr/servlet/CacheHeaderTest.java (original)
+++ lucene/dev/trunk/solr/core/src/test/org/apache/solr/servlet/CacheHeaderTest.java Thu Mar 29 12:11:37 2012
@@ -20,12 +20,13 @@ import java.io.File;
 import java.io.FileOutputStream;
 import java.io.OutputStreamWriter;
 import java.io.Writer;
+import java.util.Arrays;
 import java.util.Date;
 
-import org.apache.commons.httpclient.Header;
-import org.apache.commons.httpclient.HttpMethodBase;
-import org.apache.commons.httpclient.NameValuePair;
-import org.apache.commons.httpclient.util.DateUtil;
+import org.apache.http.Header;
+import org.apache.http.HttpResponse;
+import org.apache.http.client.methods.HttpRequestBase;
+import org.apache.http.impl.cookie.DateUtils;
 import org.junit.BeforeClass;
 import org.junit.Test;
 
@@ -46,39 +47,35 @@ public class CacheHeaderTest extends Cac
   @Test
   public void testCacheVetoHandler() throws Exception {
     File f=makeFile(CONTENTS);
-    HttpMethodBase m=getUpdateMethod("GET");
-    m.setQueryString(new NameValuePair[] { new NameValuePair("stream.file",f.getCanonicalPath())});
-    getClient().executeMethod(m);
-    assertEquals(200, m.getStatusCode());
-    checkVetoHeaders(m, true);
+    HttpRequestBase m=getUpdateMethod("GET", "stream.file", f.getCanonicalPath());
+    HttpResponse response = getClient().execute(m);
+    assertEquals(200, response.getStatusLine().getStatusCode());
+    checkVetoHeaders(response, true);
   }
   
   @Test
   public void testCacheVetoException() throws Exception {
-    HttpMethodBase m = getSelectMethod("GET");
+    HttpRequestBase m = getSelectMethod("GET", "q", "xyz_ignore_exception:solr", "qt", "standard");
     // We force an exception from Solr. This should emit "no-cache" HTTP headers
-    m.setQueryString(new NameValuePair[] { new NameValuePair("q", "xyz_ignore_exception:solr"),
-        new NameValuePair("qt", "standard") });
-    getClient().executeMethod(m);
-    assertFalse(m.getStatusCode() == 200);
-    checkVetoHeaders(m, false);
+    HttpResponse response = getClient().execute(m);
+    assertFalse(response.getStatusLine().getStatusCode() == 200);
+    checkVetoHeaders(response, false);
   }
 
-
-  protected void checkVetoHeaders(HttpMethodBase m, boolean checkExpires) throws Exception {
-    Header head = m.getResponseHeader("Cache-Control");
+  protected void checkVetoHeaders(HttpResponse response, boolean checkExpires) throws Exception {
+    Header head = response.getFirstHeader("Cache-Control");
     assertNotNull("We got no Cache-Control header", head);
     assertTrue("We got no no-cache in the Cache-Control header", head.getValue().contains("no-cache"));
     assertTrue("We got no no-store in the Cache-Control header", head.getValue().contains("no-store"));
 
-    head = m.getResponseHeader("Pragma");
+    head = response.getFirstHeader("Pragma");
     assertNotNull("We got no Pragma header", head);
     assertEquals("no-cache", head.getValue());
 
     if (checkExpires) {
-      head = m.getResponseHeader("Expires");
-      assertNotNull("We got no Expires header:" + m.getResponseHeaders(), head);
-      Date d = DateUtil.parseDate(head.getValue());
+      head = response.getFirstHeader("Expires");
+      assertNotNull("We got no Expires header:" + Arrays.asList(response.getAllHeaders()), head);
+      Date d = DateUtils.parseDate(head.getValue());
       assertTrue("We got no Expires header far in the past", System
           .currentTimeMillis()
           - d.getTime() > 100000);
@@ -89,68 +86,67 @@ public class CacheHeaderTest extends Cac
   protected void doLastModified(String method) throws Exception {
     // We do a first request to get the last modified
     // This must result in a 200 OK response
-    HttpMethodBase get = getSelectMethod(method);
-    getClient().executeMethod(get);
-    checkResponseBody(method, get);
+    HttpRequestBase get = getSelectMethod(method);
+    HttpResponse response = getClient().execute(get);
+    checkResponseBody(method, response);
 
-    assertEquals("Got no response code 200 in initial request", 200, get
-        .getStatusCode());
+    assertEquals("Got no response code 200 in initial request", 200, response.
+        getStatusLine().getStatusCode());
 
-    Header head = get.getResponseHeader("Last-Modified");
+    Header head = response.getFirstHeader("Last-Modified");
     assertNotNull("We got no Last-Modified header", head);
 
-    Date lastModified = DateUtil.parseDate(head.getValue());
+    Date lastModified = DateUtils.parseDate(head.getValue());
 
     // If-Modified-Since tests
     get = getSelectMethod(method);
-    get.addRequestHeader("If-Modified-Since", DateUtil.formatDate(new Date()));
+    get.addHeader("If-Modified-Since", DateUtils.formatDate(new Date()));
 
-    getClient().executeMethod(get);
-    checkResponseBody(method, get);
+    response = getClient().execute(get);
+    checkResponseBody(method, response);
     assertEquals("Expected 304 NotModified response with current date", 304,
-        get.getStatusCode());
+        response.getStatusLine().getStatusCode());
 
     get = getSelectMethod(method);
-    get.addRequestHeader("If-Modified-Since", DateUtil.formatDate(new Date(
+    get.addHeader("If-Modified-Since", DateUtils.formatDate(new Date(
         lastModified.getTime() - 10000)));
-    getClient().executeMethod(get);
-    checkResponseBody(method, get);
+    response = getClient().execute(get);
+    checkResponseBody(method, response);
     assertEquals("Expected 200 OK response with If-Modified-Since in the past",
-        200, get.getStatusCode());
+        200, response.getStatusLine().getStatusCode());
 
     // If-Unmodified-Since tests
     get = getSelectMethod(method);
-    get.addRequestHeader("If-Unmodified-Since", DateUtil.formatDate(new Date(
+    get.addHeader("If-Unmodified-Since", DateUtils.formatDate(new Date(
         lastModified.getTime() - 10000)));
 
-    getClient().executeMethod(get);
-    checkResponseBody(method, get);
+    response = getClient().execute(get);
+    checkResponseBody(method, response);
     assertEquals(
         "Expected 412 Precondition failed with If-Unmodified-Since in the past",
-        412, get.getStatusCode());
+        412, response.getStatusLine().getStatusCode());
 
     get = getSelectMethod(method);
-    get
-        .addRequestHeader("If-Unmodified-Since", DateUtil
+    get.addHeader("If-Unmodified-Since", DateUtils
             .formatDate(new Date()));
-    getClient().executeMethod(get);
-    checkResponseBody(method, get);
+    response = getClient().execute(get);
+    checkResponseBody(method, response);
     assertEquals(
         "Expected 200 OK response with If-Unmodified-Since and current date",
-        200, get.getStatusCode());
+        200, response.getStatusLine().getStatusCode());
   }
 
   // test ETag
   @Override
   protected void doETag(String method) throws Exception {
-    HttpMethodBase get = getSelectMethod(method);
-    getClient().executeMethod(get);
-    checkResponseBody(method, get);
+    HttpRequestBase get = getSelectMethod(method);
+    HttpResponse response = getClient().execute(get);
+    checkResponseBody(method, response);
 
-    assertEquals("Got no response code 200 in initial request", 200, get
-        .getStatusCode());
+    assertEquals("Got no response code 200 in initial request", 200, response
+        .getStatusLine().getStatusCode());
 
-    Header head = get.getResponseHeader("ETag");
+    Header head = response.getFirstHeader("ETag");
     assertNotNull("We got no ETag in the response", head);
     assertTrue("Not a valid ETag", head.getValue().startsWith("\"")
         && head.getValue().endsWith("\""));
@@ -160,80 +156,80 @@ public class CacheHeaderTest extends Cac
     // If-None-Match tests
     // we set a non matching ETag
     get = getSelectMethod(method);
-    get.addRequestHeader("If-None-Match", "\"xyz123456\"");
-    getClient().executeMethod(get);
-    checkResponseBody(method, get);
+    get.addHeader("If-None-Match", "\"xyz123456\"");
+    response = getClient().execute(get);
+    checkResponseBody(method, response);
     assertEquals(
         "If-None-Match: Got no response code 200 in response to non matching ETag",
-        200, get.getStatusCode());
+        200, response.getStatusLine().getStatusCode());
 
     // now we set matching ETags
     get = getSelectMethod(method);
-    get.addRequestHeader("If-None-Match", "\"xyz1223\"");
-    get.addRequestHeader("If-None-Match", "\"1231323423\", \"1211211\",   "
+    get.addHeader("If-None-Match", "\"xyz1223\"");
+    get.addHeader("If-None-Match", "\"1231323423\", \"1211211\",   "
         + etag);
-    getClient().executeMethod(get);
-    checkResponseBody(method, get);
+    response = getClient().execute(get);
+    checkResponseBody(method, response);
     assertEquals("If-None-Match: Got no response 304 to matching ETag", 304,
-        get.getStatusCode());
+        response.getStatusLine().getStatusCode());
 
     // we now set the special star ETag
     get = getSelectMethod(method);
-    get.addRequestHeader("If-None-Match", "*");
-    getClient().executeMethod(get);
-    checkResponseBody(method, get);
-    assertEquals("If-None-Match: Got no response 304 for star ETag", 304, get
-        .getStatusCode());
+    get.addHeader("If-None-Match", "*");
+    response = getClient().execute(get);
+    checkResponseBody(method, response);
+    assertEquals("If-None-Match: Got no response 304 for star ETag", 304,
+        response.getStatusLine().getStatusCode());
 
     // If-Match tests
     // we set a non matching ETag
     get = getSelectMethod(method);
-    get.addRequestHeader("If-Match", "\"xyz123456\"");
-    getClient().executeMethod(get);
-    checkResponseBody(method, get);
+    get.addHeader("If-Match", "\"xyz123456\"");
+    response = getClient().execute(get);
+    checkResponseBody(method, response);
     assertEquals(
         "If-Match: Got no response code 412 in response to non matching ETag",
-        412, get.getStatusCode());
+        412, response.getStatusLine().getStatusCode());
 
     // now we set matching ETags
     get = getSelectMethod(method);
-    get.addRequestHeader("If-Match", "\"xyz1223\"");
-    get.addRequestHeader("If-Match", "\"1231323423\", \"1211211\",   " + etag);
-    getClient().executeMethod(get);
-    checkResponseBody(method, get);
-    assertEquals("If-Match: Got no response 200 to matching ETag", 200, get
-        .getStatusCode());
+    get.addHeader("If-Match", "\"xyz1223\"");
+    get.addHeader("If-Match", "\"1231323423\", \"1211211\",   " + etag);
+    response = getClient().execute(get);
+    checkResponseBody(method, response);
+    assertEquals("If-Match: Got no response 200 to matching ETag", 200,
+        response.getStatusLine().getStatusCode());
 
     // now we set the special star ETag
     get = getSelectMethod(method);
-    get.addRequestHeader("If-Match", "*");
-    getClient().executeMethod(get);
-    checkResponseBody(method, get);
-    assertEquals("If-Match: Got no response 200 to star ETag", 200, get
-        .getStatusCode());
+    get.addHeader("If-Match", "*");
+    response = getClient().execute(get);
+    checkResponseBody(method, response);
+    assertEquals("If-Match: Got no response 200 to star ETag", 200, response
+        .getStatusLine().getStatusCode());
   }
 
   @Override
   protected void doCacheControl(String method) throws Exception {
     if ("POST".equals(method)) {
-      HttpMethodBase m = getSelectMethod(method);
-      getClient().executeMethod(m);
-      checkResponseBody(method, m);
+      HttpRequestBase m = getSelectMethod(method);
+      HttpResponse response = getClient().execute(m);
+      checkResponseBody(method, response);
 
-      Header head = m.getResponseHeader("Cache-Control");
+      Header head = response.getFirstHeader("Cache-Control");
       assertNull("We got a cache-control header in response to POST", head);
 
-      head = m.getResponseHeader("Expires");
+      head = response.getFirstHeader("Expires");
       assertNull("We got an Expires  header in response to POST", head);
     } else {
-      HttpMethodBase m = getSelectMethod(method);
-      getClient().executeMethod(m);
-      checkResponseBody(method, m);
+      HttpRequestBase m = getSelectMethod(method);
+      HttpResponse response = getClient().execute(m);
+      checkResponseBody(method, response);
 
-      Header head = m.getResponseHeader("Cache-Control");
+      Header head = response.getFirstHeader("Cache-Control");
       assertNotNull("We got no cache-control header", head);
 
-      head = m.getResponseHeader("Expires");
+      head = response.getFirstHeader("Expires");
       assertNotNull("We got no Expires header in response", head);
     }
   }