You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by ro...@apache.org on 2014/12/31 15:05:50 UTC

svn commit: r1648697 [11/13] - in /lucene/dev/trunk/solr: ./ contrib/dataimporthandler/src/java/org/apache/solr/handler/dataimport/ contrib/dataimporthandler/src/test/org/apache/solr/handler/dataimport/ contrib/map-reduce/src/java/org/apache/solr/hadoo...

Modified: lucene/dev/trunk/solr/solrj/src/test/org/apache/solr/client/solrj/SolrExampleTests.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/solrj/src/test/org/apache/solr/client/solrj/SolrExampleTests.java?rev=1648697&r1=1648696&r2=1648697&view=diff
==============================================================================
--- lucene/dev/trunk/solr/solrj/src/test/org/apache/solr/client/solrj/SolrExampleTests.java (original)
+++ lucene/dev/trunk/solr/solrj/src/test/org/apache/solr/client/solrj/SolrExampleTests.java Wed Dec 31 14:05:48 2014
@@ -24,8 +24,8 @@ import org.apache.lucene.util.TestUtil;
 import org.apache.solr.SolrTestCaseJ4.SuppressSSL;
 import org.apache.solr.client.solrj.embedded.EmbeddedSolrServer;
 import org.apache.solr.client.solrj.impl.BinaryResponseParser;
-import org.apache.solr.client.solrj.impl.ConcurrentUpdateSolrServer;
-import org.apache.solr.client.solrj.impl.HttpSolrServer;
+import org.apache.solr.client.solrj.impl.ConcurrentUpdateSolrClient;
+import org.apache.solr.client.solrj.impl.HttpSolrClient;
 import org.apache.solr.client.solrj.impl.XMLResponseParser;
 import org.apache.solr.client.solrj.request.AbstractUpdateRequest;
 import org.apache.solr.client.solrj.request.AbstractUpdateRequest.ACTION;
@@ -85,10 +85,10 @@ abstract public class SolrExampleTests e
   @Test
   public void testExampleConfig() throws Exception
   {    
-    SolrServer server = getSolrServer();
+    SolrClient client = getSolrClient();
     
     // Empty the database...
-    server.deleteByQuery( "*:*" );// delete everything!
+    client.deleteByQuery( "*:*" );// delete everything!
     
     // Now add something...
     SolrInputDocument doc = new SolrInputDocument();
@@ -99,21 +99,21 @@ abstract public class SolrExampleTests e
     Assert.assertEquals( null, doc.getField("foo") );
     Assert.assertTrue(doc.getField("name").getValue() != null );
         
-    UpdateResponse upres = server.add( doc ); 
+    UpdateResponse upres = client.add( doc );
     // System.out.println( "ADD:"+upres.getResponse() );
     Assert.assertEquals(0, upres.getStatus());
     
-    upres = server.commit( true, true );
+    upres = client.commit( true, true );
     // System.out.println( "COMMIT:"+upres.getResponse() );
     Assert.assertEquals(0, upres.getStatus());
     
-    upres = server.optimize( true, true );
+    upres = client.optimize( true, true );
     // System.out.println( "OPTIMIZE:"+upres.getResponse() );
     Assert.assertEquals(0, upres.getStatus());
     
     SolrQuery query = new SolrQuery();
     query.setQuery( "id:"+docID );
-    QueryResponse response = server.query( query );
+    QueryResponse response = client.query( query );
     
     Assert.assertEquals(docID, response.getResults().get(0).getFieldValue("id") );
     
@@ -144,15 +144,15 @@ abstract public class SolrExampleTests e
     doc5.addField( "timestamp_dt", new java.util.Date(), 1.0f );
     docs.add(doc5);
     
-    upres = server.add( docs ); 
+    upres = client.add( docs );
     // System.out.println( "ADD:"+upres.getResponse() );
     Assert.assertEquals(0, upres.getStatus());
     
-    upres = server.commit( true, true );
+    upres = client.commit( true, true );
     // System.out.println( "COMMIT:"+upres.getResponse() );
     Assert.assertEquals(0, upres.getStatus());
     
-    upres = server.optimize( true, true );
+    upres = client.optimize( true, true );
     // System.out.println( "OPTIMIZE:"+upres.getResponse() );
     Assert.assertEquals(0, upres.getStatus());
     
@@ -165,7 +165,7 @@ abstract public class SolrExampleTests e
     query.addFacetField("timestamp_dt");
     query.removeFilterQuery("inStock:true");
     
-    response = server.query( query );
+    response = client.query( query );
     Assert.assertEquals(0, response.getStatus());
     Assert.assertEquals(5, response.getResults().getNumFound() );
     Assert.assertEquals(3, response.getFacetQuery().size());    
@@ -175,7 +175,7 @@ abstract public class SolrExampleTests e
     // test a second query, test making a copy of the main query
     SolrQuery query2 = query.getCopy();
     query2.addFilterQuery("inStock:true");
-    response = server.query( query2 );
+    response = client.query( query2 );
     Assert.assertEquals(1, query2.getFilterQueries().length);
     Assert.assertEquals(0, response.getStatus());
     Assert.assertEquals(2, response.getResults().getNumFound() );
@@ -188,7 +188,7 @@ abstract public class SolrExampleTests e
     query.addFacetQuery("price:[* TO 2]");
     query.addFacetQuery("price:[2 TO 4]");
 
-    response = server.query( query );
+    response = client.query( query );
     assertTrue("echoed params are not a NamedList: " +
                response.getResponseHeader().get("params").getClass(),
                response.getResponseHeader().get("params") instanceof NamedList);
@@ -213,13 +213,13 @@ abstract public class SolrExampleTests e
     if (jetty != null) {
       // check system wide system handler + "/admin/info/system"
       String url = jetty.getBaseUrl().toString();
-      HttpSolrServer client = new HttpSolrServer(url);
+      HttpSolrClient adminClient = new HttpSolrClient(url);
       SolrQuery q = new SolrQuery();
       q.set("qt", "/admin/info/system");
-      QueryResponse rsp = client.query(q);
+      QueryResponse rsp = adminClient.query(q);
       assertNotNull(rsp.getResponse().get("mode"));
       assertNotNull(rsp.getResponse().get("lucene"));
-      client.shutdown();
+      adminClient.shutdown();
     }
   }
 
@@ -230,10 +230,10 @@ abstract public class SolrExampleTests e
  @Test
  public void testAddRetrieve() throws Exception
   {    
-    SolrServer server = getSolrServer();
+    SolrClient client = getSolrClient();
     
     // Empty the database...
-    server.deleteByQuery( "*:*" );// delete everything!
+    client.deleteByQuery("*:*");// delete everything!
     
     // Now add something...
     SolrInputDocument doc1 = new SolrInputDocument();
@@ -251,28 +251,28 @@ abstract public class SolrExampleTests e
     docs.add( doc2 );
     
     // Add the documents
-    server.add( docs );
-    server.commit();
+    client.add(docs);
+    client.commit();
     
     SolrQuery query = new SolrQuery();
     query.setQuery( "*:*" );
     query.addSortField( "price", SolrQuery.ORDER.asc );
-    QueryResponse rsp = server.query( query );
+    QueryResponse rsp = client.query( query );
     
-    assertEquals( 2, rsp.getResults().getNumFound() );
+    assertEquals(2, rsp.getResults().getNumFound());
     // System.out.println( rsp.getResults() );
     
     // Now do it again
-    server.add( docs );
-    server.commit();
+    client.add( docs );
+    client.commit();
     
-    rsp = server.query( query );
+    rsp = client.query( query );
     assertEquals( 2, rsp.getResults().getNumFound() );
     // System.out.println( rsp.getResults() );
 
     // query outside ascii range
     query.setQuery("name:h\uD866\uDF05llo");
-    rsp = server.query( query );
+    rsp = client.query( query );
     assertEquals( 1, rsp.getResults().getNumFound() );
 
   }
@@ -284,26 +284,26 @@ abstract public class SolrExampleTests e
   @Test
   public void testGetEmptyResults() throws Exception
   {    
-    SolrServer server = getSolrServer();
+    SolrClient client = getSolrClient();
      
     // Empty the database...
-    server.deleteByQuery( "*:*" );// delete everything!
-    server.commit();
+    client.deleteByQuery("*:*");// delete everything!
+    client.commit();
      
     // Add two docs
     SolrInputDocument doc = new SolrInputDocument();
     doc.addField( "id", "id1", 1.0f );
     doc.addField( "name", "doc1", 1.0f );
     doc.addField( "price", 10 );
-    server.add( doc );
+    client.add(doc);
     
     doc = new SolrInputDocument();
     doc.addField( "id", "id2", 1.0f );
-    server.add( doc );
-    server.commit();
+    client.add(doc);
+    client.commit();
     
     // Make sure we get empty docs for unknown field
-    SolrDocumentList out = server.query( new SolrQuery( "*:*" ).set("fl", "foofoofoo" ) ).getResults();
+    SolrDocumentList out = client.query( new SolrQuery( "*:*" ).set("fl", "foofoofoo" ) ).getResults();
     assertEquals( 2, out.getNumFound() );
     assertEquals( 0, out.get(0).size() );
     assertEquals( 0, out.get(1).size() );
@@ -338,30 +338,30 @@ abstract public class SolrExampleTests e
     Random random = random();
     int numIterations = atLeast(3);
     
-    SolrServer server = getSolrServer();
+    SolrClient client = getSolrClient();
     
     // save the old parser, so we can set it back.
     ResponseParser oldParser = null;
-    if (server instanceof HttpSolrServer) {
-      HttpSolrServer cserver = (HttpSolrServer) server;
-      oldParser = cserver.getParser();
+    if (client instanceof HttpSolrClient) {
+      HttpSolrClient httpSolrClient = (HttpSolrClient) client;
+      oldParser = httpSolrClient.getParser();
     }
     
     try {
       for (int iteration = 0; iteration < numIterations; iteration++) {
         // choose format
-        if (server instanceof HttpSolrServer) {
+        if (client instanceof HttpSolrClient) {
           if (random.nextBoolean()) {
-            ((HttpSolrServer) server).setParser(new BinaryResponseParser());
+            ((HttpSolrClient) client).setParser(new BinaryResponseParser());
           } else {
-            ((HttpSolrServer) server).setParser(new XMLResponseParser());
+            ((HttpSolrClient) client).setParser(new XMLResponseParser());
           }
         }
 
         int numDocs = TestUtil.nextInt(random(), 1, 10 * RANDOM_MULTIPLIER);
         
         // Empty the database...
-        server.deleteByQuery("*:*");// delete everything!
+        client.deleteByQuery("*:*");// delete everything!
         
         List<SolrInputDocument> docs = new ArrayList<>();
         for (int i = 0; i < numDocs; i++) {
@@ -372,14 +372,14 @@ abstract public class SolrExampleTests e
           docs.add(doc);
         }
         
-        server.add(docs);
-        server.commit();
+        client.add(docs);
+        client.commit();
         
         SolrQuery query = new SolrQuery();
         query.setQuery("*:*");
         query.setRows(numDocs);
         
-        QueryResponse rsp = server.query( query );
+        QueryResponse rsp = client.query( query );
         
         for (int i = 0; i < numDocs; i++) {
           String expected = (String) docs.get(i).getFieldValue("unicode_s");
@@ -390,7 +390,7 @@ abstract public class SolrExampleTests e
     } finally {
       if (oldParser != null) {
         // set the old parser back
-        ((HttpSolrServer)server).setParser(oldParser);
+        ((HttpSolrClient)client).setParser(oldParser);
       }
     }
   }
@@ -398,14 +398,14 @@ abstract public class SolrExampleTests e
   @Test
   public void testErrorHandling() throws Exception
   {    
-    SolrServer server = getSolrServer();
+    SolrClient client = getSolrClient();
 
     SolrQuery query = new SolrQuery();
     query.set(CommonParams.QT, "/analysis/field");
     query.set(AnalysisParams.FIELD_TYPE, "int");
     query.set(AnalysisParams.FIELD_VALUE, "ignore_exception");
     try {
-      server.query( query );
+      client.query( query );
       Assert.fail("should have a number format exception");
     }
     catch(SolrException ex) {
@@ -420,7 +420,7 @@ abstract public class SolrExampleTests e
     try {
       //the df=text here is a kluge for the test to supply a default field in case there is none in schema.xml
       // alternatively, the resulting assertion could be modified to assert that no default field is specified.
-      server.deleteByQuery( "{!df=text} ??::?? ignore_exception" ); // query syntax error
+      client.deleteByQuery( "{!df=text} ??::?? ignore_exception" ); // query syntax error
       Assert.fail("should have a number format exception");
     }
     catch(SolrException ex) {
@@ -437,9 +437,9 @@ abstract public class SolrExampleTests e
     doc.addField("id", "DOCID2", 1.0f);
     doc.addField("name", "hello", 1.0f);
 
-    if (server instanceof HttpSolrServer) {
+    if (client instanceof HttpSolrClient) {
       try {
-        server.add(doc);
+        client.add(doc);
         fail("Should throw exception!");
       } catch (SolrException ex) {
         assertEquals(400, ex.code());
@@ -448,21 +448,21 @@ abstract public class SolrExampleTests e
       } catch (Throwable t) {
         Assert.fail("should have thrown a SolrException! not: " + t);
       }
-    } else if (server instanceof ConcurrentUpdateSolrServer) {
+    } else if (client instanceof ConcurrentUpdateSolrClient) {
       //XXX concurrentupdatesolrserver reports errors differently
-      ConcurrentUpdateSolrServer cs = (ConcurrentUpdateSolrServer) server;
-      Field field = getCUSSExceptionField(cs);
-      field.set(cs,  null);
-      cs.add(doc);
-      cs.blockUntilFinished();
-      Throwable lastError = (Throwable)field.get(cs);
+      ConcurrentUpdateSolrClient concurrentClient = (ConcurrentUpdateSolrClient) client;
+      Field field = getConcurrentClientExceptionField(concurrentClient);
+      field.set(concurrentClient, null);
+      concurrentClient.add(doc);
+      concurrentClient.blockUntilFinished();
+      Throwable lastError = (Throwable)field.get(concurrentClient);
       assertNotNull("Should throw exception!", lastError); //XXX 
     } else {
-      log.info("Ignorig update test for client:" + server.getClass().getName());
+      log.info("Ignoring update test for client:" + client.getClass().getName());
     }
   }
   
-  private static Field getCUSSExceptionField(Object cs)
+  private static Field getConcurrentClientExceptionField(Object cs)
       throws SecurityException, NoSuchFieldException, IllegalArgumentException {
     Field field = cs.getClass().getDeclaredField("lastError");
     field.setAccessible(true);
@@ -472,31 +472,31 @@ abstract public class SolrExampleTests e
   @Test
   public void testAugmentFields() throws Exception
   {    
-    SolrServer server = getSolrServer();
+    SolrClient client = getSolrClient();
     
     // Empty the database...
-    server.deleteByQuery( "*:*" );// delete everything!
+    client.deleteByQuery("*:*");// delete everything!
     
     // Now add something...
     SolrInputDocument doc = new SolrInputDocument();
     doc.addField( "id", "111", 1.0f );
     doc.addField( "name", "doc1", 1.0f );
     doc.addField( "price", 11 );
-    server.add( doc );
-    server.commit(); // make sure this gets in first
+    client.add(doc);
+    client.commit(); // make sure this gets in first
     
     doc = new SolrInputDocument();
     doc.addField( "id", "222", 1.0f );
     doc.addField( "name", "doc2", 1.0f );
     doc.addField( "price", 22 );
-    server.add( doc );
-    server.commit();
+    client.add(doc);
+    client.commit();
     
     SolrQuery query = new SolrQuery();
     query.setQuery( "*:*" );
     query.set( CommonParams.FL, "id,price,[docid],[explain style=nl],score,aaa:[value v=aaa],ten:[value v=10 t=int]" );
     query.addSortField( "price", SolrQuery.ORDER.asc );
-    QueryResponse rsp = server.query( query );
+    QueryResponse rsp = client.query( query );
     
     SolrDocumentList out = rsp.getResults();
     assertEquals( 2, out.getNumFound() );
@@ -523,10 +523,10 @@ abstract public class SolrExampleTests e
 
   @Test
   public void testUpdateRequestWithParameters() throws Exception {
-    SolrServer server1 = createNewSolrServer();
+    SolrClient client = createNewSolrClient();
     
-    server1.deleteByQuery( "*:*" );
-    server1.commit();
+    client.deleteByQuery("*:*");
+    client.commit();
     
     SolrInputDocument doc = new SolrInputDocument();
     doc.addField("id", "id1");
@@ -534,47 +534,47 @@ abstract public class SolrExampleTests e
     UpdateRequest req = new UpdateRequest();
     req.setParam("overwrite", "false");
     req.add(doc);
-    server1.request(req);
-    server1.request(req);
-    server1.commit();
+    client.request(req);
+    client.request(req);
+    client.commit();
     
     SolrQuery query = new SolrQuery();
     query.setQuery("*:*");
-    QueryResponse rsp = server1.query(query);
+    QueryResponse rsp = client.query(query);
     
     SolrDocumentList out = rsp.getResults();
     assertEquals(2, out.getNumFound());
-    if (!(server1 instanceof EmbeddedSolrServer)) {
+    if (!(client instanceof EmbeddedSolrServer)) {
       /* Do not close in case of using EmbeddedSolrServer,
        * as that would close the CoreContainer */
-      server1.shutdown();
+      client.shutdown();
     }
   }
   
  @Test
  public void testContentStreamRequest() throws Exception {
-    SolrServer server = getSolrServer();
-    server.deleteByQuery( "*:*" );// delete everything!
-    server.commit();
-    QueryResponse rsp = server.query( new SolrQuery( "*:*") );
-    Assert.assertEquals( 0, rsp.getResults().getNumFound() );
+    SolrClient client = getSolrClient();
+    client.deleteByQuery("*:*");// delete everything!
+    client.commit();
+    QueryResponse rsp = client.query( new SolrQuery( "*:*") );
+    Assert.assertEquals(0, rsp.getResults().getNumFound());
 
     ContentStreamUpdateRequest up = new ContentStreamUpdateRequest("/update");
     up.addFile(getFile("solrj/books.csv"), "application/csv");
     up.setAction(AbstractUpdateRequest.ACTION.COMMIT, true, true);
-    NamedList<Object> result = server.request(up);
+    NamedList<Object> result = client.request(up);
     assertNotNull("Couldn't upload books.csv", result);
-    rsp = server.query( new SolrQuery( "*:*") );
+    rsp = client.query( new SolrQuery( "*:*") );
     Assert.assertEquals( 10, rsp.getResults().getNumFound() );
  }
 
  @Test
  public void testMultiContentStreamRequest() throws Exception {
-    SolrServer server = getSolrServer();
-    server.deleteByQuery( "*:*" );// delete everything!
-    server.commit();
-    QueryResponse rsp = server.query( new SolrQuery( "*:*") );
-    Assert.assertEquals( 0, rsp.getResults().getNumFound() );
+    SolrClient client = getSolrClient();
+    client.deleteByQuery("*:*");// delete everything!
+    client.commit();
+    QueryResponse rsp = client.query( new SolrQuery( "*:*") );
+    Assert.assertEquals(0, rsp.getResults().getNumFound());
 
     ContentStreamUpdateRequest up = new ContentStreamUpdateRequest("/update");
     up.addFile(getFile("solrj/docs1.xml"),"application/xml"); // 2
@@ -582,49 +582,49 @@ abstract public class SolrExampleTests e
     up.setParam("a", "\u1234");
     up.setParam(CommonParams.HEADER_ECHO_PARAMS, CommonParams.EchoParamStyle.ALL.toString());
     up.setAction(AbstractUpdateRequest.ACTION.COMMIT, true, true);
-    NamedList<Object> result = server.request(up);
+    NamedList<Object> result = client.request(up);
     Assert.assertEquals("\u1234",
         ((NamedList)((NamedList) result.get("responseHeader")).get("params")).get("a"));
     assertNotNull("Couldn't upload xml files", result);
-    rsp = server.query( new SolrQuery( "*:*") );
+    rsp = client.query( new SolrQuery( "*:*") );
     Assert.assertEquals( 5 , rsp.getResults().getNumFound() );
   }
   
  @Test
  public void testLukeHandler() throws Exception
   {    
-    SolrServer server = getSolrServer();
+    SolrClient client = getSolrClient();
     
     // Empty the database...
-    server.deleteByQuery( "*:*" );// delete everything!
+    client.deleteByQuery("*:*");// delete everything!
     
     SolrInputDocument[] doc = new SolrInputDocument[5];
     for( int i=0; i<doc.length; i++ ) {
       doc[i] = new SolrInputDocument();
       doc[i].setField( "id", "ID"+i, 1.0f );
-      server.add( doc[i] );
+      client.add(doc[i]);
     }
-    server.commit();
+    client.commit();
     assertNumFound( "*:*", doc.length ); // make sure it got in
     
     LukeRequest luke = new LukeRequest();
     luke.setShowSchema( false );
-    LukeResponse rsp = luke.process( server );
+    LukeResponse rsp = luke.process( client );
     assertNull( rsp.getFieldTypeInfo() ); // if you don't ask for it, the schema is null
     
     luke.setShowSchema( true );
-    rsp = luke.process( server );
+    rsp = luke.process( client );
     assertNotNull( rsp.getFieldTypeInfo() ); 
   }
 
  @Test
  public void testStatistics() throws Exception
   {    
-    SolrServer server = getSolrServer();
+    SolrClient client = getSolrClient();
     
     // Empty the database...
-    server.deleteByQuery( "*:*" );// delete everything!
-    server.commit();
+    client.deleteByQuery("*:*");// delete everything!
+    client.commit();
     assertNumFound( "*:*", 0 ); // make sure it got in
 
     String f = "val_i";
@@ -636,54 +636,54 @@ abstract public class SolrExampleTests e
       doc.setField( "id", "doc"+i++ );
       doc.setField( "name", "doc: "+num );
       doc.setField( f, num );
-      server.add( doc );
+      client.add(doc);
     }
-    server.commit();
+    client.commit();
     assertNumFound( "*:*", nums.length ); // make sure they all got in
     
     SolrQuery query = new SolrQuery( "*:*" );
     query.setRows( 0 );
     query.setGetFieldStatistics( f );
     
-    QueryResponse rsp = server.query( query );
+    QueryResponse rsp = client.query( query );
     FieldStatsInfo stats = rsp.getFieldStatsInfo().get( f );
-    assertNotNull( stats );
+    assertNotNull(stats);
     
     assertEquals( 23.0, ((Double)stats.getMin()).doubleValue(), 0 );
-    assertEquals( 94.0, ((Double)stats.getMax()).doubleValue(), 0 );
+    assertEquals(94.0, ((Double) stats.getMax()).doubleValue(), 0);
     assertEquals( new Long(nums.length), stats.getCount() );
     assertEquals( new Long(0), stats.getMissing() );
-    assertEquals( "26.4", stats.getStddev().toString().substring(0,4) );
+    assertEquals( "26.4", stats.getStddev().toString().substring(0, 4) );
     
     // now lets try again with a new set...  (odd median)
     //----------------------------------------------------
-    server.deleteByQuery( "*:*" );// delete everything!
-    server.commit();
-    assertNumFound( "*:*", 0 ); // make sure it got in
+    client.deleteByQuery( "*:*" );// delete everything!
+    client.commit();
+    assertNumFound("*:*", 0); // make sure it got in
     nums = new int[] { 5, 7, 10, 19, 20 };
     for( int num : nums ) {
       SolrInputDocument doc = new SolrInputDocument();
       doc.setField( "id", "doc"+i++ );
       doc.setField( "name", "doc: "+num );
       doc.setField( f, num );
-      server.add( doc );
+      client.add( doc );
     }
-    server.commit();
+    client.commit();
     assertNumFound( "*:*", nums.length ); // make sure they all got in
     
-    rsp = server.query( query );
+    rsp = client.query( query );
     stats = rsp.getFieldStatsInfo().get( f );
     assertNotNull( stats );
     
-    assertEquals( 5.0, ((Double)stats.getMin()).doubleValue(), 0 );
+    assertEquals(5.0, ((Double) stats.getMin()).doubleValue(), 0);
     assertEquals( 20.0, ((Double)stats.getMax()).doubleValue(), 0 );
-    assertEquals( new Long(nums.length), stats.getCount() );
+    assertEquals(new Long(nums.length), stats.getCount());
     assertEquals( new Long(0), stats.getMissing() );
     
     // Now try again with faceting
     //---------------------------------
-    server.deleteByQuery( "*:*" );// delete everything!
-    server.commit();
+    client.deleteByQuery("*:*");// delete everything!
+    client.commit();
     assertNumFound( "*:*", 0 ); // make sure it got in
     nums = new int[] { 1, 2, 3, 4, 5, 10, 11, 12, 13, 14 };
     for( i=0; i<nums.length; i++ ) {
@@ -693,15 +693,15 @@ abstract public class SolrExampleTests e
       doc.setField( "name", "doc: "+num );
       doc.setField( f, num );
       doc.setField( "inStock", i < 5 );
-      server.add( doc );
+      client.add( doc );
     }
-    server.commit();
+    client.commit();
     assertNumFound( "inStock:true",  5 ); // make sure they all got in
     assertNumFound( "inStock:false", 5 ); // make sure they all got in
 
     // facet on 'inStock'
-    query.addStatsFieldFacets( f, "inStock" );
-    rsp = server.query( query );
+    query.addStatsFieldFacets(f, "inStock");
+    rsp = client.query( query );
     stats = rsp.getFieldStatsInfo().get( f );
     assertNotNull( stats );
     
@@ -727,26 +727,26 @@ abstract public class SolrExampleTests e
   @Test
   public void testPingHandler() throws Exception
   {    
-    SolrServer server = getSolrServer();
+    SolrClient client = getSolrClient();
     
     // Empty the database...
-    server.deleteByQuery( "*:*" );// delete everything!
-    server.commit();
+    client.deleteByQuery("*:*");// delete everything!
+    client.commit();
     assertNumFound( "*:*", 0 ); // make sure it got in
     
     // should be ok
-    server.ping();
+    client.ping();
     
   }
   
   @Test
   public void testFaceting() throws Exception
   {    
-    SolrServer server = getSolrServer();
+    SolrClient client = getSolrClient();
     
     // Empty the database...
-    server.deleteByQuery( "*:*" );// delete everything!
-    server.commit();
+    client.deleteByQuery("*:*");// delete everything!
+    client.commit();
     assertNumFound( "*:*", 0 ); // make sure it got in
     
     ArrayList<SolrInputDocument> docs = new ArrayList<>(10);
@@ -767,8 +767,8 @@ abstract public class SolrExampleTests e
       }
       docs.add( doc );
     }
-    server.add( docs );
-    server.commit();
+    client.add(docs);
+    client.commit();
     
     SolrQuery query = new SolrQuery( "*:*" );
     query.remove( FacetParams.FACET_FIELD );
@@ -777,8 +777,8 @@ abstract public class SolrExampleTests e
     query.setFacet( true );
     query.setRows( 0 );
     
-    QueryResponse rsp = server.query( query );
-    assertEquals( docs.size(), rsp.getResults().getNumFound() );
+    QueryResponse rsp = client.query( query );
+    assertEquals(docs.size(), rsp.getResults().getNumFound());
     
     List<FacetField> facets = rsp.getFacetFields();
     assertEquals( 1, facets.size() );
@@ -790,19 +790,19 @@ abstract public class SolrExampleTests e
     
     // should be the same facets with minCount=0
     query.setFilterQueries( "features:two" );
-    rsp = server.query( query );
+    rsp = client.query( query );
     ff = rsp.getFacetField( "features" );
-    assertEquals( "[two (5), four (2), five (1), three (1)]", ff.getValues().toString() );
+    assertEquals("[two (5), four (2), five (1), three (1)]", ff.getValues().toString());
     
     // with minCount > 3
-    query.setFacetMinCount( 4 );
-    rsp = server.query( query );
+    query.setFacetMinCount(4);
+    rsp = client.query( query );
     ff = rsp.getFacetField( "features" );
     assertEquals( "[two (5)]", ff.getValues().toString() );
 
     // with minCount > 3
-    query.setFacetMinCount( -1 );
-    rsp = server.query( query );
+    query.setFacetMinCount(-1);
+    rsp = client.query( query );
     ff = rsp.getFacetField( "features" );
     
     // System.out.println( rsp.getResults().getNumFound() + " :::: 444: "+ff.getValues() );
@@ -815,11 +815,11 @@ abstract public class SolrExampleTests e
     
   @Test
   public void testPivotFacetsStats() throws Exception {
-    SolrServer server = getSolrServer();
+    SolrClient client = getSolrClient();
 
     // Empty the database...
-    server.deleteByQuery("*:*");// delete everything!
-    server.commit();
+    client.deleteByQuery("*:*");// delete everything!
+    client.commit();
     assertNumFound("*:*", 0); // make sure it got in
 
     int id = 1;
@@ -836,8 +836,8 @@ abstract public class SolrExampleTests e
     docs.add(makeTestDoc("id", id++, "features", "bbb", "manu", "ztc", "cat", "b", "inStock", false, "popularity", 38, "price", 47.98));
     docs.add(makeTestDoc("id", id++, "features", "bbb", "manu", "ztc", "cat", "b", "inStock", true, "popularity", -38));
     docs.add(makeTestDoc("id", id++, "cat", "b")); // something not matching all fields
-    server.add(docs);
-    server.commit();
+    client.add(docs);
+    client.commit();
 
     for (String pivot : new String[] { "{!key=pivot_key stats=s1}features,manu",
                                        "{!key=pivot_key stats=s1}features,manu,cat",
@@ -854,7 +854,7 @@ abstract public class SolrExampleTests e
       query.setFacetMinCount(0);
       query.setRows(0);
 
-      QueryResponse rsp = server.query(query);
+      QueryResponse rsp = client.query(query);
 
       // check top (ie: non-pivot) stats
       Map<String, FieldStatsInfo> map = rsp.getFieldStatsInfo();
@@ -942,17 +942,17 @@ abstract public class SolrExampleTests e
 
   @Test
   public void testPivotFacetsStatsNotSupported() throws Exception {
-    SolrServer server = getSolrServer();
+    SolrClient client = getSolrClient();
 
     // Empty the database...
-    server.deleteByQuery("*:*");// delete everything!
-    server.commit();
+    client.deleteByQuery("*:*");// delete everything!
+    client.commit();
     assertNumFound("*:*", 0); // make sure it got in
 
     // results of this test should be the same regardless of whether any docs in index
     if (random().nextBoolean()) {
-      server.add(makeTestDoc("id", 1, "features", "aaa", "cat", "a", "inStock", true, "popularity", 12, "price", .017));
-      server.commit();
+      client.add(makeTestDoc("id", 1, "features", "aaa", "cat", "a", "inStock", true, "popularity", 12, "price", .017));
+      client.commit();
     }
 
     ignoreException("is not currently supported");
@@ -962,7 +962,7 @@ abstract public class SolrExampleTests e
     query.addFacetPivotField("{!stats=s1}features,manu");
     query.addGetFieldStatistics("{!key=inStock_val tag=s1}inStock");
     try {
-      server.query(query);
+      client.query(query);
       fail("SolrException should be thrown on query");
     } catch (SolrException e) {
       assertEquals("Pivot facet on boolean is not currently supported, bad request returned", 400, e.code());
@@ -977,7 +977,7 @@ abstract public class SolrExampleTests e
     query.setFacetMinCount(0);
     query.setRows(0);
     try {
-      server.query(query);
+      client.query(query);
       fail("SolrException should be thrown on query");
     } catch (SolrException e) {
       assertEquals(400, e.code());
@@ -993,7 +993,7 @@ abstract public class SolrExampleTests e
     query.setFacetMinCount(0);
     query.setRows(0);
     try {
-      server.query(query);
+      client.query(query);
       fail("SolrException should be thrown on query");
     } catch (SolrException e) {
       assertEquals("Pivot facet on string is not currently supported, bad request returned", 400, e.code());
@@ -1009,11 +1009,11 @@ abstract public class SolrExampleTests e
   }
     
   private void doPivotFacetTest(boolean missing) throws Exception {
-    SolrServer server = getSolrServer();
+    SolrClient client = getSolrClient();
     
     // Empty the database...
-    server.deleteByQuery( "*:*" );// delete everything!
-    server.commit();
+    client.deleteByQuery("*:*");// delete everything!
+    client.commit();
     assertNumFound( "*:*", 0 ); // make sure it got in
     
     int id = 1;
@@ -1030,8 +1030,8 @@ abstract public class SolrExampleTests e
     docs.add( makeTestDoc( "id", id++, "features", "bbb",  "cat", "b", "inStock", false ) );
     docs.add( makeTestDoc( "id", id++, "features", "bbb",  "cat", "b", "inStock", true ) );
     docs.add( makeTestDoc( "id", id++,  "cat", "b" ) ); // something not matching all fields
-    server.add( docs );
-    server.commit();
+    client.add(docs);
+    client.commit();
     
     SolrQuery query = new SolrQuery( "*:*" );
     query.addFacetPivotField("features,cat", "cat,features", "features,cat,inStock" );
@@ -1039,8 +1039,8 @@ abstract public class SolrExampleTests e
     query.setFacetMissing( missing );
     query.setRows( 0 );
     
-    QueryResponse rsp = server.query( query );
-    assertEquals( docs.size(), rsp.getResults().getNumFound() );
+    QueryResponse rsp = client.query( query );
+    assertEquals(docs.size(), rsp.getResults().getNumFound());
     
     NamedList<List<PivotField>> pivots = rsp.getFacetPivot();
     assertEquals( 3, pivots.size() );
@@ -1200,10 +1200,10 @@ abstract public class SolrExampleTests e
     query = new SolrQuery( "*:*" );
     query.addFacetPivotField( "{!ex=mytag key=mykey}features,cat" );
     query.addFilterQuery("{!tag=mytag}-(features:bbb AND cat:a AND inStock:true)");//filters out one
-    query.setFacetMinCount( 0 );
-    query.setRows( 0 );
+    query.setFacetMinCount(0);
+    query.setRows(0);
 
-    rsp = server.query( query );
+    rsp = client.query( query );
     assertEquals( docs.size() - 1, rsp.getResults().getNumFound() );//one less due to filter
 
     //The rest of this test should be just like the original since we've
@@ -1240,10 +1240,10 @@ abstract public class SolrExampleTests e
 
   @Test
   public void testChineseDefaults() throws Exception {
-    SolrServer server = getSolrServer();
+    SolrClient client = getSolrClient();
     // Empty the database...
-    server.deleteByQuery( "*:*" );// delete everything!
-    server.commit();
+    client.deleteByQuery("*:*");// delete everything!
+    client.commit();
     assertNumFound( "*:*", 0 ); // make sure it got in
 
     // Beijing medical University
@@ -1254,28 +1254,28 @@ abstract public class SolrExampleTests e
     req.add(doc);
 
     req.setAction(ACTION.COMMIT, true, true );
-    req.process( server );
+    req.process( client );
 
     // Beijing university should match:
     SolrQuery query = new SolrQuery("北京大学");
-    QueryResponse rsp = server.query( query );
+    QueryResponse rsp = client.query( query );
     assertEquals(1, rsp.getResults().getNumFound());
   }
 
   @Test
   public void testRealtimeGet() throws Exception
   {    
-    SolrServer server = getSolrServer();
+    SolrClient client = getSolrClient();
     
     // Empty the database...
-    server.deleteByQuery( "*:*" );// delete everything!
+    client.deleteByQuery("*:*");// delete everything!
     
     // Now add something...
     SolrInputDocument doc = new SolrInputDocument();
     doc.addField( "id", "DOCID", 1.0f );
     doc.addField( "name", "hello", 1.0f );
-    server.add( doc );
-    server.commit();  // Since the transaction log is disabled in the example, we need to commit
+    client.add(doc);
+    client.commit();  // Since the transaction log is disabled in the example, we need to commit
     
     SolrQuery q = new SolrQuery();
     q.setRequestHandler("/get");
@@ -1285,7 +1285,7 @@ abstract public class SolrExampleTests e
     // First Try with the BinaryResponseParser
     QueryRequest req = new QueryRequest( q );
     req.setResponseParser(new BinaryResponseParser());
-    QueryResponse rsp = req.process(server);
+    QueryResponse rsp = req.process(client);
     SolrDocument out = (SolrDocument)rsp.getResponse().get("doc");
     assertEquals("DOCID", out.get("id"));
     assertEquals("hello", out.get("name"));
@@ -1293,7 +1293,7 @@ abstract public class SolrExampleTests e
 
     // Then with the XMLResponseParser
     req.setResponseParser(new XMLResponseParser());
-    rsp = req.process(server);
+    rsp = req.process(client);
     out = (SolrDocument)rsp.getResponse().get("doc");
     assertEquals("DOCID", out.get("id"));
     assertEquals("hello", out.get("name"));
@@ -1303,18 +1303,18 @@ abstract public class SolrExampleTests e
   @Test
   public void testUpdateField() throws Exception {
     //no versions
-    SolrServer server = getSolrServer();
-    server.deleteByQuery("*:*");
-    server.commit();
+    SolrClient client = getSolrClient();
+    client.deleteByQuery("*:*");
+    client.commit();
     SolrInputDocument doc = new SolrInputDocument();
     doc.addField("id", "unique");
     doc.addField("name", "gadget");
     doc.addField("price_f", 1);
-    server.add(doc);
-    server.commit();
+    client.add(doc);
+    client.commit();
     SolrQuery q = new SolrQuery("*:*");
     q.setFields("id","price_f","name", "_version_");
-    QueryResponse resp = server.query(q);
+    QueryResponse resp = client.query(q);
     assertEquals("Doc count does not match", 1, resp.getResults().getNumFound());
     Long version = (Long)resp.getResults().get(0).getFirstValue("_version_");
     assertNotNull("no version returned", version);
@@ -1329,12 +1329,12 @@ abstract public class SolrExampleTests e
     doc.addField("_version_", version+1);
     doc.addField("price_f", oper);
     try {
-      server.add(doc);
-      if(server instanceof HttpSolrServer) { //XXX concurrent server reports exceptions differently
+      client.add(doc);
+      if(client instanceof HttpSolrClient) { //XXX concurrent client reports exceptions differently
         fail("Operation should throw an exception!");
       } else {
-        server.commit(); //just to be sure the client has sent the doc
-        assertTrue("CUSS did not report an error", ((Throwable)getCUSSExceptionField(server).get(server)).getMessage().contains("Conflict"));
+        client.commit(); //just to be sure the client has sent the doc
+        assertTrue("ConcurrentUpdateSolrClient did not report an error", ((Throwable) getConcurrentClientExceptionField(client).get(client)).getMessage().contains("Conflict"));
       }
     } catch (SolrException se) {
       assertTrue("No identifiable error message", se.getMessage().contains("version conflict for unique"));
@@ -1345,9 +1345,9 @@ abstract public class SolrExampleTests e
     doc.addField("id", "unique");
     doc.addField("_version_", version);
     doc.addField("price_f", oper);
-    server.add(doc);
-    server.commit();
-    resp = server.query(q);
+    client.add(doc);
+    client.commit();
+    resp = client.query(q);
     assertEquals("Doc count does not match", 1, resp.getResults().getNumFound());
     assertEquals("price was not updated?", 100.0f, resp.getResults().get(0).getFirstValue("price_f"));
     assertEquals("no name?", "gadget", resp.getResults().get(0).getFirstValue("name"));
@@ -1357,9 +1357,9 @@ abstract public class SolrExampleTests e
     doc = new SolrInputDocument();
     doc.addField("id", "unique");
     doc.addField("price_f", oper);
-    server.add(doc);
-    server.commit();
-    resp = server.query(q);
+    client.add(doc);
+    client.commit();
+    resp = client.query(q);
     assertEquals("Doc count does not match", 1, resp.getResults().getNumFound());
     assertEquals("price was not updated?", 200.0f, resp.getResults().get(0).getFirstValue("price_f"));
     assertEquals("no name?", "gadget", resp.getResults().get(0).getFirstValue("name"));
@@ -1367,20 +1367,20 @@ abstract public class SolrExampleTests e
 
   @Test
   public void testUpdateMultiValuedField() throws Exception {
-    SolrServer solrServer = getSolrServer();
+    SolrClient solrClient = getSolrClient();
     SolrInputDocument doc = new SolrInputDocument();
     doc.addField("id", "123");
-    solrServer.add(doc);
-    solrServer.commit(true, true);
-    QueryResponse response = solrServer.query(new SolrQuery("id:123"));
+    solrClient.add(doc);
+    solrClient.commit(true, true);
+    QueryResponse response = solrClient.query(new SolrQuery("id:123"));
     assertEquals("Failed to add doc to cloud server", 1, response.getResults().getNumFound());
 
     Map<String, List<String>> operation = new HashMap<>();
     operation.put("set", Arrays.asList("first", "second", "third"));
     doc.addField("multi_ss", operation);
-    solrServer.add(doc);
-    solrServer.commit(true, true);
-    response = solrServer.query(new SolrQuery("id:123"));
+    solrClient.add(doc);
+    solrClient.commit(true, true);
+    response = solrClient.query(new SolrQuery("id:123"));
     assertTrue("Multi-valued field did not return a collection", response.getResults().get(0).get("multi_ss") instanceof List);
     List<String> values = (List<String>) response.getResults().get(0).get("multi_ss");
     assertEquals("Field values was not updated with all values via atomic update", 3, values.size());
@@ -1389,42 +1389,42 @@ abstract public class SolrExampleTests e
     operation.put("add", Arrays.asList("fourth", "fifth"));
     doc.removeField("multi_ss");
     doc.addField("multi_ss", operation);
-    solrServer.add(doc);
-    solrServer.commit(true, true);
-    response = solrServer.query(new SolrQuery("id:123"));
+    solrClient.add(doc);
+    solrClient.commit(true, true);
+    response = solrClient.query(new SolrQuery("id:123"));
     values = (List<String>) response.getResults().get(0).get("multi_ss");
     assertEquals("Field values was not updated with all values via atomic update", 5, values.size());
   }
 
   @Test
   public void testSetNullUpdates() throws Exception {
-    SolrServer solrServer = getSolrServer();
+    SolrClient solrClient = getSolrClient();
     SolrInputDocument doc = new SolrInputDocument();
     doc.addField("id", "testSetNullUpdates");
     doc.addField("single_s", "test-value");
     doc.addField("multi_ss", Arrays.asList("first", "second"));
-    solrServer.add(doc);
-    solrServer.commit(true, true);
+    solrClient.add(doc);
+    solrClient.commit(true, true);
     doc.removeField("single_s");
     doc.removeField("multi_ss");
     Map<String, Object> map = Maps.newHashMap();
     map.put("set", null);
     doc.addField("multi_ss", map);
-    solrServer.add(doc);
-    solrServer.commit(true, true);
-    QueryResponse response = solrServer.query(new SolrQuery("id:testSetNullUpdates"));
+    solrClient.add(doc);
+    solrClient.commit(true, true);
+    QueryResponse response = solrClient.query(new SolrQuery("id:testSetNullUpdates"));
     assertNotNull("Entire doc was replaced because null update was not written", response.getResults().get(0).getFieldValue("single_s"));
     assertNull("Null update failed. Value still exists in document", response.getResults().get(0).getFieldValue("multi_ss"));
   }
 
   public void testSetNullUpdateOrder() throws Exception {
-    SolrServer solrServer = getSolrServer();
+    SolrClient solrClient = getSolrClient();
     SolrInputDocument doc = new SolrInputDocument();
     doc.addField("id", "testSetNullUpdateOrder");
     doc.addField("single_s", "test-value");
     doc.addField("multi_ss", Arrays.asList("first", "second"));
-    solrServer.add(doc);
-    solrServer.commit(true, true);
+    solrClient.add(doc);
+    solrClient.commit(true, true);
 
     Map<String, Object> map = Maps.newHashMap();
     map.put("set", null);
@@ -1432,20 +1432,20 @@ abstract public class SolrExampleTests e
     doc.addField("multi_ss", map);
     doc.addField("id", "testSetNullUpdateOrder");
     doc.addField("single_s", "test-value2");
-    solrServer.add(doc);
-    solrServer.commit();
+    solrClient.add(doc);
+    solrClient.commit();
 
-    QueryResponse response = solrServer.query(new SolrQuery("id:testSetNullUpdateOrder"));
+    QueryResponse response = solrClient.query(new SolrQuery("id:testSetNullUpdateOrder"));
     assertEquals("Field included after set null=true not updated via atomic update", "test-value2",
         response.getResults().get(0).getFieldValue("single_s"));
   }
   
   @Test
   public void testQueryWithParams() throws SolrServerException {
-    SolrServer server = getSolrServer();
+    SolrClient client = getSolrClient();
     SolrQuery q = new SolrQuery("query");
     q.setParam("debug", true);
-    QueryResponse resp = server.query(q);
+    QueryResponse resp = client.query(q);
     assertEquals(
         "server didn't respond with debug=true, didn't we pass in the parameter?",
         "true",
@@ -1455,9 +1455,9 @@ abstract public class SolrExampleTests e
 
   @Test
   public void testChildDoctransformer() throws IOException, SolrServerException {
-    SolrServer server = getSolrServer();
-    server.deleteByQuery("*:*");
-    server.commit();
+    SolrClient client = getSolrClient();
+    client.deleteByQuery("*:*");
+    client.commit();
 
     int numRootDocs = TestUtil.nextInt(random(), 10, 100);
     int maxDepth = TestUtil.nextInt(random(), 2, 5);
@@ -1465,22 +1465,22 @@ abstract public class SolrExampleTests e
     Map<String,SolrInputDocument> allDocs = new HashMap<>();
 
     for (int i =0; i < numRootDocs; i++) {
-      server.add(genNestedDocuments(allDocs, 0, maxDepth));
+      client.add(genNestedDocuments(allDocs, 0, maxDepth));
     }
 
-    server.commit();
+    client.commit();
 
     // sanity check
     SolrQuery q = new SolrQuery("*:*");
-    QueryResponse resp = server.query(q);
-    assertEquals("Doc count does not match", 
-                 allDocs.size(), resp.getResults().getNumFound());
+    QueryResponse resp = client.query(q);
+    assertEquals("Doc count does not match",
+        allDocs.size(), resp.getResults().getNumFound());
 
 
     // base check - we know there is an exact number of these root docs
     q = new SolrQuery("level_i:0");
     q.setFields("*", "[child parentFilter=\"level_i:0\"]");
-    resp = server.query(q);
+    resp = client.query(q);
     assertEquals("topLevel count does not match", numRootDocs,
                  resp.getResults().getNumFound());
     for (SolrDocument outDoc : resp.getResults()) {
@@ -1512,7 +1512,7 @@ abstract public class SolrExampleTests e
       q.setFields("id,[child parentFilter=\"" + parentFilter +
                   "\" childFilter=\"" + childFilter + 
                   "\" limit=\"" + maxKidCount + "\"]");
-      resp = server.query(q);
+      resp = client.query(q);
       for (SolrDocument outDoc : resp.getResults()) {
         String docId = (String)outDoc.getFieldValue("id");
         SolrInputDocument origDoc = allDocs.get(docId);
@@ -1560,7 +1560,7 @@ abstract public class SolrExampleTests e
       q.setFields("id,[child parentFilter=\"" + parentFilter +
                   "\" childFilter=\"" + childFilter + 
                   "\" limit=\"" + maxKidCount + "\"]");
-      resp = server.query(q);
+      resp = client.query(q);
       for (SolrDocument outDoc : resp.getResults()) {
         String docId = (String)outDoc.getFieldValue("id");
         SolrInputDocument origDoc = allDocs.get(docId);
@@ -1588,58 +1588,58 @@ abstract public class SolrExampleTests e
 
   @Test
   public void testFieldGlobbing() throws Exception  {
-    SolrServer server = getSolrServer();
+    SolrClient client = getSolrClient();
 
     SolrInputDocument doc = new SolrInputDocument();
     doc.addField("id", "testFieldGlobbing");
     doc.addField("x_s", "x");
     doc.addField("y_s", "y");
     doc.addField("z_s", "z");
-    server.add(doc);
-    server.commit();
+    client.add(doc);
+    client.commit();
 
     // id and glob
-    QueryResponse response = server.query(new SolrQuery("id:testFieldGlobbing").addField("id").addField("*_s"));
+    QueryResponse response = client.query(new SolrQuery("id:testFieldGlobbing").addField("id").addField("*_s"));
     assertEquals("Document not found", 1, response.getResults().getNumFound());
     assertEquals("All requested fields were not returned", 4, response.getResults().get(0).getFieldNames().size());
 
     // just globs
-    response = server.query(new SolrQuery("id:testFieldGlobbing").addField("*_s"));
+    response = client.query(new SolrQuery("id:testFieldGlobbing").addField("*_s"));
     assertEquals("Document not found", 1, response.getResults().getNumFound());
     assertEquals("All requested fields were not returned", 3, response.getResults().get(0).getFieldNames().size());
 
     // just id
-    response = server.query(new SolrQuery("id:testFieldGlobbing").addField("id"));
+    response = client.query(new SolrQuery("id:testFieldGlobbing").addField("id"));
     assertEquals("Document not found", 1, response.getResults().getNumFound());
     assertEquals("All requested fields were not returned", 1, response.getResults().get(0).getFieldNames().size());
 
     // id and pseudo field and glob
-    response = server.query(new SolrQuery("id:testFieldGlobbing").addField("id").addField("[docid]").addField("*_s"));
+    response = client.query(new SolrQuery("id:testFieldGlobbing").addField("id").addField("[docid]").addField("*_s"));
     assertEquals("Document not found", 1, response.getResults().getNumFound());
     assertEquals("All requested fields were not returned", 5, response.getResults().get(0).getFieldNames().size());
 
     // pseudo field and glob
-    response = server.query(new SolrQuery("id:testFieldGlobbing").addField("[docid]").addField("*_s"));
+    response = client.query(new SolrQuery("id:testFieldGlobbing").addField("[docid]").addField("*_s"));
     assertEquals("Document not found", 1, response.getResults().getNumFound());
     assertEquals("All requested fields were not returned", 4, response.getResults().get(0).getFieldNames().size());
 
     // just a pseudo field
-    response = server.query(new SolrQuery("id:testFieldGlobbing").addField("[docid]"));
+    response = client.query(new SolrQuery("id:testFieldGlobbing").addField("[docid]"));
     assertEquals("Document not found", 1, response.getResults().getNumFound());
     assertEquals("All requested fields were not returned", 1, response.getResults().get(0).getFieldNames().size());
 
     // only score
-    response = server.query(new SolrQuery("id:testFieldGlobbing").addField("score"));
+    response = client.query(new SolrQuery("id:testFieldGlobbing").addField("score"));
     assertEquals("Document not found", 1, response.getResults().getNumFound());
     assertEquals("All requested fields were not returned", 1, response.getResults().get(0).getFieldNames().size());
 
     // pseudo field and score
-    response = server.query(new SolrQuery("id:testFieldGlobbing").addField("score").addField("[docid]"));
+    response = client.query(new SolrQuery("id:testFieldGlobbing").addField("score").addField("[docid]"));
     assertEquals("Document not found", 1, response.getResults().getNumFound());
     assertEquals("All requested fields were not returned", 2, response.getResults().get(0).getFieldNames().size());
 
     // score and globs
-    response = server.query(new SolrQuery("id:testFieldGlobbing").addField("score").addField("*_s"));
+    response = client.query(new SolrQuery("id:testFieldGlobbing").addField("score").addField("*_s"));
     assertEquals("Document not found", 1, response.getResults().getNumFound());
     assertEquals("All requested fields were not returned", 4, response.getResults().get(0).getFieldNames().size());
   }

Modified: lucene/dev/trunk/solr/solrj/src/test/org/apache/solr/client/solrj/SolrExampleTestsBase.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/solrj/src/test/org/apache/solr/client/solrj/SolrExampleTestsBase.java?rev=1648697&r1=1648696&r2=1648697&view=diff
==============================================================================
--- lucene/dev/trunk/solr/solrj/src/test/org/apache/solr/client/solrj/SolrExampleTestsBase.java (original)
+++ lucene/dev/trunk/solr/solrj/src/test/org/apache/solr/client/solrj/SolrExampleTestsBase.java Wed Dec 31 14:05:48 2014
@@ -17,16 +17,10 @@
 
 package org.apache.solr.client.solrj;
 
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.concurrent.atomic.AtomicInteger;
-
 import junit.framework.Assert;
-
 import org.apache.solr.SolrJettyTestBase;
-import org.apache.solr.client.solrj.request.UpdateRequest;
 import org.apache.solr.client.solrj.request.AbstractUpdateRequest.ACTION;
+import org.apache.solr.client.solrj.request.UpdateRequest;
 import org.apache.solr.client.solrj.response.QueryResponse;
 import org.apache.solr.client.solrj.util.ClientUtils;
 import org.apache.solr.common.SolrDocument;
@@ -36,6 +30,11 @@ import org.junit.Test;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.concurrent.atomic.AtomicInteger;
+
 abstract public class SolrExampleTestsBase extends SolrJettyTestBase {
   private static Logger log = LoggerFactory
       .getLogger(SolrExampleTestsBase.class);
@@ -46,10 +45,10 @@ abstract public class SolrExampleTestsBa
   @Test
   public void testCommitWithinOnAdd() throws Exception {
     // make sure it is empty...
-    SolrServer server = getSolrServer();
-    server.deleteByQuery("*:*");// delete everything!
-    server.commit();
-    QueryResponse rsp = server.query(new SolrQuery("*:*"));
+    SolrClient client = getSolrClient();
+    client.deleteByQuery("*:*");// delete everything!
+    client.commit();
+    QueryResponse rsp = client.query(new SolrQuery("*:*"));
     Assert.assertEquals(0, rsp.getResults().getNumFound());
     
     // Now try a timed commit...
@@ -61,9 +60,9 @@ abstract public class SolrExampleTestsBa
     up.add(doc3);
     up.setCommitWithin(500); // a smaller commitWithin caused failures on the
                              // following assert
-    up.process(server);
+    up.process(client);
     
-    rsp = server.query(new SolrQuery("*:*"));
+    rsp = client.query(new SolrQuery("*:*"));
     Assert.assertEquals(0, rsp.getResults().getNumFound());
     
     // TODO: not a great way to test this - timing is easily out
@@ -71,7 +70,7 @@ abstract public class SolrExampleTestsBa
     Thread.sleep(1000); // wait 1 sec
     
     // now check that it comes out...
-    rsp = server.query(new SolrQuery("id:id3"));
+    rsp = client.query(new SolrQuery("id:id3"));
     
     int cnt = 0;
     while (rsp.getResults().getNumFound() == 0) {
@@ -84,7 +83,7 @@ abstract public class SolrExampleTestsBa
       
       Thread.sleep(2000); // wait 2 seconds...
       
-      rsp = server.query(new SolrQuery("id:id3"));
+      rsp = client.query(new SolrQuery("id:id3"));
     }
     
     Assert.assertEquals(1, rsp.getResults().getNumFound());
@@ -94,12 +93,12 @@ abstract public class SolrExampleTestsBa
     doc4.addField("id", "id4", 1.0f);
     doc4.addField("name", "doc4", 1.0f);
     doc4.addField("price", 10);
-    server.add(doc4, 500);
+    client.add(doc4, 500);
     
     Thread.sleep(1000); // wait 1 sec
     
     // now check that it comes out...
-    rsp = server.query(new SolrQuery("id:id4"));
+    rsp = client.query(new SolrQuery("id:id4"));
     
     cnt = 0;
     while (rsp.getResults().getNumFound() == 0) {
@@ -112,7 +111,7 @@ abstract public class SolrExampleTestsBa
       
       Thread.sleep(2000); // wait 2 seconds...
       
-      rsp = server.query(new SolrQuery("id:id3"));
+      rsp = client.query(new SolrQuery("id:id3"));
     }
     
     Assert.assertEquals(1, rsp.getResults().getNumFound());
@@ -121,10 +120,10 @@ abstract public class SolrExampleTestsBa
   @Test
   public void testCommitWithinOnDelete() throws Exception {
     // make sure it is empty...
-    SolrServer server = getSolrServer();
-    server.deleteByQuery("*:*");// delete everything!
-    server.commit();
-    QueryResponse rsp = server.query(new SolrQuery("*:*"));
+    SolrClient client = getSolrClient();
+    client.deleteByQuery("*:*");// delete everything!
+    client.commit();
+    QueryResponse rsp = client.query(new SolrQuery("*:*"));
     Assert.assertEquals(0, rsp.getResults().getNumFound());
     
     // Now add one document...
@@ -132,21 +131,21 @@ abstract public class SolrExampleTestsBa
     doc3.addField("id", "id3", 1.0f);
     doc3.addField("name", "doc3", 1.0f);
     doc3.addField("price", 10);
-    server.add(doc3);
-    server.commit();
+    client.add(doc3);
+    client.commit();
     
     // now check that it comes out...
-    rsp = server.query(new SolrQuery("id:id3"));
+    rsp = client.query(new SolrQuery("id:id3"));
     Assert.assertEquals(1, rsp.getResults().getNumFound());
     
     // now test commitWithin on a delete
     UpdateRequest up = new UpdateRequest();
     up.setCommitWithin(1000);
     up.deleteById("id3");
-    up.process(server);
+    up.process(client);
     
     // the document should still be there
-    rsp = server.query(new SolrQuery("id:id3"));
+    rsp = client.query(new SolrQuery("id:id3"));
     Assert.assertEquals(1, rsp.getResults().getNumFound());
     
     // check if the doc has been deleted every 250 ms for 30 seconds
@@ -154,7 +153,7 @@ abstract public class SolrExampleTestsBa
     do {
       Thread.sleep(250); // wait 250 ms
       
-      rsp = server.query(new SolrQuery("id:id3"));
+      rsp = client.query(new SolrQuery("id:id3"));
       if (rsp.getResults().getNumFound() == 0) {
         return;
       }
@@ -165,10 +164,10 @@ abstract public class SolrExampleTestsBa
   
   @Test
   public void testAddDelete() throws Exception {
-    SolrServer server = getSolrServer();
+    SolrClient client = getSolrClient();
     
     // Empty the database...
-    server.deleteByQuery("*:*");// delete everything!
+    client.deleteByQuery("*:*");// delete everything!
     
     SolrInputDocument[] doc = new SolrInputDocument[3];
     for (int i = 0; i < 3; i++) {
@@ -177,28 +176,28 @@ abstract public class SolrExampleTestsBa
     }
     String id = (String) doc[0].getField("id").getFirstValue();
     
-    server.add(doc[0]);
-    server.commit();
+    client.add(doc[0]);
+    client.commit();
     assertNumFound("*:*", 1); // make sure it got in
     
     // make sure it got in there
-    server.deleteById(id);
-    server.commit();
+    client.deleteById(id);
+    client.commit();
     assertNumFound("*:*", 0); // make sure it got out
     
     // add it back
-    server.add(doc[0]);
-    server.commit();
+    client.add(doc[0]);
+    client.commit();
     assertNumFound("*:*", 1); // make sure it got in
-    server.deleteByQuery("id:\"" + ClientUtils.escapeQueryChars(id) + "\"");
-    server.commit();
+    client.deleteByQuery("id:\"" + ClientUtils.escapeQueryChars(id) + "\"");
+    client.commit();
     assertNumFound("*:*", 0); // make sure it got out
     
     // Add two documents
     for (SolrInputDocument d : doc) {
-      server.add(d);
+      client.add(d);
     }
-    server.commit();
+    client.commit();
     assertNumFound("*:*", 3); // make sure it got in
     
     // should be able to handle multiple delete commands in a single go
@@ -206,17 +205,17 @@ abstract public class SolrExampleTestsBa
     for (SolrInputDocument d : doc) {
       ids.add(d.getFieldValue("id").toString());
     }
-    server.deleteById(ids);
-    server.commit();
+    client.deleteById(ids);
+    client.commit();
     assertNumFound("*:*", 0); // make sure it got out
   }
   
   @Test
   public void testStreamingRequest() throws Exception {
-    SolrServer server = getSolrServer();
+    SolrClient client = getSolrClient();
     // Empty the database...
-    server.deleteByQuery("*:*");// delete everything!
-    server.commit();
+    client.deleteByQuery("*:*");// delete everything!
+    client.commit();
     assertNumFound("*:*", 0); // make sure it got in
     
     // Add some docs to the index
@@ -228,40 +227,40 @@ abstract public class SolrExampleTestsBa
       req.add(doc);
     }
     req.setAction(ACTION.COMMIT, true, true);
-    req.process(server);
+    req.process(client);
     
     // Make sure it ran OK
     SolrQuery query = new SolrQuery("*:*");
     query.set(CommonParams.FL, "id,score,_docid_");
-    QueryResponse response = server.query(query);
+    QueryResponse response = client.query(query);
     assertEquals(0, response.getStatus());
     assertEquals(10, response.getResults().getNumFound());
     
     // Now make sure each document gets output
     final AtomicInteger cnt = new AtomicInteger(0);
-    server.queryAndStreamResponse(query, new StreamingResponseCallback() {
-      
+    client.queryAndStreamResponse(query, new StreamingResponseCallback() {
+
       @Override
       public void streamDocListInfo(long numFound, long start, Float maxScore) {
         assertEquals(10, numFound);
       }
-      
+
       @Override
       public void streamSolrDocument(SolrDocument doc) {
         cnt.incrementAndGet();
-        
+
         // Make sure the transformer works for streaming
         Float score = (Float) doc.get("score");
         assertEquals("should have score", new Float(1.0), score);
       }
-      
+
     });
     assertEquals(10, cnt.get());
   }
   
   protected void assertNumFound(String query, int num)
       throws SolrServerException, IOException {
-    QueryResponse rsp = getSolrServer().query(new SolrQuery(query));
+    QueryResponse rsp = getSolrClient().query(new SolrQuery(query));
     if (num != rsp.getResults().getNumFound()) {
       fail("expected: " + num + " but had: " + rsp.getResults().getNumFound()
           + " :: " + rsp.getResults());

Modified: lucene/dev/trunk/solr/solrj/src/test/org/apache/solr/client/solrj/SolrExampleXMLTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/solrj/src/test/org/apache/solr/client/solrj/SolrExampleXMLTest.java?rev=1648697&r1=1648696&r2=1648697&view=diff
==============================================================================
--- lucene/dev/trunk/solr/solrj/src/test/org/apache/solr/client/solrj/SolrExampleXMLTest.java (original)
+++ lucene/dev/trunk/solr/solrj/src/test/org/apache/solr/client/solrj/SolrExampleXMLTest.java Wed Dec 31 14:05:48 2014
@@ -18,10 +18,9 @@
 package org.apache.solr.client.solrj;
 
 import org.apache.solr.SolrTestCaseJ4.SuppressSSL;
-import org.apache.solr.client.solrj.impl.HttpSolrServer;
+import org.apache.solr.client.solrj.impl.HttpSolrClient;
 import org.apache.solr.client.solrj.impl.XMLResponseParser;
 import org.apache.solr.client.solrj.request.RequestWriter;
-import org.apache.solr.util.ExternalPaths;
 import org.junit.BeforeClass;
 
 /**
@@ -36,17 +35,17 @@ public class SolrExampleXMLTest extends
   }
   
   @Override
-  public SolrServer createNewSolrServer() {
+  public SolrClient createNewSolrClient() {
     try {
       String url = jetty.getBaseUrl().toString() + "/collection1";
-      HttpSolrServer s = new HttpSolrServer(url);
-      s.setUseMultiPartPost(random().nextBoolean());
-      s.setConnectionTimeout(DEFAULT_CONNECTION_TIMEOUT);
-      s.setDefaultMaxConnectionsPerHost(100);
-      s.setMaxTotalConnections(100);
-      s.setParser(new XMLResponseParser());
-      s.setRequestWriter(new RequestWriter());
-      return s;
+      HttpSolrClient client = new HttpSolrClient(url);
+      client.setUseMultiPartPost(random().nextBoolean());
+      client.setConnectionTimeout(DEFAULT_CONNECTION_TIMEOUT);
+      client.setDefaultMaxConnectionsPerHost(100);
+      client.setMaxTotalConnections(100);
+      client.setParser(new XMLResponseParser());
+      client.setRequestWriter(new RequestWriter());
+      return client;
     } catch (Exception ex) {
       throw new RuntimeException(ex);
     }

Modified: lucene/dev/trunk/solr/solrj/src/test/org/apache/solr/client/solrj/SolrExceptionTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/solrj/src/test/org/apache/solr/client/solrj/SolrExceptionTest.java?rev=1648697&r1=1648696&r2=1648697&view=diff
==============================================================================
--- lucene/dev/trunk/solr/solrj/src/test/org/apache/solr/client/solrj/SolrExceptionTest.java (original)
+++ lucene/dev/trunk/solr/solrj/src/test/org/apache/solr/client/solrj/SolrExceptionTest.java Wed Dec 31 14:05:48 2014
@@ -20,7 +20,7 @@ package org.apache.solr.client.solrj;
 import org.apache.http.client.HttpClient;
 import org.apache.lucene.util.LuceneTestCase;
 import org.apache.solr.client.solrj.impl.HttpClientUtil;
-import org.apache.solr.client.solrj.impl.HttpSolrServer;
+import org.apache.solr.client.solrj.impl.HttpSolrClient;
 
 /**
  * 
@@ -39,7 +39,7 @@ public class SolrExceptionTest extends L
       // set a 1ms timeout to let the connection fail faster.
       HttpClient httpClient = HttpClientUtil.createClient(null);
       HttpClientUtil.setConnectionTimeout(httpClient,  1);
-      SolrServer client = new HttpSolrServer("http://[ff01::114]:11235/solr/", httpClient);
+      SolrClient client = new HttpSolrClient("http://[ff01::114]:11235/solr/", httpClient);
       SolrQuery query = new SolrQuery("test123");
       client.query(query);
       client.shutdown();

Modified: lucene/dev/trunk/solr/solrj/src/test/org/apache/solr/client/solrj/SolrSchemalessExampleTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/solrj/src/test/org/apache/solr/client/solrj/SolrSchemalessExampleTest.java?rev=1648697&r1=1648696&r2=1648697&view=diff
==============================================================================
--- lucene/dev/trunk/solr/solrj/src/test/org/apache/solr/client/solrj/SolrSchemalessExampleTest.java (original)
+++ lucene/dev/trunk/solr/solrj/src/test/org/apache/solr/client/solrj/SolrSchemalessExampleTest.java Wed Dec 31 14:05:48 2014
@@ -24,7 +24,7 @@ import org.apache.http.client.methods.Ht
 import org.apache.http.entity.InputStreamEntity;
 import org.apache.solr.client.solrj.impl.BinaryRequestWriter;
 import org.apache.solr.client.solrj.impl.BinaryResponseParser;
-import org.apache.solr.client.solrj.impl.HttpSolrServer;
+import org.apache.solr.client.solrj.impl.HttpSolrClient;
 import org.apache.solr.util.ExternalPaths;
 import org.junit.BeforeClass;
 import org.junit.Test;
@@ -33,8 +33,6 @@ import org.slf4j.LoggerFactory;
 
 import java.io.ByteArrayInputStream;
 import java.io.File;
-import java.io.FileOutputStream;
-import java.io.FileWriter;
 import java.io.OutputStreamWriter;
 import java.util.Properties;
 
@@ -68,41 +66,41 @@ public class SolrSchemalessExampleTest e
   }
   @Test
   public void testArbitraryJsonIndexing() throws Exception  {
-    HttpSolrServer server = (HttpSolrServer) getSolrServer();
-    server.deleteByQuery("*:*");
-    server.commit();
+    HttpSolrClient client = (HttpSolrClient) getSolrClient();
+    client.deleteByQuery("*:*");
+    client.commit();
     assertNumFound("*:*", 0); // make sure it got in
 
     // two docs, one with uniqueKey, another without it
     String json = "{\"id\":\"abc1\", \"name\": \"name1\"} {\"name\" : \"name2\"}";
-    HttpClient httpClient = server.getHttpClient();
-    HttpPost post = new HttpPost(server.getBaseURL() + "/update/json/docs");
+    HttpClient httpClient = client.getHttpClient();
+    HttpPost post = new HttpPost(client.getBaseURL() + "/update/json/docs");
     post.setHeader("Content-Type", "application/json");
     post.setEntity(new InputStreamEntity(new ByteArrayInputStream(json.getBytes("UTF-8")), -1));
     HttpResponse response = httpClient.execute(post);
     assertEquals(200, response.getStatusLine().getStatusCode());
-    server.commit();
+    client.commit();
     assertNumFound("*:*", 2);
   }
 
 
   @Override
-  public SolrServer createNewSolrServer() {
+  public SolrClient createNewSolrClient() {
     try {
       // setup the server...
       String url = jetty.getBaseUrl().toString() + "/collection1";
-      HttpSolrServer s = new HttpSolrServer(url);
-      s.setConnectionTimeout(DEFAULT_CONNECTION_TIMEOUT);
-      s.setDefaultMaxConnectionsPerHost(100);
-      s.setMaxTotalConnections(100);
-      s.setUseMultiPartPost(random().nextBoolean());
+      HttpSolrClient client = new HttpSolrClient(url);
+      client.setConnectionTimeout(DEFAULT_CONNECTION_TIMEOUT);
+      client.setDefaultMaxConnectionsPerHost(100);
+      client.setMaxTotalConnections(100);
+      client.setUseMultiPartPost(random().nextBoolean());
       
       if (random().nextBoolean()) {
-        s.setParser(new BinaryResponseParser());
-        s.setRequestWriter(new BinaryRequestWriter());
+        client.setParser(new BinaryResponseParser());
+        client.setRequestWriter(new BinaryRequestWriter());
       }
       
-      return s;
+      return client;
     } catch (Exception ex) {
       throw new RuntimeException(ex);
     }

Modified: lucene/dev/trunk/solr/solrj/src/test/org/apache/solr/client/solrj/TestBatchUpdate.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/solrj/src/test/org/apache/solr/client/solrj/TestBatchUpdate.java?rev=1648697&r1=1648696&r2=1648697&view=diff
==============================================================================
--- lucene/dev/trunk/solr/solrj/src/test/org/apache/solr/client/solrj/TestBatchUpdate.java (original)
+++ lucene/dev/trunk/solr/solrj/src/test/org/apache/solr/client/solrj/TestBatchUpdate.java Wed Dec 31 14:05:48 2014
@@ -20,11 +20,10 @@ import org.apache.solr.SolrJettyTestBase
 import org.apache.solr.SolrTestCaseJ4.SuppressSSL;
 import org.apache.solr.client.solrj.beans.Field;
 import org.apache.solr.client.solrj.impl.BinaryRequestWriter;
-import org.apache.solr.client.solrj.impl.HttpSolrServer;
+import org.apache.solr.client.solrj.impl.HttpSolrClient;
 import org.apache.solr.client.solrj.request.RequestWriter;
 import org.apache.solr.client.solrj.response.QueryResponse;
 import org.apache.solr.common.SolrInputDocument;
-import org.apache.solr.util.ExternalPaths;
 import org.junit.BeforeClass;
 import org.junit.Test;
 
@@ -50,28 +49,28 @@ public class TestBatchUpdate extends Sol
 
   @Test
   public void testWithXml() throws Exception {
-    HttpSolrServer httpSolrServer = (HttpSolrServer) getSolrServer();
-    httpSolrServer.setRequestWriter(new RequestWriter());
-    httpSolrServer.deleteByQuery( "*:*" ); // delete everything!
-    doIt(httpSolrServer);
+    HttpSolrClient client = (HttpSolrClient) getSolrClient();
+    client.setRequestWriter(new RequestWriter());
+    client.deleteByQuery("*:*"); // delete everything!
+    doIt(client);
   }
 
   @Test
   public void testWithBinary()throws Exception{
-    HttpSolrServer httpSolrServer = (HttpSolrServer) getSolrServer();
-    httpSolrServer.setRequestWriter(new BinaryRequestWriter());
-    httpSolrServer.deleteByQuery( "*:*" ); // delete everything!
-    doIt(httpSolrServer);
+    HttpSolrClient client = (HttpSolrClient) getSolrClient();
+    client.setRequestWriter(new BinaryRequestWriter());
+    client.deleteByQuery("*:*"); // delete everything!
+    doIt(client);
   }
 
   @Test
   public void testWithBinaryBean()throws Exception{
-    HttpSolrServer httpSolrServer = (HttpSolrServer) getSolrServer();
-    httpSolrServer.setRequestWriter(new BinaryRequestWriter());
-    httpSolrServer.deleteByQuery( "*:*" ); // delete everything!
+    HttpSolrClient client = (HttpSolrClient) getSolrClient();
+    client.setRequestWriter(new BinaryRequestWriter());
+    client.deleteByQuery("*:*"); // delete everything!
     final int[] counter = new int[1];
     counter[0] = 0;
-    httpSolrServer.addBeans(new Iterator<Bean>() {
+    client.addBeans(new Iterator<Bean>() {
 
       @Override
       public boolean hasNext() {
@@ -91,9 +90,9 @@ public class TestBatchUpdate extends Sol
         //do nothing
       }
     });
-    httpSolrServer.commit();
+    client.commit();
     SolrQuery query = new SolrQuery("*:*");
-    QueryResponse response = httpSolrServer.query(query);
+    QueryResponse response = client.query(query);
     assertEquals(0, response.getStatus());
     assertEquals(numdocs, response.getResults().getNumFound());
   }
@@ -105,10 +104,10 @@ public class TestBatchUpdate extends Sol
     String cat;
   }
        
-  private void doIt(HttpSolrServer httpSolrServer) throws SolrServerException, IOException {
+  private void doIt(HttpSolrClient client) throws SolrServerException, IOException {
     final int[] counter = new int[1];
     counter[0] = 0;
-    httpSolrServer.add(new Iterator<SolrInputDocument>() {
+    client.add(new Iterator<SolrInputDocument>() {
 
       @Override
       public boolean hasNext() {
@@ -129,9 +128,9 @@ public class TestBatchUpdate extends Sol
 
       }
     });
-    httpSolrServer.commit();
+    client.commit();
     SolrQuery query = new SolrQuery("*:*");
-    QueryResponse response = httpSolrServer.query(query);
+    QueryResponse response = client.query(query);
     assertEquals(0, response.getStatus());
     assertEquals(numdocs, response.getResults().getNumFound());
   }

Added: lucene/dev/trunk/solr/solrj/src/test/org/apache/solr/client/solrj/TestLBHttpSolrClient.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/solrj/src/test/org/apache/solr/client/solrj/TestLBHttpSolrClient.java?rev=1648697&view=auto
==============================================================================
--- lucene/dev/trunk/solr/solrj/src/test/org/apache/solr/client/solrj/TestLBHttpSolrClient.java (added)
+++ lucene/dev/trunk/solr/solrj/src/test/org/apache/solr/client/solrj/TestLBHttpSolrClient.java Wed Dec 31 14:05:48 2014
@@ -0,0 +1,321 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.solr.client.solrj;
+
+import com.carrotsearch.randomizedtesting.annotations.ThreadLeakFilters;
+import junit.framework.Assert;
+import org.apache.commons.io.FileUtils;
+import org.apache.http.client.HttpClient;
+import org.apache.lucene.util.IOUtils;
+import org.apache.lucene.util.LuceneTestCase.Slow;
+import org.apache.lucene.util.QuickPatchThreadsFilter;
+import org.apache.solr.SolrIgnoredThreadsFilter;
+import org.apache.solr.SolrTestCaseJ4;
+import org.apache.solr.client.solrj.embedded.JettySolrRunner;
+import org.apache.solr.client.solrj.impl.HttpClientUtil;
+import org.apache.solr.client.solrj.impl.HttpSolrClient;
+import org.apache.solr.client.solrj.impl.LBHttpSolrClient;
+import org.apache.solr.client.solrj.response.QueryResponse;
+import org.apache.solr.client.solrj.response.SolrResponseBase;
+import org.apache.solr.common.SolrInputDocument;
+import org.apache.solr.common.params.ModifiableSolrParams;
+import org.junit.AfterClass;
+import org.junit.BeforeClass;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import java.io.File;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Set;
+
+/**
+ * Test for LBHttpSolrClient
+ *
+ * @since solr 1.4
+ */
+@Slow
+@ThreadLeakFilters(defaultFilters = true, filters = {
+    SolrIgnoredThreadsFilter.class,
+    QuickPatchThreadsFilter.class
+})
+public class TestLBHttpSolrClient extends SolrTestCaseJ4 {
+
+  private static final Logger log = LoggerFactory.getLogger(TestLBHttpSolrClient.class);
+
+  SolrInstance[] solr = new SolrInstance[3];
+  HttpClient httpClient;
+
+  // TODO: fix this test to not require FSDirectory
+  static String savedFactory;
+
+  @BeforeClass
+  public static void beforeClass() {
+    savedFactory = System.getProperty("solr.DirectoryFactory");
+    System.setProperty("solr.directoryFactory", "org.apache.solr.core.MockFSDirectoryFactory");
+    System.setProperty("tests.shardhandler.randomSeed", Long.toString(random().nextLong()));
+  }
+
+  @AfterClass
+  public static void afterClass() {
+    if (savedFactory == null) {
+      System.clearProperty("solr.directoryFactory");
+    } else {
+      System.setProperty("solr.directoryFactory", savedFactory);
+    }
+    System.clearProperty("tests.shardhandler.randomSeed");
+  }
+  
+  @Override
+  public void setUp() throws Exception {
+    super.setUp();
+    httpClient = HttpClientUtil.createClient(null);
+    HttpClientUtil.setConnectionTimeout(httpClient,  1000);
+    for (int i = 0; i < solr.length; i++) {
+      solr[i] = new SolrInstance("solr/collection1" + i, createTempDir("instance-" + i).toFile(), 0);
+      solr[i].setUp();
+      solr[i].startJetty();
+      addDocs(solr[i]);
+    }
+  }
+
+  private void addDocs(SolrInstance solrInstance) throws IOException, SolrServerException {
+    List<SolrInputDocument> docs = new ArrayList<>();
+    for (int i = 0; i < 10; i++) {
+      SolrInputDocument doc = new SolrInputDocument();
+      doc.addField("id", i);
+      doc.addField("name", solrInstance.name);
+      docs.add(doc);
+    }
+    HttpSolrClient client = new HttpSolrClient(solrInstance.getUrl(), httpClient);
+    SolrResponseBase resp;
+    try {
+      resp = client.add(docs);
+      assertEquals(0, resp.getStatus());
+      resp = client.commit();
+    } finally {
+      client.shutdown();
+    }
+    assertEquals(0, resp.getStatus());
+  }
+
+  @Override
+  public void tearDown() throws Exception {
+    for (SolrInstance aSolr : solr) {
+      if (aSolr != null)  {
+        aSolr.tearDown();
+      }
+    }
+    httpClient.getConnectionManager().shutdown();
+    super.tearDown();
+  }
+
+  public void testSimple() throws Exception {
+    String[] s = new String[solr.length];
+    for (int i = 0; i < solr.length; i++) {
+      s[i] = solr[i].getUrl();
+    }
+    LBHttpSolrClient client = new LBHttpSolrClient(httpClient, s);
+    client.setAliveCheckInterval(500);
+    SolrQuery solrQuery = new SolrQuery("*:*");
+    Set<String> names = new HashSet<>();
+    QueryResponse resp = null;
+    for (String value : s) {
+      resp = client.query(solrQuery);
+      assertEquals(10, resp.getResults().getNumFound());
+      names.add(resp.getResults().get(0).getFieldValue("name").toString());
+    }
+    assertEquals(3, names.size());
+
+    // Kill a server and test again
+    solr[1].jetty.stop();
+    solr[1].jetty = null;
+    names.clear();
+    for (String value : s) {
+      resp = client.query(solrQuery);
+      assertEquals(10, resp.getResults().getNumFound());
+      names.add(resp.getResults().get(0).getFieldValue("name").toString());
+    }
+    assertEquals(2, names.size());
+    assertFalse(names.contains("solr1"));
+
+    // Start the killed server once again
+    solr[1].startJetty();
+    // Wait for the alive check to complete
+    Thread.sleep(1200);
+    names.clear();
+    for (String value : s) {
+      resp = client.query(solrQuery);
+      assertEquals(10, resp.getResults().getNumFound());
+      names.add(resp.getResults().get(0).getFieldValue("name").toString());
+    }
+    assertEquals(3, names.size());
+  }
+
+  public void testTwoServers() throws Exception {
+    LBHttpSolrClient client = new LBHttpSolrClient(httpClient, solr[0].getUrl(), solr[1].getUrl());
+    client.setAliveCheckInterval(500);
+    SolrQuery solrQuery = new SolrQuery("*:*");
+    QueryResponse resp = null;
+    solr[0].jetty.stop();
+    solr[0].jetty = null;
+    resp = client.query(solrQuery);
+    String name = resp.getResults().get(0).getFieldValue("name").toString();
+    Assert.assertEquals("solr/collection11", name);
+    resp = client.query(solrQuery);
+    name = resp.getResults().get(0).getFieldValue("name").toString();
+    Assert.assertEquals("solr/collection11", name);
+    solr[1].jetty.stop();
+    solr[1].jetty = null;
+    solr[0].startJetty();
+    Thread.sleep(1200);
+    try {
+      resp = client.query(solrQuery);
+    } catch(SolrServerException e) {
+      // try again after a pause in case the error is lack of time to start server
+      Thread.sleep(3000);
+      resp = client.query(solrQuery);
+    }
+    name = resp.getResults().get(0).getFieldValue("name").toString();
+    Assert.assertEquals("solr/collection10", name);
+  }
+
+  public void testReliability() throws Exception {
+    String[] s = new String[solr.length];
+    for (int i = 0; i < solr.length; i++) {
+      s[i] = solr[i].getUrl();
+    }
+    ModifiableSolrParams params = new ModifiableSolrParams();
+    params.set(HttpClientUtil.PROP_CONNECTION_TIMEOUT, 250);
+    params.set(HttpClientUtil.PROP_SO_TIMEOUT, 250);
+    HttpClient myHttpClient = HttpClientUtil.createClient(params);
+
+    LBHttpSolrClient client = new LBHttpSolrClient(myHttpClient, s);
+    client.setAliveCheckInterval(500);
+
+    // Kill a server and test again
+    solr[1].jetty.stop();
+    solr[1].jetty = null;
+
+    // query the servers
+    for (String value : s)
+      client.query(new SolrQuery("*:*"));
+
+    // Start the killed server once again
+    solr[1].startJetty();
+    // Wait for the alive check to complete
+    waitForServer(30000, client, 3, "solr1");
+  }
+  
+  // wait maximum ms for serverName to come back up
+  private void waitForServer(int maximum, LBHttpSolrClient client, int nServers, String serverName) throws Exception {
+    long endTime = System.currentTimeMillis() + maximum;
+    while (System.currentTimeMillis() < endTime) {
+      QueryResponse resp;
+      try {
+        resp = client.query(new SolrQuery("*:*"));
+      } catch (Exception e) {
+        log.warn("", e);
+        continue;
+      }
+      String name = resp.getResults().get(0).getFieldValue("name").toString();
+      if (name.equals(serverName))
+        return;
+    }
+  }
+  
+  private class SolrInstance {
+    String name;
+    File homeDir;
+    File dataDir;
+    File confDir;
+    int port;
+    JettySolrRunner jetty;
+
+    public SolrInstance(String name, File homeDir, int port) {
+      this.name = name;
+      this.homeDir = homeDir;
+      this.port = port;
+
+      dataDir = new File(homeDir + "/collection1", "data");
+      confDir = new File(homeDir + "/collection1", "conf");
+    }
+
+    public String getHomeDir() {
+      return homeDir.toString();
+    }
+
+    public String getUrl() {
+      return buildUrl(port, "/solr");
+    }
+
+    public String getSchemaFile() {
+      return "solrj/solr/collection1/conf/schema-replication1.xml";
+    }
+
+    public String getConfDir() {
+      return confDir.toString();
+    }
+
+    public String getDataDir() {
+      return dataDir.toString();
+    }
+
+    public String getSolrConfigFile() {
+      return "solrj/solr/collection1/conf/solrconfig-slave1.xml";
+    }
+
+    public String getSolrXmlFile() {
+      return "solrj/solr/solr.xml";
+    }
+
+
+    public void setUp() throws Exception {
+      homeDir.mkdirs();
+      dataDir.mkdirs();
+      confDir.mkdirs();
+
+      FileUtils.copyFile(SolrTestCaseJ4.getFile(getSolrXmlFile()), new File(homeDir, "solr.xml"));
+
+      File f = new File(confDir, "solrconfig.xml");
+      FileUtils.copyFile(SolrTestCaseJ4.getFile(getSolrConfigFile()), f);
+      f = new File(confDir, "schema.xml");
+      FileUtils.copyFile(SolrTestCaseJ4.getFile(getSchemaFile()), f);
+    }
+
+    public void tearDown() throws Exception {
+      if (jetty != null) jetty.stop();
+      IOUtils.rm(homeDir.toPath());
+    }
+
+    public void startJetty() throws Exception {
+      jetty = new JettySolrRunner(getHomeDir(), "/solr", port, "bad_solrconfig.xml", null, true, null, sslConfig);
+      jetty.setDataDir(getDataDir());
+      jetty.start();
+      int newPort = jetty.getLocalPort();
+      if (port != 0 && newPort != port) {
+        fail("TESTING FAILURE: could not grab requested port.");
+      }
+      this.port = newPort;
+//      System.out.println("waiting.........");
+//      Thread.sleep(5000);
+    }
+  }
+}

Modified: lucene/dev/trunk/solr/solrj/src/test/org/apache/solr/client/solrj/embedded/AbstractEmbeddedSolrServerTestCase.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/solrj/src/test/org/apache/solr/client/solrj/embedded/AbstractEmbeddedSolrServerTestCase.java?rev=1648697&r1=1648696&r2=1648697&view=diff
==============================================================================
--- lucene/dev/trunk/solr/solrj/src/test/org/apache/solr/client/solrj/embedded/AbstractEmbeddedSolrServerTestCase.java (original)
+++ lucene/dev/trunk/solr/solrj/src/test/org/apache/solr/client/solrj/embedded/AbstractEmbeddedSolrServerTestCase.java Wed Dec 31 14:05:48 2014
@@ -20,7 +20,7 @@ package org.apache.solr.client.solrj.emb
 import java.io.File;
 
 import org.apache.solr.SolrTestCaseJ4;
-import org.apache.solr.client.solrj.SolrServer;
+import org.apache.solr.client.solrj.SolrClient;
 import org.apache.solr.core.CoreContainer;
 import org.junit.After;
 import org.junit.Before;
@@ -79,15 +79,15 @@ public abstract class AbstractEmbeddedSo
 
   }
 
-  protected SolrServer getSolrCore0() {
+  protected SolrClient getSolrCore0() {
     return getSolrCore("core0");
   }
 
-  protected SolrServer getSolrCore1() {
+  protected SolrClient getSolrCore1() {
     return getSolrCore("core1");
   }
 
-  protected SolrServer getSolrCore(String name) {
+  protected SolrClient getSolrCore(String name) {
     return new EmbeddedSolrServer(cores, name);
   }
 

Modified: lucene/dev/trunk/solr/solrj/src/test/org/apache/solr/client/solrj/embedded/MergeIndexesEmbeddedTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/solrj/src/test/org/apache/solr/client/solrj/embedded/MergeIndexesEmbeddedTest.java?rev=1648697&r1=1648696&r2=1648697&view=diff
==============================================================================
--- lucene/dev/trunk/solr/solrj/src/test/org/apache/solr/client/solrj/embedded/MergeIndexesEmbeddedTest.java (original)
+++ lucene/dev/trunk/solr/solrj/src/test/org/apache/solr/client/solrj/embedded/MergeIndexesEmbeddedTest.java Wed Dec 31 14:05:48 2014
@@ -18,7 +18,7 @@
 package org.apache.solr.client.solrj.embedded;
 
 import org.apache.solr.client.solrj.MergeIndexesExampleTestBase;
-import org.apache.solr.client.solrj.SolrServer;
+import org.apache.solr.client.solrj.SolrClient;
 import org.apache.solr.core.SolrCore;
 
 /**
@@ -37,22 +37,22 @@ public class MergeIndexesEmbeddedTest ex
   }
 
   @Override
-  protected SolrServer getSolrCore0() {
+  protected SolrClient getSolrCore0() {
     return new EmbeddedSolrServer(cores, "core0");
   }
 
   @Override
-  protected SolrServer getSolrCore1() {
+  protected SolrClient getSolrCore1() {
     return new EmbeddedSolrServer(cores, "core1");
   }
 
   @Override
-  protected SolrServer getSolrCore(String name) {
+  protected SolrClient getSolrCore(String name) {
     return new EmbeddedSolrServer(cores, name);
   }
 
   @Override
-  protected SolrServer getSolrAdmin() {
+  protected SolrClient getSolrAdmin() {
     return new EmbeddedSolrServer(cores, "core0");
   }