You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by mi...@apache.org on 2015/01/04 15:53:21 UTC

svn commit: r1649347 [30/31] - in /lucene/dev/branches/lucene6005: ./ dev-tools/ dev-tools/idea/solr/contrib/dataimporthandler-extras/ dev-tools/idea/solr/contrib/extraction/ dev-tools/idea/solr/contrib/map-reduce/ dev-tools/idea/solr/contrib/velocity/...

Modified: lucene/dev/branches/lucene6005/solr/solrj/src/test/org/apache/solr/client/solrj/impl/ExternalHttpClientTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6005/solr/solrj/src/test/org/apache/solr/client/solrj/impl/ExternalHttpClientTest.java?rev=1649347&r1=1649346&r2=1649347&view=diff
==============================================================================
--- lucene/dev/branches/lucene6005/solr/solrj/src/test/org/apache/solr/client/solrj/impl/ExternalHttpClientTest.java (original)
+++ lucene/dev/branches/lucene6005/solr/solrj/src/test/org/apache/solr/client/solrj/impl/ExternalHttpClientTest.java Sun Jan  4 14:53:12 2015
@@ -26,7 +26,6 @@ import org.apache.solr.client.solrj.Solr
 import org.apache.solr.client.solrj.SolrRequest;
 import org.apache.solr.client.solrj.SolrServerException;
 import org.apache.solr.client.solrj.response.QueryResponse;
-import org.apache.solr.util.ExternalPaths;
 import org.junit.BeforeClass;
 import org.junit.Test;
 
@@ -36,15 +35,15 @@ public class ExternalHttpClientTest exte
   public static void beforeTest() throws Exception {
     createJetty(legacyExampleCollection1SolrHome(), null, null);
     jetty.getDispatchFilter().getServletHandler()
-        .addServletWithMapping(BasicHttpSolrServerTest.SlowServlet.class, "/slow/*");
+        .addServletWithMapping(BasicHttpSolrClientTest.SlowServlet.class, "/slow/*");
   }
 
   /**
-   * The internal client created by HttpSolrServer is a SystemDefaultHttpClient
+   * The internal client created by HttpSolrClient is a SystemDefaultHttpClient
    * which takes care of merging request level params (such as timeout) with the
    * configured defaults.
    *
-   * However, if an external HttpClient is passed to HttpSolrServer,
+   * However, if an external HttpClient is passed to HttpSolrClient,
    * the logic in InternalHttpClient.executeMethod replaces the configured defaults
    * by request level params if they exist. That is why we must test a setting such
    * as timeout with an external client to assert that the defaults are indeed being
@@ -57,21 +56,21 @@ public class ExternalHttpClientTest exte
     HttpClientBuilder builder = HttpClientBuilder.create();
     RequestConfig config = RequestConfig.custom().setSocketTimeout(2000).build();
     builder.setDefaultRequestConfig(config);
-    HttpSolrServer server = null;
+    HttpSolrClient solrClient = null;
     try (CloseableHttpClient httpClient = builder.build()) {
-      server = new HttpSolrServer(jetty.getBaseUrl().toString() +
+      solrClient = new HttpSolrClient(jetty.getBaseUrl().toString() +
           "/slow/foo", httpClient);
 
       SolrQuery q = new SolrQuery("*:*");
       try {
-        QueryResponse response = server.query(q, SolrRequest.METHOD.GET);
+        QueryResponse response = solrClient.query(q, SolrRequest.METHOD.GET);
         fail("No exception thrown.");
       } catch (SolrServerException e) {
         assertTrue(e.getMessage().contains("Timeout"));
       }
     } finally {
-      if (server != null) {
-        server.shutdown();
+      if (solrClient != null) {
+        solrClient.shutdown();
       }
     }
   }

Modified: lucene/dev/branches/lucene6005/solr/solrj/src/test/org/apache/solr/client/solrj/request/SolrPingTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6005/solr/solrj/src/test/org/apache/solr/client/solrj/request/SolrPingTest.java?rev=1649347&r1=1649346&r2=1649347&view=diff
==============================================================================
--- lucene/dev/branches/lucene6005/solr/solrj/src/test/org/apache/solr/client/solrj/request/SolrPingTest.java (original)
+++ lucene/dev/branches/lucene6005/solr/solrj/src/test/org/apache/solr/client/solrj/request/SolrPingTest.java Sun Jan  4 14:53:12 2015
@@ -52,8 +52,8 @@ public class SolrPingTest extends SolrJe
     SolrInputDocument doc = new SolrInputDocument();
     doc.setField("id", 1);
     doc.setField("terms_s", "samsung");
-    getSolrServer().add(doc);
-    getSolrServer().commit(true, true);
+    getSolrClient().add(doc);
+    getSolrClient().commit(true, true);
   }
   
   @Test
@@ -61,9 +61,9 @@ public class SolrPingTest extends SolrJe
     SolrPing ping = new SolrPing();
     SolrPingResponse rsp = null;
     ping.setActionEnable();
-    ping.process(getSolrServer());
+    ping.process(getSolrClient());
     ping.removeAction();
-    rsp = ping.process(getSolrServer());
+    rsp = ping.process(getSolrClient());
     Assert.assertNotNull(rsp);
   }
   
@@ -73,12 +73,12 @@ public class SolrPingTest extends SolrJe
     SolrPingResponse rsp = null;
     ping.setActionDisable();
     try {
-      ping.process(getSolrServer());
+      ping.process(getSolrClient());
     } catch (Exception e) {
       throw new Exception("disable action failed!");
     }
     ping.setActionPing();
-    rsp = ping.process(getSolrServer());
+    rsp = ping.process(getSolrClient());
     // the above line should fail with a 503 SolrException.
     Assert.assertNotNull(rsp);
   }

Modified: lucene/dev/branches/lucene6005/solr/solrj/src/test/org/apache/solr/client/solrj/request/TestCoreAdmin.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6005/solr/solrj/src/test/org/apache/solr/client/solrj/request/TestCoreAdmin.java?rev=1649347&r1=1649346&r2=1649347&view=diff
==============================================================================
--- lucene/dev/branches/lucene6005/solr/solrj/src/test/org/apache/solr/client/solrj/request/TestCoreAdmin.java (original)
+++ lucene/dev/branches/lucene6005/solr/solrj/src/test/org/apache/solr/client/solrj/request/TestCoreAdmin.java Sun Jan  4 14:53:12 2015
@@ -17,16 +17,12 @@
 
 package org.apache.solr.client.solrj.request;
 
-import static org.hamcrest.CoreMatchers.notNullValue;
-import static org.hamcrest.core.Is.is;
-
-import java.io.File;
-
+import com.carrotsearch.randomizedtesting.annotations.ThreadLeakFilters;
+import com.carrotsearch.randomizedtesting.rules.SystemPropertiesRestoreRule;
 import org.apache.commons.io.FileUtils;
 import org.apache.lucene.util.LuceneTestCase;
-import org.apache.lucene.util.TestUtil;
 import org.apache.solr.SolrIgnoredThreadsFilter;
-import org.apache.solr.client.solrj.SolrServer;
+import org.apache.solr.client.solrj.SolrClient;
 import org.apache.solr.client.solrj.embedded.AbstractEmbeddedSolrServerTestCase;
 import org.apache.solr.client.solrj.embedded.EmbeddedSolrServer;
 import org.apache.solr.client.solrj.response.CoreAdminResponse;
@@ -43,8 +39,10 @@ import org.junit.rules.TestRule;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import com.carrotsearch.randomizedtesting.annotations.ThreadLeakFilters;
-import com.carrotsearch.randomizedtesting.rules.SystemPropertiesRestoreRule;
+import java.io.File;
+
+import static org.hamcrest.CoreMatchers.notNullValue;
+import static org.hamcrest.core.Is.is;
 
 @ThreadLeakFilters(defaultFilters = true, filters = {SolrIgnoredThreadsFilter.class})
 public class TestCoreAdmin extends AbstractEmbeddedSolrServerTestCase {
@@ -68,14 +66,14 @@ public class TestCoreAdmin extends Abstr
     return solrXml;
   }
   
-  protected SolrServer getSolrAdmin() {
+  protected SolrClient getSolrAdmin() {
     return new EmbeddedSolrServer(cores, "core0");
   }
 
   @Test
   public void testConfigSet() throws Exception {
 
-    SolrServer server = getSolrAdmin();
+    SolrClient client = getSolrAdmin();
     File testDir = createTempDir(LuceneTestCase.getTestClass().getSimpleName()).toFile();
 
     File newCoreInstanceDir = new File(testDir, "newcore");
@@ -85,7 +83,7 @@ public class TestCoreAdmin extends Abstr
     req.setInstanceDir(newCoreInstanceDir.getAbsolutePath());
     req.setConfigSet("configset-2");
 
-    CoreAdminResponse response = req.process(server);
+    CoreAdminResponse response = req.process(client);
     assertThat((String) response.getResponse().get("core"), is("corewithconfigset"));
 
     try (SolrCore core = cores.getCore("corewithconfigset")) {
@@ -97,7 +95,7 @@ public class TestCoreAdmin extends Abstr
   @Test
   public void testCustomUlogDir() throws Exception {
     
-    SolrServer server = getSolrAdmin();
+    SolrClient client = getSolrAdmin();
     
     File dataDir = createTempDir("data").toFile();
     
@@ -116,7 +114,7 @@ public class TestCoreAdmin extends Abstr
     // These should be the inverse of defaults.
     req.setIsLoadOnStartup(false);
     req.setIsTransient(true);
-    req.process(server);
+    req.process(client);
 
     // Show that the newly-created core has values for load on startup and transient different than defaults due to the
     // above.
@@ -134,7 +132,7 @@ public class TestCoreAdmin extends Abstr
     }
 
     assertEquals(new File(dataDir, "ulog" + File.separator + "tlog").getAbsolutePath(), logDir.getAbsolutePath());
-    server.shutdown();
+    client.shutdown();
     
   }
   

Modified: lucene/dev/branches/lucene6005/solr/solrj/src/test/org/apache/solr/client/solrj/response/NoOpResponseParserTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6005/solr/solrj/src/test/org/apache/solr/client/solrj/response/NoOpResponseParserTest.java?rev=1649347&r1=1649346&r2=1649347&view=diff
==============================================================================
--- lucene/dev/branches/lucene6005/solr/solrj/src/test/org/apache/solr/client/solrj/response/NoOpResponseParserTest.java (original)
+++ lucene/dev/branches/lucene6005/solr/solrj/src/test/org/apache/solr/client/solrj/response/NoOpResponseParserTest.java Sun Jan  4 14:53:12 2015
@@ -18,13 +18,12 @@ package org.apache.solr.client.solrj.res
  */
 
 import org.apache.commons.io.IOUtils;
-import org.apache.lucene.util.LuceneTestCase;
 import org.apache.solr.SolrJettyTestBase;
 import org.apache.solr.client.solrj.ResponseParser;
 import org.apache.solr.client.solrj.SolrQuery;
-import org.apache.solr.client.solrj.SolrServer;
+import org.apache.solr.client.solrj.SolrClient;
 import org.apache.solr.client.solrj.SolrServerException;
-import org.apache.solr.client.solrj.impl.HttpSolrServer;
+import org.apache.solr.client.solrj.impl.HttpSolrClient;
 import org.apache.solr.client.solrj.impl.NoOpResponseParser;
 import org.apache.solr.client.solrj.impl.XMLResponseParser;
 import org.apache.solr.client.solrj.request.QueryRequest;
@@ -32,7 +31,6 @@ import org.apache.solr.common.SolrDocume
 import org.apache.solr.common.SolrInputDocument;
 import org.apache.solr.common.util.NamedList;
 import org.apache.solr.core.SolrResourceLoader;
-import org.apache.solr.util.ExternalPaths;
 import org.junit.Before;
 import org.junit.BeforeClass;
 import org.junit.Test;
@@ -63,11 +61,11 @@ public class NoOpResponseParserTest exte
   @Before
   public void doBefore() throws IOException, SolrServerException {
     //add document and commit, and ensure it's there
-    SolrServer server1 = getSolrServer();
+    SolrClient client = getSolrClient();
     SolrInputDocument doc = new SolrInputDocument();
     doc.addField("id", "1234");
-    server1.add(doc);
-    server1.commit();
+    client.add(doc);
+    client.commit();
   }
 
   /**
@@ -75,15 +73,15 @@ public class NoOpResponseParserTest exte
    */
   @Test
   public void testQueryParse() throws Exception {
-    HttpSolrServer server = (HttpSolrServer) createNewSolrServer();
+    HttpSolrClient client = (HttpSolrClient) createNewSolrClient();
     SolrQuery query = new SolrQuery("id:1234");
     QueryRequest req = new QueryRequest(query);
-    server.setParser(new NoOpResponseParser());
-    NamedList<Object> resp = server.request(req);
+    client.setParser(new NoOpResponseParser());
+    NamedList<Object> resp = client.request(req);
     String responseString = (String) resp.get("response");
 
     assertResponse(responseString);
-    server.shutdown();
+    client.shutdown();
   }
 
   private void assertResponse(String responseString) throws IOException {

Modified: lucene/dev/branches/lucene6005/solr/solrj/src/test/org/apache/solr/client/solrj/response/TermsResponseTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6005/solr/solrj/src/test/org/apache/solr/client/solrj/response/TermsResponseTest.java?rev=1649347&r1=1649346&r2=1649347&view=diff
==============================================================================
--- lucene/dev/branches/lucene6005/solr/solrj/src/test/org/apache/solr/client/solrj/response/TermsResponseTest.java (original)
+++ lucene/dev/branches/lucene6005/solr/solrj/src/test/org/apache/solr/client/solrj/response/TermsResponseTest.java Sun Jan  4 14:53:12 2015
@@ -24,7 +24,6 @@ import org.apache.solr.client.solrj.Solr
 import org.apache.solr.common.SolrInputDocument;
 import org.apache.solr.client.solrj.request.QueryRequest;
 import org.apache.solr.client.solrj.response.TermsResponse.Term;
-import org.apache.solr.util.ExternalPaths;
 import org.junit.Before;
 import org.junit.BeforeClass;
 import org.junit.Test;
@@ -53,8 +52,8 @@ public class TermsResponseTest extends S
     SolrInputDocument doc = new SolrInputDocument();
     doc.setField("id", 1);
     doc.setField("terms_s", "samsung");
-    getSolrServer().add(doc);
-    getSolrServer().commit(true, true);
+    getSolrClient().add(doc);
+    getSolrClient().commit(true, true);
 
     SolrQuery query = new SolrQuery();
     query.setRequestHandler("/terms");
@@ -66,7 +65,7 @@ public class TermsResponseTest extends S
     query.setTermsMinCount(1);
     
     QueryRequest request = new QueryRequest(query);
-    List<Term> terms = request.process(getSolrServer()).getTermsResponse().getTerms("terms_s");
+    List<Term> terms = request.process(getSolrClient()).getTermsResponse().getTerms("terms_s");
 
     Assert.assertNotNull(terms);
     Assert.assertEquals(terms.size(), 1);

Modified: lucene/dev/branches/lucene6005/solr/solrj/src/test/org/apache/solr/client/solrj/response/TestSpellCheckResponse.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6005/solr/solrj/src/test/org/apache/solr/client/solrj/response/TestSpellCheckResponse.java?rev=1649347&r1=1649346&r2=1649347&view=diff
==============================================================================
--- lucene/dev/branches/lucene6005/solr/solrj/src/test/org/apache/solr/client/solrj/response/TestSpellCheckResponse.java (original)
+++ lucene/dev/branches/lucene6005/solr/solrj/src/test/org/apache/solr/client/solrj/response/TestSpellCheckResponse.java Sun Jan  4 14:53:12 2015
@@ -25,7 +25,6 @@ import org.apache.solr.client.solrj.resp
 import org.apache.solr.common.SolrInputDocument;
 import org.apache.solr.common.params.CommonParams;
 import org.apache.solr.common.params.SpellingParams;
-import org.apache.solr.util.ExternalPaths;
 import org.junit.BeforeClass;
 import org.junit.Test;
 
@@ -47,34 +46,34 @@ public class TestSpellCheckResponse exte
 
   @Test
   public void testSpellCheckResponse() throws Exception {
-    getSolrServer();
-    server.deleteByQuery("*:*");
-    server.commit(true, true);
+    getSolrClient();
+    client.deleteByQuery("*:*");
+    client.commit(true, true);
     SolrInputDocument doc = new SolrInputDocument();
     doc.setField("id", "111");
     doc.setField(field, "Samsung");
-    server.add(doc);
-    server.commit(true, true);
+    client.add(doc);
+    client.commit(true, true);
 
     SolrQuery query = new SolrQuery("*:*");
     query.set(CommonParams.QT, "/spell");
     query.set("spellcheck", true);
     query.set(SpellingParams.SPELLCHECK_Q, "samsang");
     QueryRequest request = new QueryRequest(query);
-    SpellCheckResponse response = request.process(server).getSpellCheckResponse();
+    SpellCheckResponse response = request.process(client).getSpellCheckResponse();
     Assert.assertEquals("samsung", response.getFirstSuggestion("samsang"));
   }
 
   @Test
   public void testSpellCheckResponse_Extended() throws Exception {
-    getSolrServer();
-    server.deleteByQuery("*:*");
-    server.commit(true, true);
+    getSolrClient();
+    client.deleteByQuery("*:*");
+    client.commit(true, true);
     SolrInputDocument doc = new SolrInputDocument();
     doc.setField("id", "111");
     doc.setField(field, "Samsung");
-    server.add(doc);
-    server.commit(true, true);
+    client.add(doc);
+    client.commit(true, true);
 
     SolrQuery query = new SolrQuery("*:*");
     query.set(CommonParams.QT, "/spell");
@@ -82,7 +81,7 @@ public class TestSpellCheckResponse exte
     query.set(SpellingParams.SPELLCHECK_Q, "samsang");
     query.set(SpellingParams.SPELLCHECK_EXTENDED_RESULTS, true);
     QueryRequest request = new QueryRequest(query);
-    SpellCheckResponse response = request.process(server).getSpellCheckResponse();
+    SpellCheckResponse response = request.process(client).getSpellCheckResponse();
     assertEquals("samsung", response.getFirstSuggestion("samsang"));
 
     SpellCheckResponse.Suggestion sug = response.getSuggestion("samsang");
@@ -106,30 +105,30 @@ public class TestSpellCheckResponse exte
   
   @Test
   public void testSpellCheckCollationResponse() throws Exception {
-    getSolrServer();
-    server.deleteByQuery("*:*");
-    server.commit(true, true);
+    getSolrClient();
+    client.deleteByQuery("*:*");
+    client.commit(true, true);
     SolrInputDocument doc = new SolrInputDocument();
     doc.setField("id", "0");
     doc.setField("name", "faith hope and love");
-    server.add(doc);
+    client.add(doc);
     doc = new SolrInputDocument();
     doc.setField("id", "1");
     doc.setField("name", "faith hope and loaves");
-    server.add(doc);
+    client.add(doc);
     doc = new SolrInputDocument();
     doc.setField("id", "2");
     doc.setField("name", "fat hops and loaves");
-    server.add(doc);
+    client.add(doc);
     doc = new SolrInputDocument();
     doc.setField("id", "3");
     doc.setField("name", "faith of homer");
-    server.add(doc);
+    client.add(doc);
     doc = new SolrInputDocument();
     doc.setField("id", "4");
     doc.setField("name", "fat of homer");
-    server.add(doc);    
-    server.commit(true, true);
+    client.add(doc);
+    client.commit(true, true);
      
     //Test Backwards Compatibility
     SolrQuery query = new SolrQuery("name:(+fauth +home +loane)");
@@ -138,8 +137,8 @@ public class TestSpellCheckResponse exte
     query.set(SpellingParams.SPELLCHECK_COUNT, 10);
     query.set(SpellingParams.SPELLCHECK_COLLATE, true);
     QueryRequest request = new QueryRequest(query);
-    SpellCheckResponse response = request.process(server).getSpellCheckResponse();
-    response = request.process(server).getSpellCheckResponse();
+    SpellCheckResponse response = request.process(client).getSpellCheckResponse();
+    response = request.process(client).getSpellCheckResponse();
     assertTrue("name:(+faith +hope +loaves)".equals(response.getCollatedResult()));
     
     //Test Expanded Collation Results
@@ -147,7 +146,7 @@ public class TestSpellCheckResponse exte
     query.set(SpellingParams.SPELLCHECK_MAX_COLLATION_TRIES, 10);
     query.set(SpellingParams.SPELLCHECK_MAX_COLLATIONS, 2); 
     request = new QueryRequest(query);
-    response = request.process(server).getSpellCheckResponse();
+    response = request.process(client).getSpellCheckResponse();
     assertTrue("name:(+faith +hope +love)".equals(response.getCollatedResult()) || "name:(+faith +hope +loaves)".equals(response.getCollatedResult()));
     
     List<Collation> collations = response.getCollatedResults();
@@ -178,7 +177,7 @@ public class TestSpellCheckResponse exte
     }
     
     query.set(SpellingParams.SPELLCHECK_COLLATE_EXTENDED_RESULTS, false);
-    response = request.process(server).getSpellCheckResponse();
+    response = request.process(client).getSpellCheckResponse();
     {
       collations = response.getCollatedResults();
       assertEquals(2, collations.size());

Modified: lucene/dev/branches/lucene6005/solr/test-framework/build.xml
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6005/solr/test-framework/build.xml?rev=1649347&r1=1649346&r2=1649347&view=diff
==============================================================================
--- lucene/dev/branches/lucene6005/solr/test-framework/build.xml (original)
+++ lucene/dev/branches/lucene6005/solr/test-framework/build.xml Sun Jan  4 14:53:12 2015
@@ -46,7 +46,7 @@
   <!-- redefine the clover setup, because we dont want to run clover for the test-framework -->
   <target name="-clover.setup" if="run.clover"/>
 
-  <!-- redefine the test compilation, so its just a no-op -->
+  <!-- redefine the test compilation, so it's just a no-op -->
   <target name="compile-test"/>
   
   <!-- redefine the forbidden apis for tests, as we check ourselves -->

Modified: lucene/dev/branches/lucene6005/solr/test-framework/src/java/org/apache/solr/BaseDistributedSearchTestCase.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6005/solr/test-framework/src/java/org/apache/solr/BaseDistributedSearchTestCase.java?rev=1649347&r1=1649346&r2=1649347&view=diff
==============================================================================
--- lucene/dev/branches/lucene6005/solr/test-framework/src/java/org/apache/solr/BaseDistributedSearchTestCase.java (original)
+++ lucene/dev/branches/lucene6005/solr/test-framework/src/java/org/apache/solr/BaseDistributedSearchTestCase.java Sun Jan  4 14:53:12 2015
@@ -17,31 +17,15 @@ package org.apache.solr;
  * limitations under the License.
  */
 
-import java.io.File;
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.Date;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Map;
-import java.util.Random;
-import java.util.Set;
-import java.util.SortedMap;
-import java.util.concurrent.atomic.AtomicInteger;
-
 import junit.framework.Assert;
-
 import org.apache.commons.io.FileUtils;
 import org.apache.lucene.util.Constants;
 import org.apache.lucene.util.TestUtil;
+import org.apache.solr.client.solrj.SolrClient;
 import org.apache.solr.client.solrj.SolrResponse;
-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.HttpSolrServer;
+import org.apache.solr.client.solrj.impl.HttpSolrClient;
 import org.apache.solr.client.solrj.request.UpdateRequest;
 import org.apache.solr.client.solrj.response.QueryResponse;
 import org.apache.solr.client.solrj.response.UpdateResponse;
@@ -59,6 +43,21 @@ import org.junit.Test;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
+import java.io.File;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Map;
+import java.util.Random;
+import java.util.Set;
+import java.util.SortedMap;
+import java.util.concurrent.atomic.AtomicInteger;
+
 /**
  * Helper base class for distributed search test cases
  *
@@ -185,7 +184,7 @@ public abstract class BaseDistributedSea
   protected boolean fixShardCount = false;
 
   protected JettySolrRunner controlJetty;
-  protected List<SolrServer> clients = new ArrayList<>();
+  protected List<SolrClient> clients = new ArrayList<>();
   protected List<JettySolrRunner> jettys = new ArrayList<>();
   
   protected String context;
@@ -193,7 +192,7 @@ public abstract class BaseDistributedSea
   protected String shards;
   protected String[] shardsArr;
   protected File testDir;
-  protected SolrServer controlClient;
+  protected SolrClient controlClient;
 
   // to stress with higher thread counts and requests, make sure the junit
   // xml formatter is not being used (all output will be buffered before
@@ -293,7 +292,7 @@ public abstract class BaseDistributedSea
   protected void createServers(int numShards) throws Exception {
     controlJetty = createControlJetty();
 
-    controlClient = createNewSolrServer(controlJetty.getLocalPort());
+    controlClient = createNewSolrClient(controlJetty.getLocalPort());
 
     shardsArr = new String[numShards];
     StringBuilder sb = new StringBuilder();
@@ -303,7 +302,7 @@ public abstract class BaseDistributedSea
           testDir + "/shard" + i + "/data", null, getSolrConfigFile(),
           getSchemaFile());
       jettys.add(j);
-      clients.add(createNewSolrServer(j.getLocalPort()));
+      clients.add(createNewSolrClient(j.getLocalPort()));
       String shardStr = buildUrl(j.getLocalPort());
       shardsArr[i] = shardStr;
       sb.append(shardStr);
@@ -342,9 +341,9 @@ public abstract class BaseDistributedSea
 
   protected void destroyServers() throws Exception {
     controlJetty.stop();
-    ((HttpSolrServer) controlClient).shutdown();
+    ((HttpSolrClient) controlClient).shutdown();
     for (JettySolrRunner jetty : jettys) jetty.stop();
-    for (SolrServer client : clients) ((HttpSolrServer) client).shutdown();
+    for (SolrClient client : clients) ((HttpSolrClient) client).shutdown();
     clients.clear();
     jettys.clear();
   }
@@ -387,15 +386,15 @@ public abstract class BaseDistributedSea
     return null;
   }
 
-  protected SolrServer createNewSolrServer(int port) {
+  protected SolrClient createNewSolrClient(int port) {
     try {
-      // setup the server...
-      HttpSolrServer s = new HttpSolrServer(buildUrl(port));
-      s.setConnectionTimeout(DEFAULT_CONNECTION_TIMEOUT);
-      s.setSoTimeout(90000);
-      s.setDefaultMaxConnectionsPerHost(100);
-      s.setMaxTotalConnections(100);
-      return s;
+      // setup the client...
+      HttpSolrClient client = new HttpSolrClient(buildUrl(port));
+      client.setConnectionTimeout(DEFAULT_CONNECTION_TIMEOUT);
+      client.setSoTimeout(90000);
+      client.setDefaultMaxConnectionsPerHost(100);
+      client.setMaxTotalConnections(100);
+      return client;
     }
     catch (Exception ex) {
       throw new RuntimeException(ex);
@@ -438,7 +437,7 @@ public abstract class BaseDistributedSea
     controlClient.add(doc);
 
     int which = (doc.getField(id).toString().hashCode() & 0x7fffffff) % clients.size();
-    SolrServer client = clients.get(which);
+    SolrClient client = clients.get(which);
     client.add(doc);
   }
   
@@ -446,38 +445,38 @@ public abstract class BaseDistributedSea
    * Indexes the document in both the control client and the specified client asserting
    * that the respones are equivilent
    */
-  protected UpdateResponse indexDoc(SolrServer server, SolrParams params, SolrInputDocument... sdocs) throws IOException, SolrServerException {
+  protected UpdateResponse indexDoc(SolrClient client, SolrParams params, SolrInputDocument... sdocs) throws IOException, SolrServerException {
     UpdateResponse controlRsp = add(controlClient, params, sdocs);
-    UpdateResponse specificRsp = add(server, params, sdocs);
+    UpdateResponse specificRsp = add(client, params, sdocs);
     compareSolrResponses(specificRsp, controlRsp);
     return specificRsp;
   }
 
-  protected UpdateResponse add(SolrServer server, SolrParams params, SolrInputDocument... sdocs) throws IOException, SolrServerException {
+  protected UpdateResponse add(SolrClient client, SolrParams params, SolrInputDocument... sdocs) throws IOException, SolrServerException {
     UpdateRequest ureq = new UpdateRequest();
     ureq.setParams(new ModifiableSolrParams(params));
     for (SolrInputDocument sdoc : sdocs) {
       ureq.add(sdoc);
     }
-    return ureq.process(server);
+    return ureq.process(client);
   }
 
-  protected UpdateResponse del(SolrServer server, SolrParams params, Object... ids) throws IOException, SolrServerException {
+  protected UpdateResponse del(SolrClient client, SolrParams params, Object... ids) throws IOException, SolrServerException {
     UpdateRequest ureq = new UpdateRequest();
     ureq.setParams(new ModifiableSolrParams(params));
     for (Object id: ids) {
       ureq.deleteById(id.toString());
     }
-    return ureq.process(server);
+    return ureq.process(client);
   }
 
-  protected UpdateResponse delQ(SolrServer server, SolrParams params, String... queries) throws IOException, SolrServerException {
+  protected UpdateResponse delQ(SolrClient client, SolrParams params, String... queries) throws IOException, SolrServerException {
     UpdateRequest ureq = new UpdateRequest();
     ureq.setParams(new ModifiableSolrParams(params));
     for (String q: queries) {
       ureq.deleteByQuery(q);
     }
-    return ureq.process(server);
+    return ureq.process(client);
   }
 
   protected void index_specific(int serverNumber, Object... fields) throws Exception {
@@ -487,20 +486,20 @@ public abstract class BaseDistributedSea
     }
     controlClient.add(doc);
 
-    SolrServer client = clients.get(serverNumber);
+    SolrClient client = clients.get(serverNumber);
     client.add(doc);
   }
 
   protected void del(String q) throws Exception {
     controlClient.deleteByQuery(q);
-    for (SolrServer client : clients) {
+    for (SolrClient client : clients) {
       client.deleteByQuery(q);
     }
   }// serial commit...
 
   protected void commit() throws Exception {
     controlClient.commit();
-    for (SolrServer client : clients) {
+    for (SolrClient client : clients) {
       client.commit();
     }
   }
@@ -508,7 +507,7 @@ public abstract class BaseDistributedSea
   protected QueryResponse queryServer(ModifiableSolrParams params) throws SolrServerException {
     // query a random server
     int which = r.nextInt(clients.size());
-    SolrServer client = clients.get(which);
+    SolrClient client = clients.get(which);
     QueryResponse rsp = client.query(params);
     return rsp;
   }
@@ -570,7 +569,7 @@ public abstract class BaseDistributedSea
           public void run() {
             for (int j = 0; j < stress; j++) {
               int which = r.nextInt(clients.size());
-              SolrServer client = clients.get(which);
+              SolrClient client = clients.get(which);
               try {
                 QueryResponse rsp = client.query(new ModifiableSolrParams(params));
                 if (verifyStress) {
@@ -592,13 +591,13 @@ public abstract class BaseDistributedSea
     return rsp;
   }
   
-  public QueryResponse queryAndCompare(SolrParams params, SolrServer... servers) throws SolrServerException {
-    return queryAndCompare(params, Arrays.<SolrServer>asList(servers));
+  public QueryResponse queryAndCompare(SolrParams params, SolrClient... clients) throws SolrServerException {
+    return queryAndCompare(params, Arrays.<SolrClient>asList(clients));
   }
-  public QueryResponse queryAndCompare(SolrParams params, Iterable<SolrServer> servers) throws SolrServerException {
+  public QueryResponse queryAndCompare(SolrParams params, Iterable<SolrClient> clients) throws SolrServerException {
     QueryResponse first = null;
-    for (SolrServer server : servers) {
-      QueryResponse rsp = server.query(new ModifiableSolrParams(params));
+    for (SolrClient client : clients) {
+      QueryResponse rsp = client.query(new ModifiableSolrParams(params));
       if (first == null) {
         first = rsp;
       } else {

Modified: lucene/dev/branches/lucene6005/solr/test-framework/src/java/org/apache/solr/SolrJettyTestBase.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6005/solr/test-framework/src/java/org/apache/solr/SolrJettyTestBase.java?rev=1649347&r1=1649346&r2=1649347&view=diff
==============================================================================
--- lucene/dev/branches/lucene6005/solr/test-framework/src/java/org/apache/solr/SolrJettyTestBase.java (original)
+++ lucene/dev/branches/lucene6005/solr/test-framework/src/java/org/apache/solr/SolrJettyTestBase.java Sun Jan  4 14:53:12 2015
@@ -17,19 +17,12 @@ package org.apache.solr;
  * limitations under the License.
  */
 
-import java.io.File;
-import java.io.FileOutputStream;
-import java.io.FileWriter;
-import java.io.OutputStreamWriter;
-import java.util.Properties;
-import java.util.SortedMap;
-
 import org.apache.commons.io.FileUtils;
 import org.apache.lucene.util.LuceneTestCase;
-import org.apache.solr.client.solrj.SolrServer;
+import org.apache.solr.client.solrj.SolrClient;
 import org.apache.solr.client.solrj.embedded.EmbeddedSolrServer;
 import org.apache.solr.client.solrj.embedded.JettySolrRunner;
-import org.apache.solr.client.solrj.impl.HttpSolrServer;
+import org.apache.solr.client.solrj.impl.HttpSolrClient;
 import org.apache.solr.util.ExternalPaths;
 import org.eclipse.jetty.servlet.ServletHolder;
 import org.junit.AfterClass;
@@ -37,6 +30,11 @@ import org.junit.BeforeClass;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
+import java.io.File;
+import java.io.OutputStreamWriter;
+import java.util.Properties;
+import java.util.SortedMap;
+
 
 abstract public class SolrJettyTestBase extends SolrTestCaseJ4 
 {
@@ -50,7 +48,7 @@ abstract public class SolrJettyTestBase
 
   public static JettySolrRunner jetty;
   public static int port;
-  public static SolrServer server = null;
+  public static SolrClient client = null;
   public static String context;
 
   public static JettySolrRunner createJetty(String solrHome, String configFile, String schemaFile, String context,
@@ -87,36 +85,36 @@ abstract public class SolrJettyTestBase
       jetty.stop();
       jetty = null;
     }
-    if (server != null) server.shutdown();
-    server = null;
+    if (client != null) client.shutdown();
+    client = null;
   }
 
 
-  public SolrServer getSolrServer() {
+  public SolrClient getSolrClient() {
     {
-      if (server == null) {
-        server = createNewSolrServer();
+      if (client == null) {
+        client = createNewSolrClient();
       }
-      return server;
+      return client;
     }
   }
 
   /**
-   * Create a new solr server.
+   * Create a new solr client.
    * If createJetty was called, an http implementation will be created,
    * otherwise an embedded implementation will be created.
    * Subclasses should override for other options.
    */
-  public SolrServer createNewSolrServer() {
+  public SolrClient createNewSolrClient() {
     if (jetty != null) {
       try {
-        // setup the server...
+        // setup the client...
         String url = jetty.getBaseUrl().toString() + "/" + "collection1";
-        HttpSolrServer s = new HttpSolrServer( url );
-        s.setConnectionTimeout(DEFAULT_CONNECTION_TIMEOUT);
-        s.setDefaultMaxConnectionsPerHost(100);
-        s.setMaxTotalConnections(100);
-        return s;
+        HttpSolrClient client = new HttpSolrClient( url );
+        client.setConnectionTimeout(DEFAULT_CONNECTION_TIMEOUT);
+        client.setDefaultMaxConnectionsPerHost(100);
+        client.setMaxTotalConnections(100);
+        return client;
       }
       catch( Exception ex ) {
         throw new RuntimeException( ex );

Modified: lucene/dev/branches/lucene6005/solr/test-framework/src/java/org/apache/solr/SolrTestCaseJ4.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6005/solr/test-framework/src/java/org/apache/solr/SolrTestCaseJ4.java?rev=1649347&r1=1649346&r2=1649347&view=diff
==============================================================================
--- lucene/dev/branches/lucene6005/solr/test-framework/src/java/org/apache/solr/SolrTestCaseJ4.java (original)
+++ lucene/dev/branches/lucene6005/solr/test-framework/src/java/org/apache/solr/SolrTestCaseJ4.java Sun Jan  4 14:53:12 2015
@@ -244,8 +244,9 @@ public abstract class SolrTestCaseJ4 ext
       return new SSLTestConfig();
     }
     
-    final boolean trySsl = random().nextBoolean();
-    boolean trySslClientAuth = random().nextBoolean();
+    // we don't choose ssl that often because of SOLR-5776
+    final boolean trySsl = random().nextInt(10) < 2;
+    boolean trySslClientAuth = random().nextInt(10) < 2;
     if (Constants.MAC_OS_X) {
       trySslClientAuth = false;
     }
@@ -439,7 +440,7 @@ public abstract class SolrTestCaseJ4 ext
      if (endNumOpens-numOpens != endNumCloses-numCloses) {
        String msg = "ERROR: SolrIndexSearcher opens=" + (endNumOpens-numOpens) + " closes=" + (endNumCloses-numCloses);
        log.error(msg);
-       // if its TestReplicationHandler, ignore it. the test is broken and gets no love
+       // if it's TestReplicationHandler, ignore it. the test is broken and gets no love
        if ("TestReplicationHandler".equals(RandomizedContext.current().getTargetClass().getSimpleName())) {
          log.warn("TestReplicationHandler wants to fail!: " + msg);
        } else {

Modified: lucene/dev/branches/lucene6005/solr/test-framework/src/java/org/apache/solr/cloud/AbstractDistribZkTestBase.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6005/solr/test-framework/src/java/org/apache/solr/cloud/AbstractDistribZkTestBase.java?rev=1649347&r1=1649346&r2=1649347&view=diff
==============================================================================
--- lucene/dev/branches/lucene6005/solr/test-framework/src/java/org/apache/solr/cloud/AbstractDistribZkTestBase.java (original)
+++ lucene/dev/branches/lucene6005/solr/test-framework/src/java/org/apache/solr/cloud/AbstractDistribZkTestBase.java Sun Jan  4 14:53:12 2015
@@ -102,7 +102,7 @@ public abstract class AbstractDistribZkT
       System.clearProperty(ZkStateReader.NUM_SHARDS_PROP);
     }
 
-    controlClient = createNewSolrServer(controlJetty.getLocalPort());
+    controlClient = createNewSolrClient(controlJetty.getLocalPort());
 
     StringBuilder sb = new StringBuilder();
     for (int i = 1; i <= numShards; i++) {
@@ -112,7 +112,7 @@ public abstract class AbstractDistribZkT
       setupJettySolrHome(jettyHome);
       JettySolrRunner j = createJetty(jettyHome, null, "shard" + (i + 2));
       jettys.add(j);
-      clients.add(createNewSolrServer(j.getLocalPort()));
+      clients.add(createNewSolrClient(j.getLocalPort()));
       sb.append(buildUrl(j.getLocalPort()));
     }
 

Modified: lucene/dev/branches/lucene6005/solr/test-framework/src/java/org/apache/solr/cloud/AbstractFullDistribZkTestBase.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6005/solr/test-framework/src/java/org/apache/solr/cloud/AbstractFullDistribZkTestBase.java?rev=1649347&r1=1649346&r2=1649347&view=diff
==============================================================================
--- lucene/dev/branches/lucene6005/solr/test-framework/src/java/org/apache/solr/cloud/AbstractFullDistribZkTestBase.java (original)
+++ lucene/dev/branches/lucene6005/solr/test-framework/src/java/org/apache/solr/cloud/AbstractFullDistribZkTestBase.java Sun Jan  4 14:53:12 2015
@@ -17,40 +17,16 @@ package org.apache.solr.cloud;
  * limitations under the License.
  */
 
-import static org.apache.solr.cloud.OverseerCollectionProcessor.CREATE_NODE_SET;
-import static org.apache.solr.cloud.OverseerCollectionProcessor.NUM_SLICES;
-import static org.apache.solr.cloud.OverseerCollectionProcessor.SHARDS_PROP;
-import static org.apache.solr.common.cloud.ZkNodeProps.makeMap;
-import static org.apache.solr.common.cloud.ZkStateReader.REPLICATION_FACTOR;
-import static org.apache.solr.common.cloud.ZkStateReader.MAX_SHARDS_PER_NODE;
-
-import java.io.File;
-import java.io.IOException;
-import java.net.ServerSocket;
-import java.net.URI;
-import java.net.URL;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Map;
-import java.util.Map.Entry;
-import java.util.Random;
-import java.util.Set;
-import java.util.concurrent.atomic.AtomicInteger;
-
 import org.apache.commons.io.FilenameUtils;
 import org.apache.http.params.CoreConnectionPNames;
 import org.apache.lucene.util.LuceneTestCase.Slow;
+import org.apache.solr.client.solrj.SolrClient;
 import org.apache.solr.client.solrj.SolrQuery;
 import org.apache.solr.client.solrj.SolrRequest;
-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.HttpSolrServer;
+import org.apache.solr.client.solrj.impl.CloudSolrClient;
+import org.apache.solr.client.solrj.impl.HttpSolrClient;
 import org.apache.solr.client.solrj.request.QueryRequest;
 import org.apache.solr.client.solrj.request.UpdateRequest;
 import org.apache.solr.client.solrj.response.CollectionAdminResponse;
@@ -88,6 +64,30 @@ import org.noggit.JSONWriter;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
+import java.io.File;
+import java.io.IOException;
+import java.net.ServerSocket;
+import java.net.URI;
+import java.net.URL;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Map;
+import java.util.Map.Entry;
+import java.util.Random;
+import java.util.Set;
+import java.util.concurrent.atomic.AtomicInteger;
+
+import static org.apache.solr.cloud.OverseerCollectionProcessor.CREATE_NODE_SET;
+import static org.apache.solr.cloud.OverseerCollectionProcessor.NUM_SLICES;
+import static org.apache.solr.cloud.OverseerCollectionProcessor.SHARDS_PROP;
+import static org.apache.solr.common.cloud.ZkNodeProps.makeMap;
+import static org.apache.solr.common.cloud.ZkStateReader.MAX_SHARDS_PER_NODE;
+import static org.apache.solr.common.cloud.ZkStateReader.REPLICATION_FACTOR;
+
 /**
  * TODO: we should still test this works as a custom update chain as well as
  * what we test now - the default update chain
@@ -115,8 +115,8 @@ public abstract class AbstractFullDistri
   String missingField = "ignore_exception__missing_but_valid_field_t";
   protected int sliceCount;
 
-  protected CloudSolrServer controlClientCloud;  // cloud version of the control client
-  protected volatile CloudSolrServer cloudClient;
+  protected CloudSolrClient controlClientCloud;  // cloud version of the control client
+  protected volatile CloudSolrClient cloudClient;
   
   protected List<CloudJettyRunner> cloudJettys = new ArrayList<>();
   protected Map<String,List<CloudJettyRunner>> shardToJetty = new HashMap<>();
@@ -162,14 +162,14 @@ public abstract class AbstractFullDistri
   }
   
   static class CloudSolrServerClient {
-    SolrServer solrClient;
+    SolrClient solrClient;
     String shardName;
     int port;
     public ZkNodeProps info;
     
     public CloudSolrServerClient() {}
     
-    public CloudSolrServerClient(SolrServer client) {
+    public CloudSolrServerClient(SolrClient client) {
       this.solrClient = client;
     }
     
@@ -259,13 +259,13 @@ public abstract class AbstractFullDistri
         shardToJetty, shardToLeaderJetty);
   }
   
-  protected CloudSolrServer createCloudClient(String defaultCollection) {
-    CloudSolrServer server = new CloudSolrServer(zkServer.getZkAddress(), random().nextBoolean());
-    server.setParallelUpdates(random().nextBoolean());
-    if (defaultCollection != null) server.setDefaultCollection(defaultCollection);
-    server.getLbServer().getHttpClient().getParams()
+  protected CloudSolrClient createCloudClient(String defaultCollection) {
+    CloudSolrClient client = new CloudSolrClient(zkServer.getZkAddress(), random().nextBoolean());
+    client.setParallelUpdates(random().nextBoolean());
+    if (defaultCollection != null) client.setDefaultCollection(defaultCollection);
+    client.getLbClient().getHttpClient().getParams()
         .setParameter(CoreConnectionPNames.CONNECTION_TIMEOUT, 30000);
-    return server;
+    return client;
   }
   
   @Override
@@ -287,7 +287,7 @@ public abstract class AbstractFullDistri
                                // "shard1"
 
 
-      controlClient = createNewSolrServer(controlJetty.getLocalPort());
+      controlClient = createNewSolrClient(controlJetty.getLocalPort());
       
       if (sliceCount <= 0) {
         // for now, just create the cloud client for the control if we don't
@@ -372,7 +372,7 @@ public abstract class AbstractFullDistri
    */
   protected List<JettySolrRunner> createJettys(int numJettys, boolean checkCreatedVsState) throws Exception {
     List<JettySolrRunner> jettys = new ArrayList<>();
-    List<SolrServer> clients = new ArrayList<>();
+    List<SolrClient> clients = new ArrayList<>();
     StringBuilder sb = new StringBuilder();
 
     if (getStateFormat() == 2) {
@@ -399,7 +399,7 @@ public abstract class AbstractFullDistri
       JettySolrRunner j = createJetty(jettyDir, useJettyDataDir ? getDataDir(testDir + "/jetty"
           + cnt) : null, null, "solrconfig.xml", null);
       jettys.add(j);
-      SolrServer client = createNewSolrServer(j.getLocalPort());
+      SolrClient client = createNewSolrClient(j.getLocalPort());
       clients.add(client);
     }
   
@@ -447,7 +447,7 @@ public abstract class AbstractFullDistri
   }
 
 
-  protected SolrServer startCloudJetty(String collection, String shard) throws Exception {
+  protected SolrClient startCloudJetty(String collection, String shard) throws Exception {
     // TODO: use the collection string!!!!
     collection = DEFAULT_COLLECTION;
 
@@ -461,7 +461,7 @@ public abstract class AbstractFullDistri
       org.apache.commons.io.FileUtils.copyDirectory(new File(getSolrHome()), jettyDir);
       JettySolrRunner j = createJetty(jettyDir, testDir + "/jetty" + cnt, shard, "solrconfig.xml", null);
       jettys.add(j);
-      SolrServer client = createNewSolrServer(j.getLocalPort());
+      SolrClient client = createNewSolrClient(j.getLocalPort());
       clients.add(client);
 
     int retries = 60;
@@ -536,16 +536,11 @@ public abstract class AbstractFullDistri
     jetty.setShards(shardList);
     jetty.setDataDir(getDataDir(dataDir));
 
-    // setup to proxy Http requests to this server unless it is the control
-    // server
-    int proxyPort = getNextAvailablePort();
-    jetty.setProxyPort(proxyPort);
+    SocketProxy proxy = new SocketProxy(0, sslConfig == null ? false : sslConfig.isSSLMode());
+    jetty.setProxyPort(proxy.getListenPort());
     jetty.start();
-
-    // create a socket proxy for the jetty server ...
-    SocketProxy proxy = new SocketProxy(proxyPort, jetty.getBaseUrl().toURI());
+    proxy.open(jetty.getBaseUrl().toURI());
     proxies.put(proxy.getUrl(), proxy);
-
     return jetty;
   }
 
@@ -628,11 +623,11 @@ public abstract class AbstractFullDistri
     return solrHome;
   }
   
-  protected void updateMappingsFromZk(List<JettySolrRunner> jettys, List<SolrServer> clients) throws Exception {
+  protected void updateMappingsFromZk(List<JettySolrRunner> jettys, List<SolrClient> clients) throws Exception {
     updateMappingsFromZk(jettys, clients, false);
   }
   
-  protected void updateMappingsFromZk(List<JettySolrRunner> jettys, List<SolrServer> clients, boolean allowOverSharding) throws Exception {
+  protected void updateMappingsFromZk(List<JettySolrRunner> jettys, List<SolrClient> clients, boolean allowOverSharding) throws Exception {
     ZkStateReader zkStateReader = cloudClient.getZkStateReader();
     zkStateReader.updateClusterState(true);
     cloudJettys.clear();
@@ -642,13 +637,13 @@ public abstract class AbstractFullDistri
     DocCollection coll = clusterState.getCollection(DEFAULT_COLLECTION);
 
     List<CloudSolrServerClient> theClients = new ArrayList<>();
-    for (SolrServer client : clients) {
+    for (SolrClient client : clients) {
       // find info for this client in zk 
       nextClient:
       // we find out state by simply matching ports...
       for (Slice slice : coll.getSlices()) {
         for (Replica replica : slice.getReplicas()) {
-          int port = new URI(((HttpSolrServer) client).getBaseURL())
+          int port = new URI(((HttpSolrClient) client).getBaseURL())
               .getPort();
           
           if (replica.getStr(ZkStateReader.BASE_URL_PROP).contains(":" + port)) {
@@ -783,7 +778,7 @@ public abstract class AbstractFullDistri
     }
     controlClient.add(doc);
     
-    HttpSolrServer client = (HttpSolrServer) clients
+    HttpSolrClient client = (HttpSolrClient) clients
         .get(serverNumber);
     
     UpdateRequest ureq = new UpdateRequest();
@@ -792,7 +787,7 @@ public abstract class AbstractFullDistri
     ureq.process(client);
   }
   
-  protected void index_specific(SolrServer client, Object... fields)
+  protected void index_specific(SolrClient client, Object... fields)
       throws Exception {
     SolrInputDocument doc = new SolrInputDocument();
     for (int i = 0; i < fields.length; i += 2) {
@@ -1025,7 +1020,7 @@ public abstract class AbstractFullDistri
   public QueryResponse queryAndCompareReplicas(SolrParams params, String shard) 
     throws Exception {
 
-    ArrayList<SolrServer> shardClients = new ArrayList<>(7);
+    ArrayList<SolrClient> shardClients = new ArrayList<>(7);
 
     updateMappingsFromZk(jettys, clients);
     ZkStateReader zkStateReader = cloudClient.getZkStateReader();
@@ -1275,7 +1270,7 @@ public abstract class AbstractFullDistri
         try {
           CloudJettyRunner cjetty = shardToJetty.get(s).get(i);
           ZkNodeProps props = cjetty.info;
-          SolrServer client = cjetty.client.solrClient;
+          SolrClient client = cjetty.client.solrClient;
           boolean active = props.getStr(ZkStateReader.STATE_PROP).equals(
               ZkStateReader.ACTIVE);
           if (active) {
@@ -1310,7 +1305,7 @@ public abstract class AbstractFullDistri
     }
   }
   
-  protected SolrServer getClient(String nodeName) {
+  protected SolrClient getClient(String nodeName) {
     for (CloudJettyRunner cjetty : cloudJettys) {
       CloudSolrServerClient client = cjetty.client;
       if (client.shardName.equals(nodeName)) {
@@ -1354,7 +1349,7 @@ public abstract class AbstractFullDistri
         Map<String,Replica> theShards = slice.getValue().getReplicasMap();
         for (Map.Entry<String,Replica> shard : theShards.entrySet()) {
           String shardName = new URI(
-              ((HttpSolrServer) client.solrClient).getBaseURL()).getPort()
+              ((HttpSolrClient) client.solrClient).getBaseURL()).getPort()
               + "_solr_";
           if (verbose && shard.getKey().endsWith(shardName)) {
             System.err.println("shard:" + slice.getKey());
@@ -1536,11 +1531,11 @@ public abstract class AbstractFullDistri
     if (VERBOSE || printLayoutOnTearDown) {
       super.printLayout();
     }
-    if (commondCloudSolrServer != null) {
-      commondCloudSolrServer.shutdown();
+    if (commondCloudSolrClient != null) {
+      commondCloudSolrClient.shutdown();
     }
     if (controlClient != null) {
-      ((HttpSolrServer) controlClient).shutdown();
+      ((HttpSolrClient) controlClient).shutdown();
     }
     if (cloudClient != null) {
       cloudClient.shutdown();
@@ -1587,12 +1582,12 @@ public abstract class AbstractFullDistri
     return createCollection(null, collectionName, numShards, replicationFactor, maxShardsPerNode, null, null);
   }
 
-  protected CollectionAdminResponse createCollection(Map<String,List<Integer>> collectionInfos, String collectionName, Map<String,Object> collectionProps, SolrServer client)  throws SolrServerException, IOException{
+  protected CollectionAdminResponse createCollection(Map<String,List<Integer>> collectionInfos, String collectionName, Map<String,Object> collectionProps, SolrClient client)  throws SolrServerException, IOException{
     return createCollection(collectionInfos, collectionName, collectionProps, client, null);
   }
 
   // TODO: Use CollectionAdminRequest#createCollection() instead of a raw request
-  protected CollectionAdminResponse createCollection(Map<String, List<Integer>> collectionInfos, String collectionName, Map<String, Object> collectionProps, SolrServer client, String confSetName)  throws SolrServerException, IOException{
+  protected CollectionAdminResponse createCollection(Map<String, List<Integer>> collectionInfos, String collectionName, Map<String, Object> collectionProps, SolrClient client, String confSetName)  throws SolrServerException, IOException{
     ModifiableSolrParams params = new ModifiableSolrParams();
     params.set("action", CollectionAction.CREATE.toString());
     for (Map.Entry<String, Object> entry : collectionProps.entrySet()) {
@@ -1629,12 +1624,12 @@ public abstract class AbstractFullDistri
 
     CollectionAdminResponse res = new CollectionAdminResponse();
     if (client == null) {
-      final String baseUrl = getBaseUrl((HttpSolrServer) clients.get(clientIndex));
-      SolrServer server = createNewSolrServer("", baseUrl);
+      final String baseUrl = getBaseUrl((HttpSolrClient) clients.get(clientIndex));
+      SolrClient adminClient = createNewSolrClient("", baseUrl);
       try {
-        res.setResponse(server.request(request));
+        res.setResponse(adminClient.request(request));
       } finally {
-        if (server != null) server.shutdown();
+        if (adminClient != null) adminClient.shutdown();
       }
     } else {
       res.setResponse(client.request(request));
@@ -1644,7 +1639,7 @@ public abstract class AbstractFullDistri
 
 
   protected CollectionAdminResponse createCollection(Map<String,List<Integer>> collectionInfos,
-      String collectionName, int numShards, int replicationFactor, int maxShardsPerNode, SolrServer client, String createNodeSetStr) throws SolrServerException, IOException {
+      String collectionName, int numShards, int replicationFactor, int maxShardsPerNode, SolrClient client, String createNodeSetStr) throws SolrServerException, IOException {
 
     return createCollection(collectionInfos, collectionName,
         ZkNodeProps.makeMap(
@@ -1656,7 +1651,7 @@ public abstract class AbstractFullDistri
   }
   
   protected CollectionAdminResponse createCollection(Map<String, List<Integer>> collectionInfos,
-                                                     String collectionName, int numShards, int replicationFactor, int maxShardsPerNode, SolrServer client, String createNodeSetStr, String configName) throws SolrServerException, IOException {
+                                                     String collectionName, int numShards, int replicationFactor, int maxShardsPerNode, SolrClient client, String createNodeSetStr, String configName) throws SolrServerException, IOException {
 
     return createCollection(collectionInfos, collectionName,
         ZkNodeProps.makeMap(
@@ -1668,37 +1663,37 @@ public abstract class AbstractFullDistri
   }
 
   @Override
-  protected SolrServer createNewSolrServer(int port) {
+  protected SolrClient createNewSolrClient(int port) {
     try {
       // setup the server...
       String baseUrl = buildUrl(port);
       String url = baseUrl + (baseUrl.endsWith("/") ? "" : "/") + DEFAULT_COLLECTION;
-      HttpSolrServer s = new HttpSolrServer(url);
-      s.setConnectionTimeout(DEFAULT_CONNECTION_TIMEOUT);
-      s.setSoTimeout(60000);
-      s.setDefaultMaxConnectionsPerHost(100);
-      s.setMaxTotalConnections(100);
-      return s;
+      HttpSolrClient client = new HttpSolrClient(url);
+      client.setConnectionTimeout(DEFAULT_CONNECTION_TIMEOUT);
+      client.setSoTimeout(60000);
+      client.setDefaultMaxConnectionsPerHost(100);
+      client.setMaxTotalConnections(100);
+      return client;
     } catch (Exception ex) {
       throw new RuntimeException(ex);
     }
   }
   
-  protected SolrServer createNewSolrServer(String collection, String baseUrl) {
+  protected SolrClient createNewSolrClient(String collection, String baseUrl) {
     try {
       // setup the server...
-      HttpSolrServer s = new HttpSolrServer(baseUrl + "/" + collection);
-      s.setConnectionTimeout(DEFAULT_CONNECTION_TIMEOUT);
-      s.setDefaultMaxConnectionsPerHost(100);
-      s.setMaxTotalConnections(100);
-      return s;
+      HttpSolrClient client = new HttpSolrClient(baseUrl + "/" + collection);
+      client.setConnectionTimeout(DEFAULT_CONNECTION_TIMEOUT);
+      client.setDefaultMaxConnectionsPerHost(100);
+      client.setMaxTotalConnections(100);
+      return client;
     }
     catch (Exception ex) {
       throw new RuntimeException(ex);
     }
   }
   
-  protected String getBaseUrl(HttpSolrServer client) {
+  protected String getBaseUrl(HttpSolrClient client) {
     return client .getBaseURL().substring(
         0, client.getBaseURL().length()
             - DEFAULT_COLLECTION.length() - 1);
@@ -1711,7 +1706,7 @@ public abstract class AbstractFullDistri
   }
 
   private String checkCollectionExpectations(String collectionName, List<Integer> numShardsNumReplicaList, List<String> nodesAllowedToRunShards) {
-    ClusterState clusterState = getCommonCloudSolrServer().getZkStateReader().getClusterState();
+    ClusterState clusterState = getCommonCloudSolrClient().getZkStateReader().getClusterState();
     
     int expectedSlices = numShardsNumReplicaList.get(0);
     // The Math.min thing is here, because we expect replication-factor to be reduced to if there are not enough live nodes to spread all shards of a collection over different nodes
@@ -1766,20 +1761,20 @@ public abstract class AbstractFullDistri
     }
   }
   
-  private CloudSolrServer commondCloudSolrServer;
+  private CloudSolrClient commondCloudSolrClient;
   
-  protected CloudSolrServer getCommonCloudSolrServer() {
+  protected CloudSolrClient getCommonCloudSolrClient() {
     synchronized (this) {
-      if (commondCloudSolrServer == null) {
-        commondCloudSolrServer = new CloudSolrServer(zkServer.getZkAddress(),
+      if (commondCloudSolrClient == null) {
+        commondCloudSolrClient = new CloudSolrClient(zkServer.getZkAddress(),
             random().nextBoolean());
-        commondCloudSolrServer.getLbServer().setConnectionTimeout(30000);
-        commondCloudSolrServer.setParallelUpdates(random().nextBoolean());
-        commondCloudSolrServer.setDefaultCollection(DEFAULT_COLLECTION);
-        commondCloudSolrServer.connect();
+        commondCloudSolrClient.getLbClient().setConnectionTimeout(30000);
+        commondCloudSolrClient.setParallelUpdates(random().nextBoolean());
+        commondCloudSolrClient.setDefaultCollection(DEFAULT_COLLECTION);
+        commondCloudSolrClient.connect();
       }
     }
-    return commondCloudSolrServer;
+    return commondCloudSolrClient;
   }
   
   public static String getUrlFromZk(ClusterState clusterState, String collection) {
@@ -1804,7 +1799,7 @@ public abstract class AbstractFullDistri
     throw new RuntimeException("Could not find a live node for collection:" + collection);
   }
 
- public  static void waitForNon403or404or503(HttpSolrServer collectionClient)
+ public  static void waitForNon403or404or503(HttpSolrClient collectionClient)
       throws Exception {
     SolrException exp = null;
     long timeoutAt = System.currentTimeMillis() + 30000;
@@ -1836,8 +1831,8 @@ public abstract class AbstractFullDistri
     long timeoutAt = System.currentTimeMillis() + 45000;
     boolean found = true;
     while (System.currentTimeMillis() < timeoutAt) {
-      getCommonCloudSolrServer().getZkStateReader().updateClusterState(true);
-      ClusterState clusterState = getCommonCloudSolrServer().getZkStateReader().getClusterState();
+      getCommonCloudSolrClient().getZkStateReader().updateClusterState(true);
+      ClusterState clusterState = getCommonCloudSolrClient().getZkStateReader().getClusterState();
       if (!clusterState.hasCollection(collectionName)) {
         found = false;
         break;
@@ -1857,23 +1852,23 @@ public abstract class AbstractFullDistri
     }
     request.setPath("/admin/collections");
 
-    String baseUrl = ((HttpSolrServer) shardToJetty.get(SHARD1).get(0).client.solrClient)
+    String baseUrl = ((HttpSolrClient) shardToJetty.get(SHARD1).get(0).client.solrClient)
         .getBaseURL();
     baseUrl = baseUrl.substring(0, baseUrl.length() - "collection1".length());
 
-    HttpSolrServer baseServer = new HttpSolrServer(baseUrl);
-    baseServer.setConnectionTimeout(15000);
-    baseServer.setSoTimeout(60000 * 5);
-    NamedList r = baseServer.request(request);
-    baseServer.shutdown();
+    HttpSolrClient baseClient = new HttpSolrClient(baseUrl);
+    baseClient.setConnectionTimeout(15000);
+    baseClient.setSoTimeout(60000 * 5);
+    NamedList r = baseClient.request(request);
+    baseClient.shutdown();
     return r;
   }
 
   protected void createCollection(String collName,
-                                  CloudSolrServer client,
+                                  CloudSolrClient client,
                                   int replicationFactor ,
                                   int numShards ) throws Exception {
-    int maxShardsPerNode = ((((numShards+1) * replicationFactor) / getCommonCloudSolrServer()
+    int maxShardsPerNode = ((((numShards+1) * replicationFactor) / getCommonCloudSolrClient()
         .getZkStateReader().getClusterState().getLiveNodes().size())) + 1;
 
     Map<String, Object> props = makeMap(

Modified: lucene/dev/branches/lucene6005/solr/test-framework/src/java/org/apache/solr/cloud/ChaosMonkey.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6005/solr/test-framework/src/java/org/apache/solr/cloud/ChaosMonkey.java?rev=1649347&r1=1649346&r2=1649347&view=diff
==============================================================================
--- lucene/dev/branches/lucene6005/solr/test-framework/src/java/org/apache/solr/cloud/ChaosMonkey.java (original)
+++ lucene/dev/branches/lucene6005/solr/test-framework/src/java/org/apache/solr/cloud/ChaosMonkey.java Sun Jan  4 14:53:12 2015
@@ -18,7 +18,7 @@ package org.apache.solr.cloud;
  */
 
 import org.apache.lucene.util.LuceneTestCase;
-import org.apache.solr.client.solrj.SolrServer;
+import org.apache.solr.client.solrj.SolrClient;
 import org.apache.solr.client.solrj.embedded.JettySolrRunner;
 import org.apache.solr.cloud.AbstractFullDistribZkTestBase.CloudJettyRunner;
 import org.apache.solr.common.cloud.Slice;
@@ -73,7 +73,7 @@ public class ChaosMonkey {
   private AtomicInteger expires = new AtomicInteger();
   private AtomicInteger connloss = new AtomicInteger();
   
-  private Map<String,List<SolrServer>> shardToClient;
+  private Map<String,List<SolrClient>> shardToClient;
   private boolean expireSessions;
   private boolean causeConnectionLoss;
   private boolean aggressivelyKillLeaders;
@@ -423,14 +423,14 @@ public class ChaosMonkey {
     return numActive;
   }
   
-  public SolrServer getRandomClient(String slice) throws KeeperException, InterruptedException {
+  public SolrClient getRandomClient(String slice) throws KeeperException, InterruptedException {
     // get latest cloud state
     zkStateReader.updateClusterState(true);
 
     // get random shard
-    List<SolrServer> clients = shardToClient.get(slice);
+    List<SolrClient> clients = shardToClient.get(slice);
     int index = LuceneTestCase.random().nextInt(clients.size() - 1);
-    SolrServer client = clients.get(index);
+    SolrClient client = clients.get(index);
 
     return client;
   }

Modified: lucene/dev/branches/lucene6005/solr/test-framework/src/java/org/apache/solr/cloud/CloudInspectUtil.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6005/solr/test-framework/src/java/org/apache/solr/cloud/CloudInspectUtil.java?rev=1649347&r1=1649346&r2=1649347&view=diff
==============================================================================
--- lucene/dev/branches/lucene6005/solr/test-framework/src/java/org/apache/solr/cloud/CloudInspectUtil.java (original)
+++ lucene/dev/branches/lucene6005/solr/test-framework/src/java/org/apache/solr/cloud/CloudInspectUtil.java Sun Jan  4 14:53:12 2015
@@ -1,12 +1,7 @@
 package org.apache.solr.cloud;
 
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.Map;
-import java.util.Set;
-
 import org.apache.solr.SolrTestCaseJ4;
-import org.apache.solr.client.solrj.SolrServer;
+import org.apache.solr.client.solrj.SolrClient;
 import org.apache.solr.client.solrj.SolrServerException;
 import org.apache.solr.common.SolrDocument;
 import org.apache.solr.common.SolrDocumentList;
@@ -14,6 +9,11 @@ import org.apache.solr.common.params.Sol
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.Map;
+import java.util.Set;
+
 /*
  * Licensed to the Apache Software Foundation (ASF) under one or more
  * contributor license agreements.  See the NOTICE file distributed with
@@ -160,9 +160,9 @@ public class CloudInspectUtil {
    * 
    * @return true if the compared results are illegal.
    */
-  public static boolean compareResults(SolrServer controlServer, SolrServer cloudServer)
+  public static boolean compareResults(SolrClient controlClient, SolrClient cloudClient)
       throws SolrServerException {
-    return compareResults(controlServer, cloudServer, null, null);
+    return compareResults(controlClient, cloudClient, null, null);
   }
   
   /**
@@ -170,25 +170,25 @@ public class CloudInspectUtil {
    * 
    * @return true if the compared results are illegal.
    */
-  public static boolean compareResults(SolrServer controlServer, SolrServer cloudServer, Set<String> addFails, Set<String> deleteFails)
+  public static boolean compareResults(SolrClient controlClient, SolrClient cloudClient, Set<String> addFails, Set<String> deleteFails)
       throws SolrServerException {
     
     SolrParams q = SolrTestCaseJ4.params("q","*:*","rows","0", "tests","checkShardConsistency(vsControl)");    // add a tag to aid in debugging via logs
 
-    SolrDocumentList controlDocList = controlServer.query(q).getResults();
+    SolrDocumentList controlDocList = controlClient.query(q).getResults();
     long controlDocs = controlDocList.getNumFound();
 
-    SolrDocumentList cloudDocList = cloudServer.query(q).getResults();
+    SolrDocumentList cloudDocList = cloudClient.query(q).getResults();
     long cloudClientDocs = cloudDocList.getNumFound();
     
     // re-execute the query getting ids
-    q = SolrTestCaseJ4.params("q","*:*","rows","100000", "fl","id", "tests","checkShardConsistency(vsControl)/getIds");    // add a tag to aid in debugging via logs
-    controlDocList = controlServer.query(q).getResults();
+    q = SolrTestCaseJ4.params("q", "*:*", "rows", "100000", "fl", "id", "tests", "checkShardConsistency(vsControl)/getIds");    // add a tag to aid in debugging via logs
+    controlDocList = controlClient.query(q).getResults();
     if (controlDocs != controlDocList.getNumFound()) {
       log.error("Something changed! control now " + controlDocList.getNumFound());
     };
 
-    cloudDocList = cloudServer.query(q).getResults();
+    cloudDocList = cloudClient.query(q).getResults();
     if (cloudClientDocs != cloudDocList.getNumFound()) {
       log.error("Something changed! cloudClient now " + cloudDocList.getNumFound());
     };
@@ -220,8 +220,8 @@ public class CloudInspectUtil {
           "checkShardConsistency(vsControl)/getVers"); // add a tag to aid in
                                                        // debugging via logs
       
-      SolrDocumentList a = controlServer.query(q).getResults();
-      SolrDocumentList b = cloudServer.query(q).getResults();
+      SolrDocumentList a = controlClient.query(q).getResults();
+      SolrDocumentList b = cloudClient.query(q).getResults();
       
       log.error("controlClient :" + a + "\n\tcloudClient :" + b);
     }

Modified: lucene/dev/branches/lucene6005/solr/test-framework/src/java/org/apache/solr/cloud/MiniSolrCloudCluster.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6005/solr/test-framework/src/java/org/apache/solr/cloud/MiniSolrCloudCluster.java?rev=1649347&r1=1649346&r2=1649347&view=diff
==============================================================================
--- lucene/dev/branches/lucene6005/solr/test-framework/src/java/org/apache/solr/cloud/MiniSolrCloudCluster.java (original)
+++ lucene/dev/branches/lucene6005/solr/test-framework/src/java/org/apache/solr/cloud/MiniSolrCloudCluster.java Sun Jan  4 14:53:12 2015
@@ -18,17 +18,23 @@ package org.apache.solr.cloud;
  */
 
 import java.io.File;
-import java.io.FileInputStream;
-import java.io.InputStream;
+import java.io.IOException;
 import java.util.Collections;
 import java.util.LinkedList;
 import java.util.List;
+import java.util.Map;
 import java.util.SortedMap;
 
-import org.apache.commons.io.IOUtils;
+import org.apache.solr.client.solrj.SolrServerException;
 import org.apache.solr.client.solrj.embedded.JettySolrRunner;
+import org.apache.solr.client.solrj.impl.CloudSolrClient;
+import org.apache.solr.client.solrj.request.QueryRequest;
 import org.apache.solr.common.cloud.SolrZkClient;
-import org.apache.zookeeper.CreateMode;
+import org.apache.solr.common.params.CollectionParams.CollectionAction;
+import org.apache.solr.common.params.CoreAdminParams;
+import org.apache.solr.common.params.ModifiableSolrParams;
+import org.apache.solr.common.util.NamedList;
+import org.apache.zookeeper.KeeperException;
 import org.eclipse.jetty.servlet.ServletHolder;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -40,6 +46,7 @@ public class MiniSolrCloudCluster {
   private ZkTestServer zkServer;
   private List<JettySolrRunner> jettys;
   private File testDir;
+  private CloudSolrClient solrClient;
 
   /**
    * "Mini" SolrCloud cluster to be used for testing
@@ -59,18 +66,10 @@ public class MiniSolrCloudCluster {
       + "zookeeper/server1/data";
     zkServer = new ZkTestServer(zkDir);
     zkServer.run();
-
-    SolrZkClient zkClient = null;
-    InputStream is = null;
-    try {
-      zkClient = new SolrZkClient(zkServer.getZkHost(),
-        AbstractZkTestCase.TIMEOUT, 45000, null);
-      zkClient.makePath("/solr", false, true);
-      is = new FileInputStream(solrXml);
-      zkClient.create("/solr/solr.xml", IOUtils.toByteArray(is), CreateMode.PERSISTENT, true);
-    } finally {
-      IOUtils.closeQuietly(is);
-      if (zkClient != null) zkClient.close();
+    
+    try(SolrZkClient zkClient = new SolrZkClient(zkServer.getZkHost(),
+        AbstractZkTestCase.TIMEOUT, 45000, null)) {
+      zkClient.makePath("/solr/solr.xml", solrXml, false, true);
     }
 
     // tell solr to look in zookeeper for solr.xml
@@ -81,6 +80,8 @@ public class MiniSolrCloudCluster {
     for (int i = 0; i < numServers; ++i) {
       startJettySolrRunner(hostContext, extraServlets, extraRequestFilters);
     }
+    
+    solrClient = buildSolrClient();
   }
 
   /**
@@ -126,12 +127,40 @@ public class MiniSolrCloudCluster {
     jettys.remove(index);
     return jetty;
   }
+  
+  public void uploadConfigDir(File configDir, String configName) throws IOException, KeeperException, InterruptedException {
+    try(SolrZkClient zkClient = new SolrZkClient(zkServer.getZkAddress(),
+        AbstractZkTestCase.TIMEOUT, 45000, null)) {
+      ZkController.uploadConfigDir(zkClient, configDir, configName);
+    }
+  }
+  
+  public NamedList<Object> createCollection(String name, int numShards, int replicationFactor, 
+      String configName, Map<String, String> collectionProperties) throws SolrServerException, IOException {
+    ModifiableSolrParams params = new ModifiableSolrParams();
+    params.set(CoreAdminParams.ACTION, CollectionAction.CREATE.name());
+    params.set(CoreAdminParams.NAME, name);
+    params.set("numShards", numShards);
+    params.set("replicationFactor", replicationFactor);
+    params.set("collection.configName", configName);
+    if(collectionProperties != null) {
+      for(Map.Entry<String, String> property : collectionProperties.entrySet()){
+        params.set(CoreAdminParams.PROPERTY_PREFIX + property.getKey(), property.getValue());
+      }
+    }
+    
+    QueryRequest request = new QueryRequest(params);
+    request.setPath("/admin/collections");
+    
+    return solrClient.request(request);
+  }
 
   /**
    * Shut down the cluster, including all Solr nodes and ZooKeeper
    */
   public void shutdown() throws Exception {
     try {
+      solrClient.shutdown();
       for (int i = jettys.size() - 1; i >= 0; --i) {
         stopJettySolrRunner(i);
       }
@@ -144,6 +173,14 @@ public class MiniSolrCloudCluster {
       }
     }
   }
+  
+  public CloudSolrClient getSolrClient() {
+    return solrClient;
+  }
+  
+  protected CloudSolrClient buildSolrClient() {
+    return new CloudSolrClient(getZkServer().getZkAddress());
+  }
 
   private static String getHostContextSuitableForServletContext(String ctx) {
     if (ctx == null || "".equals(ctx)) ctx = "/solr";
@@ -151,4 +188,4 @@ public class MiniSolrCloudCluster {
     if (!ctx.startsWith("/")) ctx = "/" + ctx;
     return ctx;
   }
-}
\ No newline at end of file
+}

Modified: lucene/dev/branches/lucene6005/solr/test-framework/src/java/org/apache/solr/cloud/SocketProxy.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6005/solr/test-framework/src/java/org/apache/solr/cloud/SocketProxy.java?rev=1649347&r1=1649346&r2=1649347&view=diff
==============================================================================
--- lucene/dev/branches/lucene6005/solr/test-framework/src/java/org/apache/solr/cloud/SocketProxy.java (original)
+++ lucene/dev/branches/lucene6005/solr/test-framework/src/java/org/apache/solr/cloud/SocketProxy.java Sun Jan  4 14:53:12 2015
@@ -59,24 +59,40 @@ public class SocketProxy {
   
   public List<Bridge> connections = new LinkedList<Bridge>();
   
-  private int listenPort = 0;
+  private final int listenPort;
   
   private int receiveBufferSize = -1;
   
   private boolean pauseAtStart = false;
   
   private int acceptBacklog = 50;
+
+  private boolean usesSSL;
+
+  public SocketProxy() throws Exception {
+    this(0, false);
+  }
   
-  public SocketProxy() throws Exception {}
+  public SocketProxy( boolean useSSL) throws Exception {
+    this(0, useSSL);
+  }
   
-  public SocketProxy(URI uri) throws Exception {
-    this(0, uri);
+  public SocketProxy(int port, boolean useSSL) throws Exception {
+    int listenPort = port;
+    this.usesSSL = useSSL;
+    serverSocket = createServerSocket(useSSL);
+    serverSocket.setReuseAddress(true);
+    if (receiveBufferSize > 0) {
+      serverSocket.setReceiveBufferSize(receiveBufferSize);
+    }
+    serverSocket.bind(new InetSocketAddress(listenPort), acceptBacklog);
+    this.listenPort = serverSocket.getLocalPort();
   }
   
-  public SocketProxy(int port, URI uri) throws Exception {
-    listenPort = port;
+  public void open(URI uri) throws Exception {
     target = uri;
-    open();
+    proxyUrl = urlFromSocket(target, serverSocket);
+    doOpen();
   }
   
   public String toString() {
@@ -91,18 +107,8 @@ public class SocketProxy {
     target = tcpBrokerUri;
   }
   
-  public void open() throws Exception {
-    serverSocket = createServerSocket(target);
-    serverSocket.setReuseAddress(true);
-    if (receiveBufferSize > 0) {
-      serverSocket.setReceiveBufferSize(receiveBufferSize);
-    }
-    if (proxyUrl == null) {
-      serverSocket.bind(new InetSocketAddress(listenPort), acceptBacklog);
-      proxyUrl = urlFromSocket(target, serverSocket);
-    } else {
-      serverSocket.bind(new InetSocketAddress(proxyUrl.getPort()));
-    }
+  private void doOpen() throws Exception {
+    
     acceptor = new Acceptor(serverSocket, target);
     if (pauseAtStart) {
       acceptor.pause();
@@ -112,19 +118,19 @@ public class SocketProxy {
     closed = new CountDownLatch(1);
   }
   
-  private boolean isSsl(URI target) {
-    return "ssl".equals(target.getScheme());
+  public int getListenPort() {
+    return listenPort;
   }
   
-  private ServerSocket createServerSocket(URI target) throws Exception {
-    if (isSsl(target)) {
+  private ServerSocket createServerSocket(boolean useSSL) throws Exception {
+    if (useSSL) {
       return SSLServerSocketFactory.getDefault().createServerSocket();
     }
     return new ServerSocket();
   }
   
-  private Socket createSocket(URI target) throws Exception {
-    if (isSsl(target)) {
+  private Socket createSocket(boolean useSSL) throws Exception {
+    if (useSSL) {
       return SSLSocketFactory.getDefault().createSocket();
     }
     return new Socket();
@@ -175,7 +181,16 @@ public class SocketProxy {
   public void reopen() {
     log.info("Re-opening connectivity to "+getUrl());
     try {
-      open();
+      if (proxyUrl == null) {
+        throw new IllegalStateException("Can not call open before open(URI uri).");
+      }
+      serverSocket = createServerSocket(usesSSL);
+      serverSocket.setReuseAddress(true);
+      if (receiveBufferSize > 0) {
+        serverSocket.setReceiveBufferSize(receiveBufferSize);
+      }
+      serverSocket.bind(new InetSocketAddress(proxyUrl.getPort()));
+      doOpen();
     } catch (Exception e) {
       log.debug("exception on reopen url:" + getUrl(), e);
     }
@@ -257,7 +272,7 @@ public class SocketProxy {
     
     public Bridge(Socket socket, URI target) throws Exception {
       receiveSocket = socket;
-      sendSocket = createSocket(target);
+      sendSocket = createSocket(usesSSL);
       if (receiveBufferSize > 0) {
         sendSocket.setReceiveBufferSize(receiveBufferSize);
       }
@@ -291,9 +306,9 @@ public class SocketProxy {
     }
     
     private void linkWithThreads(Socket source, Socket dest) {
-      requestThread = new Pump(source, dest);
+      requestThread = new Pump("Request", source, dest);
       requestThread.start();
-      responseThread = new Pump(dest, source);
+      responseThread = new Pump("Response", dest, source);
       responseThread.start();
     }
     
@@ -303,8 +318,8 @@ public class SocketProxy {
       private Socket destination;
       private AtomicReference<CountDownLatch> pause = new AtomicReference<CountDownLatch>();
       
-      public Pump(Socket source, Socket dest) {
-        super("SocketProxy-DataTransfer-" + source.getPort() + ":"
+      public Pump(String kind, Socket source, Socket dest) {
+        super("SocketProxy-"+kind+"-" + source.getPort() + ":"
             + dest.getPort());
         src = source;
         destination = dest;
@@ -321,17 +336,34 @@ public class SocketProxy {
       
       public void run() {
         byte[] buf = new byte[1024];
+
+        try {
+          src.setSoTimeout(10 * 1000);
+        } catch (SocketException e) {
+          log.error("Failed to set socket timeout on "+src+" due to: "+e);
+          throw new RuntimeException(e);
+        }
+
+        InputStream in = null;
+        OutputStream out = null;
         try {
-          InputStream in = src.getInputStream();
-          OutputStream out = destination.getOutputStream();
+          in = src.getInputStream();
+          out = destination.getOutputStream();
           while (true) {
-            int len = in.read(buf);
+            int len = -1;
+            try {
+              len = in.read(buf);
+            } catch (SocketTimeoutException ste) {
+              log.warn(ste+" when reading from "+src);
+            }
+
             if (len == -1) {
               log.debug("read eof from:" + src);
               break;
             }
             pause.get().await();
-            out.write(buf, 0, len);
+            if (len > 0)
+              out.write(buf, 0, len);
           }
         } catch (Exception e) {
           log.debug("read/write failed, reason: " + e.getLocalizedMessage());
@@ -342,6 +374,21 @@ public class SocketProxy {
               close();
             }
           } catch (Exception ignore) {}
+        } finally {
+          if (in != null) {
+            try {
+              in.close();
+            } catch (Exception exc) {
+              log.debug(exc+" when closing InputStream on socket: "+src);
+            }
+          }
+          if (out != null) {
+            try {
+              out.close();
+            } catch (Exception exc) {
+              log.debug(exc+" when closing OutputStream on socket: "+destination);
+            }
+          }
         }
       }
     }

Modified: lucene/dev/branches/lucene6005/solr/test-framework/src/java/org/apache/solr/cloud/StopableIndexingThread.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6005/solr/test-framework/src/java/org/apache/solr/cloud/StopableIndexingThread.java?rev=1649347&r1=1649346&r2=1649347&view=diff
==============================================================================
--- lucene/dev/branches/lucene6005/solr/test-framework/src/java/org/apache/solr/cloud/StopableIndexingThread.java (original)
+++ lucene/dev/branches/lucene6005/solr/test-framework/src/java/org/apache/solr/cloud/StopableIndexingThread.java Sun Jan  4 14:53:12 2015
@@ -6,7 +6,7 @@ import java.util.HashSet;
 import java.util.List;
 import java.util.Set;
 
-import org.apache.solr.client.solrj.SolrServer;
+import org.apache.solr.client.solrj.SolrClient;
 import org.apache.solr.client.solrj.SolrServerException;
 import org.apache.solr.client.solrj.request.UpdateRequest;
 import org.apache.solr.common.SolrInputDocument;
@@ -38,16 +38,16 @@ public class StopableIndexingThread exte
   protected Set<String> deleteFails = new HashSet<>();
   protected boolean doDeletes;
   private int numCycles;
-  private SolrServer controlClient;
-  private SolrServer cloudClient;
+  private SolrClient controlClient;
+  private SolrClient cloudClient;
   private int numDeletes;
   private int numAdds;
 
-  public StopableIndexingThread(SolrServer controlClient, SolrServer cloudClient, String id, boolean doDeletes) {
+  public StopableIndexingThread(SolrClient controlClient, SolrClient cloudClient, String id, boolean doDeletes) {
     this(controlClient, cloudClient, id, doDeletes, -1);
   }
   
-  public StopableIndexingThread(SolrServer controlClient, SolrServer cloudClient, String id, boolean doDeletes, int numCycles) {
+  public StopableIndexingThread(SolrClient controlClient, SolrClient cloudClient, String id, boolean doDeletes, int numCycles) {
     super("StopableIndexingThread");
     this.controlClient = controlClient;
     this.cloudClient = cloudClient;

Modified: lucene/dev/branches/lucene6005/solr/test-framework/src/java/org/apache/solr/util/ExternalPaths.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6005/solr/test-framework/src/java/org/apache/solr/util/ExternalPaths.java?rev=1649347&r1=1649346&r2=1649347&view=diff
==============================================================================
--- lucene/dev/branches/lucene6005/solr/test-framework/src/java/org/apache/solr/util/ExternalPaths.java (original)
+++ lucene/dev/branches/lucene6005/solr/test-framework/src/java/org/apache/solr/util/ExternalPaths.java Sun Jan  4 14:53:12 2015
@@ -51,9 +51,6 @@ public class ExternalPaths {
   public static String TECHPRODUCTS_CONFIGSET =
       new File(SOURCE_HOME, "server/solr/configsets/sample_techproducts_configs/conf").getAbsolutePath();
 
-  /* @see #SOURCE_HOME */
-  public static String EXAMPLE_MULTICORE_HOME = new File(SOURCE_HOME, "example/multicore").getAbsolutePath();
-
   public static String SERVER_HOME = new File(SOURCE_HOME, "server/solr").getAbsolutePath();
 
   /**

Modified: lucene/dev/branches/lucene6005/solr/test-framework/src/java/org/apache/solr/util/TestHarness.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6005/solr/test-framework/src/java/org/apache/solr/util/TestHarness.java?rev=1649347&r1=1649346&r2=1649347&view=diff
==============================================================================
--- lucene/dev/branches/lucene6005/solr/test-framework/src/java/org/apache/solr/util/TestHarness.java (original)
+++ lucene/dev/branches/lucene6005/solr/test-framework/src/java/org/apache/solr/util/TestHarness.java Sun Jan  4 14:53:12 2015
@@ -200,7 +200,7 @@ public class TestHarness extends BaseTes
     return container;
   }
 
-  /** Gets a core that does not have it's refcount incremented (i.e. there is no need to
+  /** Gets a core that does not have its refcount incremented (i.e. there is no need to
    * close when done).  This is not MT safe in conjunction with reloads!
    */
   public SolrCore getCore() {
@@ -212,7 +212,7 @@ public class TestHarness extends BaseTes
     return core;
   }
 
-  /** Gets the core with it's reference count incremented.
+  /** Gets the core with its reference count incremented.
    * You must call core.close() when done!
    */
   public SolrCore getCoreInc() {

Modified: lucene/dev/branches/lucene6005/solr/webapp/web/admin.html
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6005/solr/webapp/web/admin.html?rev=1649347&r1=1649346&r2=1649347&view=diff
==============================================================================
--- lucene/dev/branches/lucene6005/solr/webapp/web/admin.html (original)
+++ lucene/dev/branches/lucene6005/solr/webapp/web/admin.html Sun Jan  4 14:53:12 2015
@@ -22,7 +22,8 @@ limitations under the License.
     
   <title>Solr Admin</title>
     
-  <link rel="icon" type="image/ico" href="img/favicon.ico?_=${version}">
+  <link rel="icon" type="image/x-icon" href="img/favicon.ico?_=${version}">
+  <link rel="shortcut icon" type="image/x-icon" href="img/favicon.ico?_=${version}">
 
   <link rel="stylesheet" type="text/css" href="css/styles/common.css?_=${version}">
   <link rel="stylesheet" type="text/css" href="css/styles/analysis.css?_=${version}">

Modified: lucene/dev/branches/lucene6005/solr/webapp/web/css/styles/cloud.css
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6005/solr/webapp/web/css/styles/cloud.css?rev=1649347&r1=1649346&r2=1649347&view=diff
==============================================================================
--- lucene/dev/branches/lucene6005/solr/webapp/web/css/styles/cloud.css (original)
+++ lucene/dev/branches/lucene6005/solr/webapp/web/css/styles/cloud.css Sun Jan  4 14:53:12 2015
@@ -401,3 +401,10 @@ limitations under the License.
 {
   stroke: #fff;
 }
+
+#cloudGraphPaging
+{
+  display: inline-block,
+  padding-top: 15px,
+  padding-bottom: 15px
+}
\ No newline at end of file

Modified: lucene/dev/branches/lucene6005/solr/webapp/web/css/styles/common.css
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6005/solr/webapp/web/css/styles/common.css?rev=1649347&r1=1649346&r2=1649347&view=diff
==============================================================================
--- lucene/dev/branches/lucene6005/solr/webapp/web/css/styles/common.css (original)
+++ lucene/dev/branches/lucene6005/solr/webapp/web/css/styles/common.css Sun Jan  4 14:53:12 2015
@@ -202,7 +202,8 @@ ul
 
 #header #solr
 {
-  background-image: url( ../../img/solr.png );
+  background-image: url( ../../img/solr.svg );
+  background-size: 128px;
   display: block;
   height: 78px;
   width: 150px;

Modified: lucene/dev/branches/lucene6005/solr/webapp/web/favicon.ico
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6005/solr/webapp/web/favicon.ico?rev=1649347&r1=1649346&r2=1649347&view=diff
==============================================================================
Binary files - no diff available.

Modified: lucene/dev/branches/lucene6005/solr/webapp/web/img/favicon.ico
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6005/solr/webapp/web/img/favicon.ico?rev=1649347&r1=1649346&r2=1649347&view=diff
==============================================================================
Binary files - no diff available.

Modified: lucene/dev/branches/lucene6005/solr/webapp/web/img/solr-ico.png
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6005/solr/webapp/web/img/solr-ico.png?rev=1649347&r1=1649346&r2=1649347&view=diff
==============================================================================
Binary files - no diff available.

Modified: lucene/dev/branches/lucene6005/solr/webapp/web/js/lib/jquery.ajaxfileupload.js
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6005/solr/webapp/web/js/lib/jquery.ajaxfileupload.js?rev=1649347&r1=1649346&r2=1649347&view=diff
==============================================================================
--- lucene/dev/branches/lucene6005/solr/webapp/web/js/lib/jquery.ajaxfileupload.js (original)
+++ lucene/dev/branches/lucene6005/solr/webapp/web/js/lib/jquery.ajaxfileupload.js Sun Jan  4 14:53:12 2015
@@ -128,7 +128,7 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOU
           wrapElement($element);
 
           // Call user-supplied (or default) onStart(), setting
-          //  it's this context to the file DOM element
+          //  its this context to the file DOM element
           var ret = settings.onStart.apply($element, [settings.params]);
 
           // let onStart have the option to cancel the upload