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/02/09 00:53:25 UTC

svn commit: r1658277 [30/38] - in /lucene/dev/branches/lucene6005: ./ dev-tools/ dev-tools/idea/solr/contrib/dataimporthandler/ dev-tools/idea/solr/contrib/velocity/ dev-tools/maven/lucene/replicator/ dev-tools/maven/solr/ dev-tools/maven/solr/contrib/...

Modified: lucene/dev/branches/lucene6005/solr/core/src/test/org/apache/solr/handler/component/DistributedFacetPivotLargeTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6005/solr/core/src/test/org/apache/solr/handler/component/DistributedFacetPivotLargeTest.java?rev=1658277&r1=1658276&r2=1658277&view=diff
==============================================================================
--- lucene/dev/branches/lucene6005/solr/core/src/test/org/apache/solr/handler/component/DistributedFacetPivotLargeTest.java (original)
+++ lucene/dev/branches/lucene6005/solr/core/src/test/org/apache/solr/handler/component/DistributedFacetPivotLargeTest.java Sun Feb  8 23:53:14 2015
@@ -32,18 +32,15 @@ import org.apache.solr.common.params.Fac
 import org.apache.solr.common.params.SolrParams;
 
 import junit.framework.AssertionFailedError;
+import org.junit.Test;
 
 public class DistributedFacetPivotLargeTest extends BaseDistributedSearchTestCase {
   
   public static final String SPECIAL = ""; 
 
-  public DistributedFacetPivotLargeTest() {
-    this.fixShardCount = true;
-    this.shardCount = 4; // we leave one empty as an edge case
-  }
-  
-  @Override
-  public void doTest() throws Exception {
+  @Test
+  @ShardsFixed(num = 4)
+  public void test() throws Exception {
     this.stress = 0 ;
     handle.clear();
     handle.put("QTime", SKIPVAL);

Modified: lucene/dev/branches/lucene6005/solr/core/src/test/org/apache/solr/handler/component/DistributedFacetPivotLongTailTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6005/solr/core/src/test/org/apache/solr/handler/component/DistributedFacetPivotLongTailTest.java?rev=1658277&r1=1658276&r2=1658277&view=diff
==============================================================================
--- lucene/dev/branches/lucene6005/solr/core/src/test/org/apache/solr/handler/component/DistributedFacetPivotLongTailTest.java (original)
+++ lucene/dev/branches/lucene6005/solr/core/src/test/org/apache/solr/handler/component/DistributedFacetPivotLongTailTest.java Sun Feb  8 23:53:14 2015
@@ -26,6 +26,7 @@ import org.apache.solr.client.solrj.resp
 import org.apache.solr.common.params.FacetParams;
 import org.apache.solr.common.params.SolrParams;
 import org.apache.solr.common.params.ModifiableSolrParams;
+import org.junit.Test;
 
 /**
  * test demonstrating how overrequesting helps finds top-terms in the "long tail" 
@@ -39,11 +40,6 @@ import org.apache.solr.common.params.Mod
  */
 public class DistributedFacetPivotLongTailTest extends BaseDistributedSearchTestCase {
   
-  public DistributedFacetPivotLongTailTest(){
-    this.fixShardCount = true;
-    this.shardCount = 3;
-  }
-
   private int docNumber = 0;
   
   public int getDocNum() {
@@ -51,8 +47,9 @@ public class DistributedFacetPivotLongTa
     return docNumber;
   }
 
-  @Override
-  public void doTest() throws Exception {
+  @Test
+  @ShardsFixed(num = 3)
+  public void test() throws Exception {
 
     final SolrClient shard0 = clients.get(0);
     final SolrClient shard1 = clients.get(1);

Modified: lucene/dev/branches/lucene6005/solr/core/src/test/org/apache/solr/handler/component/DistributedFacetPivotSmallAdvancedTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6005/solr/core/src/test/org/apache/solr/handler/component/DistributedFacetPivotSmallAdvancedTest.java?rev=1658277&r1=1658276&r2=1658277&view=diff
==============================================================================
--- lucene/dev/branches/lucene6005/solr/core/src/test/org/apache/solr/handler/component/DistributedFacetPivotSmallAdvancedTest.java (original)
+++ lucene/dev/branches/lucene6005/solr/core/src/test/org/apache/solr/handler/component/DistributedFacetPivotSmallAdvancedTest.java Sun Feb  8 23:53:14 2015
@@ -25,6 +25,7 @@ import org.apache.solr.client.solrj.resp
 import org.apache.solr.common.params.FacetParams;
 import org.apache.solr.common.params.ModifiableSolrParams;
 import org.apache.solr.common.params.SolrParams;
+import org.junit.Test;
 
 import java.util.List;
 
@@ -37,13 +38,9 @@ import java.util.List;
  */
 public class DistributedFacetPivotSmallAdvancedTest extends BaseDistributedSearchTestCase {
 
-  public DistributedFacetPivotSmallAdvancedTest() {
-    this.fixShardCount = true;
-    this.shardCount = 2;
-  }
-
-  @Override
-  public void doTest() throws Exception {
+  @Test
+  @ShardsFixed(num = 2)
+  public void test() throws Exception {
 
     del("*:*");
     final SolrClient shard0 = clients.get(0);

Modified: lucene/dev/branches/lucene6005/solr/core/src/test/org/apache/solr/handler/component/DistributedFacetPivotSmallTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6005/solr/core/src/test/org/apache/solr/handler/component/DistributedFacetPivotSmallTest.java?rev=1658277&r1=1658276&r2=1658277&view=diff
==============================================================================
--- lucene/dev/branches/lucene6005/solr/core/src/test/org/apache/solr/handler/component/DistributedFacetPivotSmallTest.java (original)
+++ lucene/dev/branches/lucene6005/solr/core/src/test/org/apache/solr/handler/component/DistributedFacetPivotSmallTest.java Sun Feb  8 23:53:14 2015
@@ -32,16 +32,13 @@ import org.apache.solr.common.params.Sol
 import org.apache.solr.common.params.ModifiableSolrParams;
 
 import junit.framework.AssertionFailedError;
+import org.junit.Test;
 
 public class DistributedFacetPivotSmallTest extends BaseDistributedSearchTestCase {
-  
-  public DistributedFacetPivotSmallTest() {
-    this.fixShardCount = true;
-    this.shardCount = 4;
-  }
-  
-  @Override
-  public void doTest() throws Exception {
+
+  @Test
+  @ShardsFixed(num = 4)
+  public void test() throws Exception {
     
     del("*:*");
 

Modified: lucene/dev/branches/lucene6005/solr/core/src/test/org/apache/solr/handler/component/DistributedFacetPivotWhiteBoxTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6005/solr/core/src/test/org/apache/solr/handler/component/DistributedFacetPivotWhiteBoxTest.java?rev=1658277&r1=1658276&r2=1658277&view=diff
==============================================================================
--- lucene/dev/branches/lucene6005/solr/core/src/test/org/apache/solr/handler/component/DistributedFacetPivotWhiteBoxTest.java (original)
+++ lucene/dev/branches/lucene6005/solr/core/src/test/org/apache/solr/handler/component/DistributedFacetPivotWhiteBoxTest.java Sun Feb  8 23:53:14 2015
@@ -22,18 +22,15 @@ import org.apache.solr.client.solrj.resp
 import org.apache.solr.client.solrj.response.QueryResponse;
 import org.apache.solr.common.params.ModifiableSolrParams;
 import org.apache.solr.common.params.SolrParams;
+import org.junit.Test;
 
 import java.util.List;
 
 public class DistributedFacetPivotWhiteBoxTest extends BaseDistributedSearchTestCase {
 
-  public DistributedFacetPivotWhiteBoxTest() {
-    this.fixShardCount = true;
-    this.shardCount = 4;
-  }
-
-  @Override
-  public void doTest() throws Exception {
+  @Test
+  @ShardsFixed(num = 4)
+  public void test() throws Exception {
 
     del("*:*");
 

Modified: lucene/dev/branches/lucene6005/solr/core/src/test/org/apache/solr/handler/component/DistributedMLTComponentTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6005/solr/core/src/test/org/apache/solr/handler/component/DistributedMLTComponentTest.java?rev=1658277&r1=1658276&r2=1658277&view=diff
==============================================================================
--- lucene/dev/branches/lucene6005/solr/core/src/test/org/apache/solr/handler/component/DistributedMLTComponentTest.java (original)
+++ lucene/dev/branches/lucene6005/solr/core/src/test/org/apache/solr/handler/component/DistributedMLTComponentTest.java Sun Feb  8 23:53:14 2015
@@ -20,8 +20,8 @@ package org.apache.solr.handler.componen
 import org.apache.lucene.util.LuceneTestCase.Slow;
 import org.apache.solr.BaseDistributedSearchTestCase;
 import org.apache.solr.common.params.MoreLikeThisParams;
-import org.junit.BeforeClass;
 import org.junit.Ignore;
+import org.junit.Test;
 
 /**
  * Test for distributed MoreLikeThisComponent's 
@@ -38,29 +38,18 @@ public class DistributedMLTComponentTest
 
   public DistributedMLTComponentTest()
   {
-    fixShardCount=true;
-    shardCount=3;
     stress=0;
   }
 
-  @BeforeClass
-  public static void beforeClass() throws Exception {
-
-  }
-
   @Override
-  public void setUp() throws Exception {
+  public void distribSetUp() throws Exception {
     requestHandlerName = "mltrh";
-    super.setUp();
+    super.distribSetUp();
   }
   
-  @Override
-  public void tearDown() throws Exception {
-    super.tearDown();
-  }
-  
-  @Override
-  public void doTest() throws Exception {
+  @Test
+  @ShardsFixed(num = 3)
+  public void test() throws Exception {
     del("*:*");
     index(id, "1", "lowerfilt", "toyota");
     index(id, "2", "lowerfilt", "chevrolet");

Modified: lucene/dev/branches/lucene6005/solr/core/src/test/org/apache/solr/handler/component/DistributedQueryComponentCustomSortTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6005/solr/core/src/test/org/apache/solr/handler/component/DistributedQueryComponentCustomSortTest.java?rev=1658277&r1=1658276&r2=1658277&view=diff
==============================================================================
--- lucene/dev/branches/lucene6005/solr/core/src/test/org/apache/solr/handler/component/DistributedQueryComponentCustomSortTest.java (original)
+++ lucene/dev/branches/lucene6005/solr/core/src/test/org/apache/solr/handler/component/DistributedQueryComponentCustomSortTest.java Sun Feb  8 23:53:14 2015
@@ -19,9 +19,8 @@ package org.apache.solr.handler.componen
 
 import org.apache.solr.BaseDistributedSearchTestCase;
 import org.apache.solr.client.solrj.response.QueryResponse;
-import org.apache.solr.common.SolrDocument;
-import org.apache.solr.common.SolrDocumentList;
 import org.junit.BeforeClass;
+import org.junit.Test;
 
 import java.nio.ByteBuffer;
 
@@ -33,8 +32,6 @@ import java.nio.ByteBuffer;
 public class DistributedQueryComponentCustomSortTest extends BaseDistributedSearchTestCase {
 
   public DistributedQueryComponentCustomSortTest() {
-    fixShardCount = true;
-    shardCount = 3;
     stress = 0;
   }
 
@@ -43,8 +40,9 @@ public class DistributedQueryComponentCu
     initCore("solrconfig.xml", "schema-custom-field.xml");
   }
 
-  @Override
-  public void doTest() throws Exception {
+  @Test
+  @ShardsFixed(num = 3)
+  public void test() throws Exception {
     del("*:*");
 
     index(id, "1", "text", "a", "payload", ByteBuffer.wrap(new byte[] { 0x12, 0x62, 0x15 }),                     //  2 

Modified: lucene/dev/branches/lucene6005/solr/core/src/test/org/apache/solr/handler/component/DistributedQueryComponentOptimizationTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6005/solr/core/src/test/org/apache/solr/handler/component/DistributedQueryComponentOptimizationTest.java?rev=1658277&r1=1658276&r2=1658277&view=diff
==============================================================================
--- lucene/dev/branches/lucene6005/solr/core/src/test/org/apache/solr/handler/component/DistributedQueryComponentOptimizationTest.java (original)
+++ lucene/dev/branches/lucene6005/solr/core/src/test/org/apache/solr/handler/component/DistributedQueryComponentOptimizationTest.java Sun Feb  8 23:53:14 2015
@@ -20,11 +20,11 @@ package org.apache.solr.handler.componen
 import org.apache.solr.BaseDistributedSearchTestCase;
 import org.apache.solr.client.solrj.SolrServerException;
 import org.apache.solr.client.solrj.response.QueryResponse;
-import org.apache.solr.cloud.AbstractFullDistribZkTestBase;
 import org.apache.solr.common.params.ModifiableSolrParams;
 import org.apache.solr.common.params.ShardParams;
 import org.apache.solr.common.util.SimpleOrderedMap;
 import org.junit.BeforeClass;
+import org.junit.Test;
 
 import java.nio.ByteBuffer;
 import java.util.Map;
@@ -40,8 +40,6 @@ import java.util.Map;
 public class DistributedQueryComponentOptimizationTest extends BaseDistributedSearchTestCase {
 
   public DistributedQueryComponentOptimizationTest() {
-    fixShardCount = true;
-    shardCount = 3;
     stress = 0;
   }
 
@@ -50,8 +48,9 @@ public class DistributedQueryComponentOp
     initCore("solrconfig.xml", "schema-custom-field.xml");
   }
 
-  @Override
-  public void doTest() throws Exception {
+  @Test
+  @ShardsFixed(num = 3)
+  public void test() throws Exception {
     del("*:*");
 
     index(id, "1", "text", "a", "test_sS", "21", "payload", ByteBuffer.wrap(new byte[] { 0x12, 0x62, 0x15 }),                     //  2

Modified: lucene/dev/branches/lucene6005/solr/core/src/test/org/apache/solr/handler/component/DistributedQueryElevationComponentTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6005/solr/core/src/test/org/apache/solr/handler/component/DistributedQueryElevationComponentTest.java?rev=1658277&r1=1658276&r2=1658277&view=diff
==============================================================================
--- lucene/dev/branches/lucene6005/solr/core/src/test/org/apache/solr/handler/component/DistributedQueryElevationComponentTest.java (original)
+++ lucene/dev/branches/lucene6005/solr/core/src/test/org/apache/solr/handler/component/DistributedQueryElevationComponentTest.java Sun Feb  8 23:53:14 2015
@@ -26,6 +26,7 @@ import org.apache.solr.common.SolrInputD
 import org.apache.solr.common.params.CommonParams;
 import org.junit.AfterClass;
 import org.junit.BeforeClass;
+import org.junit.Test;
 
 /**
  * 
@@ -39,8 +40,6 @@ public class DistributedQueryElevationCo
   }
 
   public DistributedQueryElevationComponentTest() {
-    fixShardCount = true;
-    shardCount = 3;
     stress = 0;
 
     // TODO: a better way to do this?
@@ -59,8 +58,9 @@ public class DistributedQueryElevationCo
     System.clearProperty("elevate.data.file");
   }
 
-  @Override
-  public void doTest() throws Exception {
+  @Test
+  @ShardsFixed(num = 3)
+  public void test() throws Exception {
     
     
     del("*:*");

Modified: lucene/dev/branches/lucene6005/solr/core/src/test/org/apache/solr/handler/component/DistributedSpellCheckComponentTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6005/solr/core/src/test/org/apache/solr/handler/component/DistributedSpellCheckComponentTest.java?rev=1658277&r1=1658276&r2=1658277&view=diff
==============================================================================
--- lucene/dev/branches/lucene6005/solr/core/src/test/org/apache/solr/handler/component/DistributedSpellCheckComponentTest.java (original)
+++ lucene/dev/branches/lucene6005/solr/core/src/test/org/apache/solr/handler/component/DistributedSpellCheckComponentTest.java Sun Feb  8 23:53:14 2015
@@ -32,6 +32,7 @@ import org.apache.solr.common.params.Mod
 import org.apache.solr.common.params.SpellingParams;
 import org.apache.solr.common.util.NamedList;
 import org.junit.BeforeClass;
+import org.junit.Test;
 
 /**
  * Test for SpellCheckComponent's distributed querying
@@ -57,16 +58,6 @@ public class DistributedSpellCheckCompon
     useFactory(null); // need an FS factory
   }
 
-  @Override
-  public void setUp() throws Exception {
-    super.setUp();
-  }
-  
-  @Override
-  public void tearDown() throws Exception {
-    super.tearDown();
-  }
-  
   private void q(Object... q) throws Exception {
     final ModifiableSolrParams params = new ModifiableSolrParams();
 
@@ -95,9 +86,9 @@ public class DistributedSpellCheckCompon
       Assert.fail("Control data did not return any suggestions.");
     }
   }
-  
-  @Override
-  public void doTest() throws Exception {
+
+  @Test
+  public void test() throws Exception {
     del("*:*");
     index(id, "1", "lowerfilt", "toyota");
     index(id, "2", "lowerfilt", "chevrolet");

Modified: lucene/dev/branches/lucene6005/solr/core/src/test/org/apache/solr/handler/component/DistributedSuggestComponentTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6005/solr/core/src/test/org/apache/solr/handler/component/DistributedSuggestComponentTest.java?rev=1658277&r1=1658276&r2=1658277&view=diff
==============================================================================
--- lucene/dev/branches/lucene6005/solr/core/src/test/org/apache/solr/handler/component/DistributedSuggestComponentTest.java (original)
+++ lucene/dev/branches/lucene6005/solr/core/src/test/org/apache/solr/handler/component/DistributedSuggestComponentTest.java Sun Feb  8 23:53:14 2015
@@ -31,6 +31,7 @@ import org.apache.solr.common.util.Named
 import org.apache.solr.common.util.SimpleOrderedMap;
 import org.apache.solr.spelling.suggest.SuggesterParams;
 import org.junit.BeforeClass;
+import org.junit.Test;
 
 /**
  * Test for SuggestComponent's distributed querying
@@ -55,16 +56,6 @@ public class DistributedSuggestComponent
   }
 
   @Override
-  public void setUp() throws Exception {
-    super.setUp();
-  }
-  
-  @Override
-  public void tearDown() throws Exception {
-    super.tearDown();
-  }
-  
-  @Override
   public void validateControlData(QueryResponse control) throws Exception
   {    
     NamedList<Object> nl = control.getResponse();
@@ -74,10 +65,10 @@ public class DistributedSuggestComponent
     if(sc.size() == 0 && command == null) {
       Assert.fail("Control data did not return any suggestions or execute any command");
     }
-  } 
-  
-  @Override
-  public void doTest() throws Exception {
+  }
+
+  @Test
+  public void test() throws Exception {
     del("*:*");
     index(id, "1", "cat", "This is another title", "price", "10", "weight", "10");
     index(id, "2", "cat", "Yet another", "price", "15", "weight", "10");

Modified: lucene/dev/branches/lucene6005/solr/core/src/test/org/apache/solr/handler/component/DistributedTermsComponentTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6005/solr/core/src/test/org/apache/solr/handler/component/DistributedTermsComponentTest.java?rev=1658277&r1=1658276&r2=1658277&view=diff
==============================================================================
--- lucene/dev/branches/lucene6005/solr/core/src/test/org/apache/solr/handler/component/DistributedTermsComponentTest.java (original)
+++ lucene/dev/branches/lucene6005/solr/core/src/test/org/apache/solr/handler/component/DistributedTermsComponentTest.java Sun Feb  8 23:53:14 2015
@@ -18,6 +18,7 @@ package org.apache.solr.handler.componen
  */
 
 import org.apache.solr.BaseDistributedSearchTestCase;
+import org.junit.Test;
 
 /**
  * Test for TermsComponent distributed querying
@@ -27,8 +28,8 @@ import org.apache.solr.BaseDistributedSe
  */
 public class DistributedTermsComponentTest extends BaseDistributedSearchTestCase {
 
-  @Override
-  public void doTest() throws Exception {
+  @Test
+  public void test() throws Exception {
     del("*:*");
     index(id, 18, "b_t", "snake spider shark snail slug seal");
     index(id, 19, "b_t", "snake spider shark snail slug");

Modified: lucene/dev/branches/lucene6005/solr/core/src/test/org/apache/solr/handler/component/SuggestComponentTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6005/solr/core/src/test/org/apache/solr/handler/component/SuggestComponentTest.java?rev=1658277&r1=1658276&r2=1658277&view=diff
==============================================================================
--- lucene/dev/branches/lucene6005/solr/core/src/test/org/apache/solr/handler/component/SuggestComponentTest.java (original)
+++ lucene/dev/branches/lucene6005/solr/core/src/test/org/apache/solr/handler/component/SuggestComponentTest.java Sun Feb  8 23:53:14 2015
@@ -19,7 +19,12 @@ package org.apache.solr.handler.componen
 
 import org.apache.solr.SolrTestCaseJ4;
 import org.apache.solr.common.SolrException;
+import org.apache.solr.core.CoreContainer;
+import org.apache.solr.core.CoreDescriptor;
+import org.apache.solr.core.SolrCore;
+import org.apache.solr.search.SolrIndexSearcher;
 import org.apache.solr.spelling.suggest.SuggesterParams;
+import org.apache.solr.util.RefCounted;
 import org.junit.BeforeClass;
 import org.junit.Test;
 
@@ -50,14 +55,20 @@ public class SuggestComponentTest extend
     assertU(adoc("id", "9", "cat", "blah in blah", "price", "50", "weight", "40"));
     assertU(adoc("id", "10", "cat", "another blah in blah", "price", "55", "weight", "40"));
     assertU((commit()));
+    waitForWarming();
   }
   
   @Override
   public void tearDown() throws Exception {
     super.tearDown();
     assertU(delQ("*:*"));
-    optimize();
     assertU((commit()));
+    waitForWarming();
+    // rebuild suggesters with empty index
+    assertQ(req("qt", rh, 
+        SuggesterParams.SUGGEST_BUILD_ALL, "true"),
+        "//str[@name='command'][.='buildAll']"
+        );
   }
   
   @Test
@@ -66,7 +77,7 @@ public class SuggestComponentTest extend
         SuggesterParams.SUGGEST_DICT, "suggest_fuzzy_doc_dict", 
         SuggesterParams.SUGGEST_BUILD, "true",
         SuggesterParams.SUGGEST_Q, "exampel",
-        SuggesterParams.SUGGEST_COUNT, "2"),
+        SuggesterParams.SUGGEST_COUNT, "5"),
         "//lst[@name='suggest']/lst[@name='suggest_fuzzy_doc_dict']/lst[@name='exampel']/int[@name='numFound'][.='2']",
         "//lst[@name='suggest']/lst[@name='suggest_fuzzy_doc_dict']/lst[@name='exampel']/arr[@name='suggestions']/lst[1]/str[@name='term'][.='example inputdata']",
         "//lst[@name='suggest']/lst[@name='suggest_fuzzy_doc_dict']/lst[@name='exampel']/arr[@name='suggestions']/lst[1]/long[@name='weight'][.='45']",
@@ -78,7 +89,7 @@ public class SuggestComponentTest extend
         SuggesterParams.SUGGEST_DICT, "suggest_fuzzy_doc_dict", 
         SuggesterParams.SUGGEST_BUILD, "true",
         SuggesterParams.SUGGEST_Q, "Rad",
-        SuggesterParams.SUGGEST_COUNT, "2"),
+        SuggesterParams.SUGGEST_COUNT, "5"),
         "//lst[@name='suggest']/lst[@name='suggest_fuzzy_doc_dict']/lst[@name='Rad']/int[@name='numFound'][.='2']",
         "//lst[@name='suggest']/lst[@name='suggest_fuzzy_doc_dict']/lst[@name='Rad']/arr[@name='suggestions']/lst[1]/str[@name='term'][.='Rad fox']",
         "//lst[@name='suggest']/lst[@name='suggest_fuzzy_doc_dict']/lst[@name='Rad']/arr[@name='suggestions']/lst[1]/long[@name='weight'][.='35']",
@@ -93,7 +104,7 @@ public class SuggestComponentTest extend
         SuggesterParams.SUGGEST_DICT, "suggest_fuzzy_doc_expr_dict", 
         SuggesterParams.SUGGEST_BUILD, "true",
         SuggesterParams.SUGGEST_Q, "exampel",
-        SuggesterParams.SUGGEST_COUNT, "2"),
+        SuggesterParams.SUGGEST_COUNT, "5"),
         "//lst[@name='suggest']/lst[@name='suggest_fuzzy_doc_expr_dict']/lst[@name='exampel']/int[@name='numFound'][.='2']",
         "//lst[@name='suggest']/lst[@name='suggest_fuzzy_doc_expr_dict']/lst[@name='exampel']/arr[@name='suggestions']/lst[1]/str[@name='term'][.='example inputdata']",
         "//lst[@name='suggest']/lst[@name='suggest_fuzzy_doc_expr_dict']/lst[@name='exampel']/arr[@name='suggestions']/lst[1]/long[@name='weight'][.='120']",
@@ -123,7 +134,7 @@ public class SuggestComponentTest extend
         SuggesterParams.SUGGEST_DICT, "suggest_fuzzy_doc_expr_dict",
         SuggesterParams.SUGGEST_BUILD, "true",
         SuggesterParams.SUGGEST_Q, "exampel",
-        SuggesterParams.SUGGEST_COUNT, "2"),
+        SuggesterParams.SUGGEST_COUNT, "5"),
         "//lst[@name='suggest']/lst[@name='suggest_fuzzy_doc_dict']/lst[@name='exampel']/int[@name='numFound'][.='2']",
         "//lst[@name='suggest']/lst[@name='suggest_fuzzy_doc_dict']/lst[@name='exampel']/arr[@name='suggestions']/lst[1]/str[@name='term'][.='example inputdata']",
         "//lst[@name='suggest']/lst[@name='suggest_fuzzy_doc_dict']/lst[@name='exampel']/arr[@name='suggestions']/lst[1]/long[@name='weight'][.='45']",
@@ -142,7 +153,7 @@ public class SuggestComponentTest extend
     assertQ(req("qt", rh, 
         SuggesterParams.SUGGEST_BUILD_ALL, "true",
         SuggesterParams.SUGGEST_Q, "exampel",
-        SuggesterParams.SUGGEST_COUNT, "2"),
+        SuggesterParams.SUGGEST_COUNT, "5"),
         "//str[@name='command'][.='buildAll']"
         );
     
@@ -157,7 +168,7 @@ public class SuggestComponentTest extend
     assertQ(req("qt", rh, 
         SuggesterParams.SUGGEST_RELOAD_ALL, "true",
         SuggesterParams.SUGGEST_Q, "exampel",
-        SuggesterParams.SUGGEST_COUNT, "2"),
+        SuggesterParams.SUGGEST_COUNT, "5"),
         "//str[@name='command'][.='reloadAll']"
         );
     
@@ -174,7 +185,7 @@ public class SuggestComponentTest extend
         req("qt", rh, 
         SuggesterParams.SUGGEST_DICT, fakeSuggesterName,
         SuggesterParams.SUGGEST_Q, "exampel",
-        SuggesterParams.SUGGEST_COUNT, "2"),
+        SuggesterParams.SUGGEST_COUNT, "5"),
         SolrException.ErrorCode.BAD_REQUEST
         );
     
@@ -182,9 +193,349 @@ public class SuggestComponentTest extend
         "' parameter not specified and no default suggester configured",
         req("qt", rh, 
         SuggesterParams.SUGGEST_Q, "exampel",
-        SuggesterParams.SUGGEST_COUNT, "2"),
+        SuggesterParams.SUGGEST_COUNT, "5"),
         SolrException.ErrorCode.BAD_REQUEST
         );
   }
   
+
+  @Test
+  public void testDefaultBuildOnStartupNotStoredDict() throws Exception {
+    
+    final String suggester = "suggest_doc_default_startup_no_store";
+    
+    // validate that this suggester is not storing the lookup
+    assertEquals(suggester, 
+        h.getCore().getSolrConfig().getVal("//searchComponent[@name='suggest']/lst[8]/str[@name='name']", false));
+    assertNull(h.getCore().getSolrConfig().getVal("//searchComponent[@name='suggest']/lst[8]/str[@name='storeDir']", false));
+    
+    // validate that this suggester only builds manually and has not buildOnStartup parameter
+    assertEquals("false", 
+        h.getCore().getSolrConfig().getVal("//searchComponent[@name='suggest']/lst[8]/str[@name='buildOnCommit']", true));
+    assertNull(h.getCore().getSolrConfig().getVal("//searchComponent[@name='suggest']/lst[8]/str[@name='buildOnStartup']", false));
+    
+    reloadCore(random().nextBoolean());
+    
+    // Validate that the suggester was built on new/reload core
+    assertQ(req("qt", rh, 
+        SuggesterParams.SUGGEST_DICT, suggester,
+        SuggesterParams.SUGGEST_Q, "example",
+        SuggesterParams.SUGGEST_COUNT, "5"),
+        "//lst[@name='suggest']/lst[@name='" + suggester + "']/lst[@name='example']/int[@name='numFound'][.='2']"
+        );
+    
+    // add one more doc, should be visible after core reload
+    assertU(adoc("id", "10", "cat", "example data extra ", "price", "40", "weight", "35"));
+    assertU((commit()));
+    
+    waitForWarming();
+    
+    // buildOnCommit=false, this doc should not be in the suggester yet
+    assertQ(req("qt", rh, 
+        SuggesterParams.SUGGEST_DICT, suggester,
+        SuggesterParams.SUGGEST_Q, "example",
+        SuggesterParams.SUGGEST_COUNT, "5"),
+        "//lst[@name='suggest']/lst[@name='" + suggester + "']/lst[@name='example']/int[@name='numFound'][.='2']"
+        );
+    
+    reloadCore(random().nextBoolean());
+    
+    assertQ(req("qt", rh, 
+        SuggesterParams.SUGGEST_DICT, suggester,
+        SuggesterParams.SUGGEST_Q, "example",
+        SuggesterParams.SUGGEST_COUNT, "5"),
+        "//lst[@name='suggest']/lst[@name='" + suggester + "']/lst[@name='example']/int[@name='numFound'][.='3']"
+        );
+    
+  }
+  
+  @Test
+  public void testDefaultBuildOnStartupStoredDict() throws Exception {
+    
+    final String suggester = "suggest_doc_default_startup";
+    
+    // validate that this suggester is storing the lookup
+    assertEquals(suggester, 
+        h.getCore().getSolrConfig().getVal("//searchComponent[@name='suggest']/lst[7]/str[@name='name']", false));
+    assertEquals(suggester, 
+        h.getCore().getSolrConfig().getVal("//searchComponent[@name='suggest']/lst[7]/str[@name='storeDir']", false));
+    
+    // validate that this suggester only builds manually and has not buildOnStartup parameter
+    assertEquals("false", 
+        h.getCore().getSolrConfig().getVal("//searchComponent[@name='suggest']/lst[7]/str[@name='buildOnCommit']", true));
+    assertNull(h.getCore().getSolrConfig().getVal("//searchComponent[@name='suggest']/lst[7]/str[@name='buildOnStartup']", false));
+    
+    assertQ(req("qt", rh, 
+        SuggesterParams.SUGGEST_DICT, suggester,
+        SuggesterParams.SUGGEST_Q, "example",
+        SuggesterParams.SUGGEST_COUNT, "5"),
+        "//lst[@name='suggest']/lst[@name='" + suggester + "']/lst[@name='example']/int[@name='numFound'][.='0']"
+        );
+    
+    // build the suggester manually
+    assertQ(req("qt", rh, 
+        SuggesterParams.SUGGEST_DICT, suggester,
+        SuggesterParams.SUGGEST_BUILD, "true"),
+        "//str[@name='command'][.='build']"
+        );
+    
+    assertQ(req("qt", rh, 
+        SuggesterParams.SUGGEST_DICT, suggester,
+        SuggesterParams.SUGGEST_Q, "example",
+        SuggesterParams.SUGGEST_COUNT, "5"),
+        "//lst[@name='suggest']/lst[@name='" + suggester + "']/lst[@name='example']/int[@name='numFound'][.='2']"
+        );
+    
+    reloadCore(random().nextBoolean());
+    
+    // Validate that the suggester was loaded on new/reload core
+    assertQ(req("qt", rh, 
+        SuggesterParams.SUGGEST_DICT, suggester,
+        SuggesterParams.SUGGEST_Q, "example",
+        SuggesterParams.SUGGEST_COUNT, "5"),
+        "//lst[@name='suggest']/lst[@name='" + suggester + "']/lst[@name='example']/int[@name='numFound'][.='2']"
+        );
+    
+    // add one more doc, this should not be seen after a core reload (not until the suggester is manually rebuilt)
+    assertU(adoc("id", "10", "cat", "example data extra ", "price", "40", "weight", "35"));
+    assertU((commit()));
+    
+    waitForWarming();
+    // buildOnCommit=false, this doc should not be in the suggester yet
+    assertQ(req("qt", rh, 
+        SuggesterParams.SUGGEST_DICT, suggester,
+        SuggesterParams.SUGGEST_Q, "example",
+        SuggesterParams.SUGGEST_COUNT, "5"),
+        "//lst[@name='suggest']/lst[@name='" + suggester + "']/lst[@name='example']/int[@name='numFound'][.='2']"
+        );
+    
+    reloadCore(random().nextBoolean());
+    
+    assertQ(req("qt", rh, 
+        SuggesterParams.SUGGEST_DICT, suggester,
+        SuggesterParams.SUGGEST_Q, "example",
+        SuggesterParams.SUGGEST_COUNT, "5"),
+        "//lst[@name='suggest']/lst[@name='" + suggester + "']/lst[@name='example']/int[@name='numFound'][.='2']"
+        );
+    
+    // build the suggester manually
+    assertQ(req("qt", rh, 
+        SuggesterParams.SUGGEST_DICT, suggester,
+        SuggesterParams.SUGGEST_BUILD, "true"),
+        "//str[@name='command'][.='build']"
+        );
+    
+    assertQ(req("qt", rh, 
+        SuggesterParams.SUGGEST_DICT, suggester,
+        SuggesterParams.SUGGEST_Q, "example",
+        SuggesterParams.SUGGEST_COUNT, "5"),
+        "//lst[@name='suggest']/lst[@name='" + suggester + "']/lst[@name='example']/int[@name='numFound'][.='3']"
+        );
+    
+  }
+  
+  @Test
+  public void testLoadOnStartup() throws Exception {
+    
+    final String suggester = "suggest_fuzzy_doc_manal_build";
+    
+    // validate that this suggester is storing the lookup
+    assertEquals(suggester, 
+        h.getCore().getSolrConfig().getVal("//searchComponent[@name='suggest']/lst[6]/str[@name='name']", false));
+    assertEquals(suggester, 
+        h.getCore().getSolrConfig().getVal("//searchComponent[@name='suggest']/lst[6]/str[@name='storeDir']", false));
+    
+    // validate that this suggester only builds manually
+    assertEquals("false", 
+        h.getCore().getSolrConfig().getVal("//searchComponent[@name='suggest']/lst[6]/str[@name='buildOnCommit']", true));
+    assertEquals("false", 
+        h.getCore().getSolrConfig().getVal("//searchComponent[@name='suggest']/lst[6]/str[@name='buildOnStartup']", true));
+    
+    // build the suggester manually
+    assertQ(req("qt", rh, 
+        SuggesterParams.SUGGEST_DICT, suggester,
+        SuggesterParams.SUGGEST_BUILD, "true"),
+        "//str[@name='command'][.='build']"
+        );
+    
+    assertQ(req("qt", rh, 
+        SuggesterParams.SUGGEST_DICT, suggester,
+        SuggesterParams.SUGGEST_Q, "exampel",
+        SuggesterParams.SUGGEST_COUNT, "5"),
+        "//lst[@name='suggest']/lst[@name='" + suggester + "']/lst[@name='exampel']/int[@name='numFound'][.='2']"
+        );
+    
+    reloadCore(false);
+    
+    // Validate that the suggester was loaded on core reload
+    assertQ(req("qt", rh, 
+        SuggesterParams.SUGGEST_DICT, suggester,
+        SuggesterParams.SUGGEST_Q, "exampel",
+        SuggesterParams.SUGGEST_COUNT, "5"),
+        "//lst[@name='suggest']/lst[@name='" + suggester + "']/lst[@name='exampel']/int[@name='numFound'][.='2']"
+        );
+    
+    reloadCore(true);
+    
+    // Validate that the suggester was loaded on new core
+    assertQ(req("qt", rh, 
+        SuggesterParams.SUGGEST_DICT, suggester,
+        SuggesterParams.SUGGEST_Q, "exampel",
+        SuggesterParams.SUGGEST_COUNT, "5"),
+        "//lst[@name='suggest']/lst[@name='" + suggester + "']/lst[@name='exampel']/int[@name='numFound'][.='2']"
+        );
+  }
+  
+  public void testBuildOnStartupWithCoreReload() throws Exception {
+    doTestBuildOnStartup(false);
+  }
+  
+  public void testBuildOnStartupWithNewCores() throws Exception {
+    doTestBuildOnStartup(true);
+  }
+  
+  private void doTestBuildOnStartup(boolean createNewCores) throws Exception {
+    
+    final String suggesterFuzzy = "suggest_fuzzy_doc_dict";
+    
+    // the test relies on useColdSearcher=false
+    assertFalse("Precondition not met for test. useColdSearcher must be false", 
+        h.getCore().getSolrConfig().useColdSearcher);
+    
+    // validate that this suggester is not storing the lookup and buildOnStartup is not set
+    assertEquals(suggesterFuzzy, 
+        h.getCore().getSolrConfig().getVal("//searchComponent[@name='suggest']/lst[3]/str[@name='name']", false));
+    assertNull(h.getCore().getSolrConfig().getVal("//searchComponent[@name='suggest']/lst[3]/str[@name='storeDir']", false));
+    
+    // assert that buildOnStartup=false
+    assertEquals("false", 
+        h.getCore().getSolrConfig().getVal("//searchComponent[@name='suggest']/lst[3]/str[@name='buildOnStartup']", false));
+    assertEquals("true", 
+        h.getCore().getSolrConfig().getVal("//searchComponent[@name='suggest']/lst[3]/str[@name='buildOnCommit']", false));
+    
+    // verify that this suggester is built (there was a commit in setUp)
+    assertQ(req("qt", rh, 
+        SuggesterParams.SUGGEST_DICT, suggesterFuzzy, 
+        SuggesterParams.SUGGEST_Q, "exampel",
+        SuggesterParams.SUGGEST_COUNT, "5"),
+        "//lst[@name='suggest']/lst[@name='" + suggesterFuzzy + "']/lst[@name='exampel']/int[@name='numFound'][.='2']"
+        );
+    
+    // reload the core and wait for for the listeners to finish
+    reloadCore(createNewCores);
+    if (System.getProperty(SYSPROP_NIGHTLY) != null) {
+      // wait some time here in nightly to make sure there are no race conditions in suggester build
+      Thread.sleep(1000);
+    }
+    
+    // The suggester should be empty
+    assertQ(req("qt", rh, 
+        SuggesterParams.SUGGEST_DICT, suggesterFuzzy, 
+        SuggesterParams.SUGGEST_Q, "exampel",
+        SuggesterParams.SUGGEST_COUNT, "5"),
+        "//lst[@name='suggest']/lst[@name='" + suggesterFuzzy + "']/lst[@name='exampel']/int[@name='numFound'][.='0']"
+        );
+    
+    // build the suggester manually
+    assertQ(req("qt", rh, 
+        SuggesterParams.SUGGEST_DICT, suggesterFuzzy, 
+        SuggesterParams.SUGGEST_BUILD, "true"),
+        "//str[@name='command'][.='build']"
+        );
+    
+    // validate the suggester is built again
+    assertQ(req("qt", rh, 
+        SuggesterParams.SUGGEST_DICT, suggesterFuzzy, 
+        SuggesterParams.SUGGEST_Q, "exampel",
+        SuggesterParams.SUGGEST_COUNT, "5"),
+        "//lst[@name='suggest']/lst[@name='" + suggesterFuzzy + "']/lst[@name='exampel']/int[@name='numFound'][.='2']"
+        );
+    
+    final String suggestStartup = "suggest_fuzzy_doc_dict_build_startup";
+    
+    // repeat the test with "suggest_fuzzy_doc_dict_build_startup", it is exactly the same but with buildOnStartup=true
+    assertEquals(suggestStartup, 
+        h.getCore().getSolrConfig().getVal("//searchComponent[@name='suggest']/lst[5]/str[@name='name']", false));
+    assertNull(h.getCore().getSolrConfig().getVal("//searchComponent[@name='suggest']/lst[5]/str[@name='storeDir']", false));
+    assertEquals("true", 
+        h.getCore().getSolrConfig().getVal("//searchComponent[@name='suggest']/lst[5]/str[@name='buildOnStartup']", false));
+    assertEquals("false", 
+        h.getCore().getSolrConfig().getVal("//searchComponent[@name='suggest']/lst[5]/str[@name='buildOnCommit']", false));
+    
+    // reload the core
+    reloadCore(createNewCores);
+    // verify that this suggester is built (should build on startup)
+    assertQ(req("qt", rh, 
+        SuggesterParams.SUGGEST_DICT, suggestStartup, 
+        SuggesterParams.SUGGEST_Q, "exampel",
+        SuggesterParams.SUGGEST_COUNT, "5"),
+        "//lst[@name='suggest']/lst[@name='" + suggestStartup + "']/lst[@name='exampel']/int[@name='numFound'][.='2']"
+        );
+    
+    // add one more doc, this should not be seen without rebuilding manually or reloading the core (buildOnCommit=false)
+    assertU(adoc("id", "10", "cat", "example data extra ", "price", "40", "weight", "35"));
+    assertU((commit()));
+    
+    waitForWarming();
+
+    assertQ(req("qt", rh, 
+        SuggesterParams.SUGGEST_DICT, suggestStartup, 
+        SuggesterParams.SUGGEST_Q, "exampel",
+        SuggesterParams.SUGGEST_COUNT, "5"),
+        "//lst[@name='suggest']/lst[@name='" + suggestStartup + "']/lst[@name='exampel']/int[@name='numFound'][.='2']"
+        );
+    
+    // build the suggester manually
+    assertQ(req("qt", rh, 
+        SuggesterParams.SUGGEST_DICT, suggestStartup, 
+        SuggesterParams.SUGGEST_BUILD, "true"),
+        "//str[@name='command'][.='build']"
+        );
+    
+    assertQ(req("qt", rh, 
+        SuggesterParams.SUGGEST_DICT, suggestStartup, 
+        SuggesterParams.SUGGEST_Q, "exampel",
+        SuggesterParams.SUGGEST_COUNT, "5"),
+        "//lst[@name='suggest']/lst[@name='" + suggestStartup + "']/lst[@name='exampel']/int[@name='numFound'][.='3']"
+        );
+  }
+  
+  private void reloadCore(boolean createNewCore) throws Exception {
+    if (createNewCore) {
+      CoreContainer cores = h.getCoreContainer();
+      SolrCore core = h.getCore();
+      String dataDir1 = core.getDataDir();
+      CoreDescriptor cd = core.getCoreDescriptor();
+      cores.unload(core.getName());
+      SolrCore createdCore = cores.create(cd);
+      assertEquals(dataDir1, createdCore.getDataDir());
+      assertEquals(createdCore, h.getCore());
+    } else {
+      h.reload();
+      // On regular reloading, wait until the new searcher is registered
+      waitForWarming();
+    }
+    
+    assertQ(req("qt", "standard", 
+        "q", "*:*"), 
+        "//*[@numFound='11']"
+        );
+  }
+
+  private void waitForWarming() throws InterruptedException {
+    RefCounted<SolrIndexSearcher> registeredSearcher = h.getCore().getRegisteredSearcher();
+    RefCounted<SolrIndexSearcher> newestSearcher = h.getCore().getNewestSearcher(false);;
+    while (registeredSearcher == null || registeredSearcher.get() != newestSearcher.get()) {
+      if (registeredSearcher != null) {
+        registeredSearcher.decref();
+      }
+      newestSearcher.decref();
+      Thread.sleep(50);
+      registeredSearcher = h.getCore().getRegisteredSearcher();
+      newestSearcher = h.getCore().getNewestSearcher(false);
+    }
+    registeredSearcher.decref();
+    newestSearcher.decref();
+  }
+  
 }

Modified: lucene/dev/branches/lucene6005/solr/core/src/test/org/apache/solr/handler/component/TermVectorComponentDistributedTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6005/solr/core/src/test/org/apache/solr/handler/component/TermVectorComponentDistributedTest.java?rev=1658277&r1=1658276&r2=1658277&view=diff
==============================================================================
--- lucene/dev/branches/lucene6005/solr/core/src/test/org/apache/solr/handler/component/TermVectorComponentDistributedTest.java (original)
+++ lucene/dev/branches/lucene6005/solr/core/src/test/org/apache/solr/handler/component/TermVectorComponentDistributedTest.java Sun Feb  8 23:53:14 2015
@@ -22,6 +22,7 @@ import org.apache.lucene.util.Constants;
 import org.apache.solr.BaseDistributedSearchTestCase;
 import org.apache.solr.common.params.TermVectorParams;
 import org.junit.BeforeClass;
+import org.junit.Test;
 
 public class TermVectorComponentDistributedTest extends BaseDistributedSearchTestCase {
   @BeforeClass
@@ -30,8 +31,8 @@ public class TermVectorComponentDistribu
                 Constants.JAVA_VENDOR.startsWith("IBM"));
   }
 
-  @Override
-  public void doTest() throws Exception {
+  @Test
+  public void test() throws Exception {
 
     handle.clear();
     handle.put("timestamp", SKIPVAL);

Modified: lucene/dev/branches/lucene6005/solr/core/src/test/org/apache/solr/handler/component/TestExpandComponent.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6005/solr/core/src/test/org/apache/solr/handler/component/TestExpandComponent.java?rev=1658277&r1=1658276&r2=1658277&view=diff
==============================================================================
--- lucene/dev/branches/lucene6005/solr/core/src/test/org/apache/solr/handler/component/TestExpandComponent.java (original)
+++ lucene/dev/branches/lucene6005/solr/core/src/test/org/apache/solr/handler/component/TestExpandComponent.java Sun Feb  8 23:53:14 2015
@@ -19,6 +19,7 @@ package org.apache.solr.handler.componen
 
 import org.apache.solr.SolrTestCaseJ4;
 import org.apache.solr.common.params.ModifiableSolrParams;
+import org.apache.solr.search.CollapsingQParserPlugin;
 import org.junit.Before;
 import org.junit.BeforeClass;
 import org.junit.Test;
@@ -43,14 +44,54 @@ public class TestExpandComponent extends
     assertU(commit());
   }
 
+
+
   @Test
   public void testExpand() throws Exception {
-    final String group = (random().nextBoolean() ? "group_s" : "group_s_dv");
-    
-    String[] doc = {"id","1", "term_s", "YYYY", group, "group1", "test_ti", "5", "test_tl", "10", "test_tf", "2000", "type_s", "parent"};
+    List<String> groups = new ArrayList();
+    groups.add("group_s");
+    groups.add("group_s_dv");
+
+    Collections.shuffle(groups, random());
+    String floatAppend = "";
+
+    String hint = (random().nextBoolean() ? " hint="+ CollapsingQParserPlugin.HINT_TOP_FC : "");
+
+     _testExpand(groups.get(0), floatAppend, hint);
+  }
+
+  @Test
+  public void testNumericExpand() throws Exception {
+    List<String> groups = new ArrayList();
+    groups.add("group_i");
+    groups.add("group_ti_dv");
+    groups.add("group_f");
+    groups.add("group_tf_dv");
+    Collections.shuffle(groups, random());
+    String floatAppend = "";
+    if(groups.get(0).indexOf("f") > -1) {
+      floatAppend = "."+random().nextInt(100);  //Append the float
+      floatAppend = Float.toString(Float.parseFloat(floatAppend)); //Create a proper float out of the string.
+      floatAppend = floatAppend.substring(1);  //Drop off the leading 0, leaving just the decimal
+    }
+
+    String hint = "";
+
+      _testExpand(groups.get(0), floatAppend, hint);
+  }
+
+  private void _testExpand(String group, String floatAppend, String hint) throws Exception {
+
+    String[] doc = {"id","1", "term_s", "YYYY", group, "1"+floatAppend, "test_ti", "5",
+
+
+
+
+
+        "test_tl", "10", "test_tf", "2000", "type_s", "parent"};
     assertU(adoc(doc));
     assertU(commit());
-    String[] doc1 = {"id","2", "term_s","YYYY", group, "group1", "test_ti", "50", "test_tl", "100", "test_tf", "200", "type_s", "child"};
+    String[] doc1 = {"id","2", "term_s","YYYY", group, "1"+floatAppend, "test_ti", "50", "test_tl", "100", "test_tf", "200", "type_s", "child"};
     assertU(adoc(doc1));
 
     String[] doc2 = {"id","3", "term_s", "YYYY", "test_ti", "5000", "test_tl", "100", "test_tf", "200"};
@@ -60,17 +101,17 @@ public class TestExpandComponent extends
     assertU(adoc(doc3));
 
 
-    String[] doc4 = {"id","5", "term_s", "YYYY", group, "group2", "test_ti", "4", "test_tl", "10", "test_tf", "2000", "type_s", "parent"};
+    String[] doc4 = {"id","5", "term_s", "YYYY", group, "2"+floatAppend, "test_ti", "4", "test_tl", "10", "test_tf", "2000", "type_s", "parent"};
     assertU(adoc(doc4));
     assertU(commit());
-    String[] doc5 = {"id","6", "term_s","YYYY", group, "group2", "test_ti", "10", "test_tl", "100", "test_tf", "200", "type_s", "child"};
+    String[] doc5 = {"id","6", "term_s","YYYY", group, "2"+floatAppend, "test_ti", "10", "test_tl", "100", "test_tf", "200", "type_s", "child"};
     assertU(adoc(doc5));
     assertU(commit());
 
-    String[] doc6 = {"id","7", "term_s", "YYYY", group, "group1", "test_ti", "1", "test_tl", "100000", "test_tf", "2000", "type_s", "child"};
+    String[] doc6 = {"id","7", "term_s", "YYYY", group, "1"+floatAppend, "test_ti", "1", "test_tl", "100000", "test_tf", "2000", "type_s", "child"};
     assertU(adoc(doc6));
     assertU(commit());
-    String[] doc7 = {"id","8", "term_s","YYYY", group, "group2", "test_ti", "2", "test_tl", "100000", "test_tf", "200", "type_s", "child"};
+    String[] doc7 = {"id","8", "term_s","YYYY", group, "2"+floatAppend, "test_ti", "2", "test_tl", "100000", "test_tf", "200", "type_s", "child"};
     assertU(adoc(doc7));
 
     assertU(commit());
@@ -78,7 +119,7 @@ public class TestExpandComponent extends
     //First basic test case.
     ModifiableSolrParams params = new ModifiableSolrParams();
     params.add("q", "*:*");
-    params.add("fq", "{!collapse field="+group+"}");
+    params.add("fq", "{!collapse field="+group+hint+"}");
     params.add("defType", "edismax");
     params.add("bf", "field(test_ti)");
     params.add("expand", "true");
@@ -86,17 +127,17 @@ public class TestExpandComponent extends
         "*[count(/response/lst[@name='expanded']/result)=2]",
         "/response/result/doc[1]/float[@name='id'][.='2.0']",
         "/response/result/doc[2]/float[@name='id'][.='6.0']",
-        "/response/lst[@name='expanded']/result[@name='group1']/doc[1]/float[@name='id'][.='1.0']",
-        "/response/lst[@name='expanded']/result[@name='group1']/doc[2]/float[@name='id'][.='7.0']",
-        "/response/lst[@name='expanded']/result[@name='group2']/doc[1]/float[@name='id'][.='5.0']",
-        "/response/lst[@name='expanded']/result[@name='group2']/doc[2]/float[@name='id'][.='8.0']"
+        "/response/lst[@name='expanded']/result[@name='1"+floatAppend+"']/doc[1]/float[@name='id'][.='1.0']",
+        "/response/lst[@name='expanded']/result[@name='1"+floatAppend+"']/doc[2]/float[@name='id'][.='7.0']",
+        "/response/lst[@name='expanded']/result[@name='2"+floatAppend+"']/doc[1]/float[@name='id'][.='5.0']",
+        "/response/lst[@name='expanded']/result[@name='2"+floatAppend+"']/doc[2]/float[@name='id'][.='8.0']"
     );
 
     //Basic test case page 2
 
     params = new ModifiableSolrParams();
     params.add("q", "*:*");
-    params.add("fq", "{!collapse field="+group+"}");
+    params.add("fq", "{!collapse field="+group+hint+"}");
     params.add("defType", "edismax");
     params.add("bf", "field(test_ti)");
     params.add("expand", "true");
@@ -105,14 +146,14 @@ public class TestExpandComponent extends
     assertQ(req(params), "*[count(/response/result/doc)=1]",
         "*[count(/response/lst[@name='expanded']/result)=1]",
         "/response/result/doc[1]/float[@name='id'][.='6.0']",
-        "/response/lst[@name='expanded']/result[@name='group2']/doc[1]/float[@name='id'][.='5.0']",
-        "/response/lst[@name='expanded']/result[@name='group2']/doc[2]/float[@name='id'][.='8.0']"
+        "/response/lst[@name='expanded']/result[@name='2"+floatAppend+"']/doc[1]/float[@name='id'][.='5.0']",
+        "/response/lst[@name='expanded']/result[@name='2"+floatAppend+"']/doc[2]/float[@name='id'][.='8.0']"
     );
 
     //Test expand.sort
     params = new ModifiableSolrParams();
     params.add("q", "*:*");
-    params.add("fq", "{!collapse field="+group+"}");
+    params.add("fq", "{!collapse field="+group+hint+"}");
     params.add("defType", "edismax");
     params.add("bf", "field(test_ti)");
     params.add("expand", "true");
@@ -121,17 +162,17 @@ public class TestExpandComponent extends
         "*[count(/response/lst[@name='expanded']/result)=2]",
         "/response/result/doc[1]/float[@name='id'][.='2.0']",
         "/response/result/doc[2]/float[@name='id'][.='6.0']",
-        "/response/lst[@name='expanded']/result[@name='group1']/doc[1]/float[@name='id'][.='7.0']",
-        "/response/lst[@name='expanded']/result[@name='group1']/doc[2]/float[@name='id'][.='1.0']",
-        "/response/lst[@name='expanded']/result[@name='group2']/doc[1]/float[@name='id'][.='8.0']",
-        "/response/lst[@name='expanded']/result[@name='group2']/doc[2]/float[@name='id'][.='5.0']"
+        "/response/lst[@name='expanded']/result[@name='1"+floatAppend+"']/doc[1]/float[@name='id'][.='7.0']",
+        "/response/lst[@name='expanded']/result[@name='1"+floatAppend+"']/doc[2]/float[@name='id'][.='1.0']",
+        "/response/lst[@name='expanded']/result[@name='2"+floatAppend+"']/doc[1]/float[@name='id'][.='8.0']",
+        "/response/lst[@name='expanded']/result[@name='2"+floatAppend+"']/doc[2]/float[@name='id'][.='5.0']"
     );
 
     //Test with nullPolicy, ExpandComponent should ignore docs with null values in the collapse fields.
     //Main result set should include the doc with null value in the collapse field.
     params = new ModifiableSolrParams();
     params.add("q", "*:*");
-    params.add("fq", "{!collapse field="+group+" nullPolicy=collapse}");
+    params.add("fq", "{!collapse field="+group+hint+" nullPolicy=collapse}");
     params.add("defType", "edismax");
     params.add("bf", "field(test_ti)");
     params.add("expand", "true");
@@ -141,10 +182,10 @@ public class TestExpandComponent extends
         "/response/result/doc[1]/float[@name='id'][.='3.0']",
         "/response/result/doc[2]/float[@name='id'][.='2.0']",
         "/response/result/doc[3]/float[@name='id'][.='6.0']",
-        "/response/lst[@name='expanded']/result[@name='group1']/doc[1]/float[@name='id'][.='7.0']",
-        "/response/lst[@name='expanded']/result[@name='group1']/doc[2]/float[@name='id'][.='1.0']",
-        "/response/lst[@name='expanded']/result[@name='group2']/doc[1]/float[@name='id'][.='8.0']",
-        "/response/lst[@name='expanded']/result[@name='group2']/doc[2]/float[@name='id'][.='5.0']"
+        "/response/lst[@name='expanded']/result[@name='1"+floatAppend+"']/doc[1]/float[@name='id'][.='7.0']",
+        "/response/lst[@name='expanded']/result[@name='1"+floatAppend+"']/doc[2]/float[@name='id'][.='1.0']",
+        "/response/lst[@name='expanded']/result[@name='2"+floatAppend+"']/doc[1]/float[@name='id'][.='8.0']",
+        "/response/lst[@name='expanded']/result[@name='2"+floatAppend+"']/doc[2]/float[@name='id'][.='5.0']"
     );
 
 
@@ -162,10 +203,10 @@ public class TestExpandComponent extends
         "*[count(/response/lst[@name='expanded']/result)=2]",
         "/response/result/doc[1]/float[@name='id'][.='1.0']",
         "/response/result/doc[2]/float[@name='id'][.='5.0']",
-        "/response/lst[@name='expanded']/result[@name='group1']/doc[1]/float[@name='id'][.='7.0']",
-        "/response/lst[@name='expanded']/result[@name='group1']/doc[2]/float[@name='id'][.='2.0']",
-        "/response/lst[@name='expanded']/result[@name='group2']/doc[1]/float[@name='id'][.='8.0']",
-        "/response/lst[@name='expanded']/result[@name='group2']/doc[2]/float[@name='id'][.='6.0']"
+        "/response/lst[@name='expanded']/result[@name='1"+floatAppend+"']/doc[1]/float[@name='id'][.='7.0']",
+        "/response/lst[@name='expanded']/result[@name='1"+floatAppend+"']/doc[2]/float[@name='id'][.='2.0']",
+        "/response/lst[@name='expanded']/result[@name='2"+floatAppend+"']/doc[1]/float[@name='id'][.='8.0']",
+        "/response/lst[@name='expanded']/result[@name='2"+floatAppend+"']/doc[2]/float[@name='id'][.='6.0']"
     );
 
 
@@ -184,10 +225,10 @@ public class TestExpandComponent extends
         "*[count(/response/lst[@name='expanded']/result)=2]",
         "/response/result/doc[1]/float[@name='id'][.='1.0']",
         "/response/result/doc[2]/float[@name='id'][.='5.0']",
-        "/response/lst[@name='expanded']/result[@name='group1']/doc[1]/float[@name='id'][.='7.0']",
-        "/response/lst[@name='expanded']/result[@name='group1']/doc[2]/float[@name='id'][.='2.0']",
-        "/response/lst[@name='expanded']/result[@name='group2']/doc[1]/float[@name='id'][.='8.0']",
-        "/response/lst[@name='expanded']/result[@name='group2']/doc[2]/float[@name='id'][.='6.0']"
+        "/response/lst[@name='expanded']/result[@name='1"+floatAppend+"']/doc[1]/float[@name='id'][.='7.0']",
+        "/response/lst[@name='expanded']/result[@name='1"+floatAppend+"']/doc[2]/float[@name='id'][.='2.0']",
+        "/response/lst[@name='expanded']/result[@name='2"+floatAppend+"']/doc[1]/float[@name='id'][.='8.0']",
+        "/response/lst[@name='expanded']/result[@name='2"+floatAppend+"']/doc[2]/float[@name='id'][.='6.0']"
     );
 
     //Test overide expand.fq and expand.q
@@ -206,17 +247,17 @@ public class TestExpandComponent extends
         "*[count(/response/lst[@name='expanded']/result)=2]",
         "/response/result/doc[1]/float[@name='id'][.='1.0']",
         "/response/result/doc[2]/float[@name='id'][.='5.0']",
-        "/response/lst[@name='expanded']/result[@name='group1']/doc[1]/float[@name='id'][.='7.0']",
-        "/response/lst[@name='expanded']/result[@name='group1']/doc[2]/float[@name='id'][.='2.0']",
-        "/response/lst[@name='expanded']/result[@name='group2']/doc[1]/float[@name='id'][.='8.0']",
-        "/response/lst[@name='expanded']/result[@name='group2']/doc[2]/float[@name='id'][.='6.0']"
+        "/response/lst[@name='expanded']/result[@name='1"+floatAppend+"']/doc[1]/float[@name='id'][.='7.0']",
+        "/response/lst[@name='expanded']/result[@name='1"+floatAppend+"']/doc[2]/float[@name='id'][.='2.0']",
+        "/response/lst[@name='expanded']/result[@name='2"+floatAppend+"']/doc[1]/float[@name='id'][.='8.0']",
+        "/response/lst[@name='expanded']/result[@name='2"+floatAppend+"']/doc[2]/float[@name='id'][.='6.0']"
     );
 
     //Test expand.rows
 
     params = new ModifiableSolrParams();
     params.add("q", "*:*");
-    params.add("fq", "{!collapse field="+group+"}");
+    params.add("fq", "{!collapse field="+group+hint+"}");
     params.add("defType", "edismax");
     params.add("bf", "field(test_ti)");
     params.add("expand", "true");
@@ -224,12 +265,12 @@ public class TestExpandComponent extends
     params.add("expand.rows", "1");
     assertQ(req(params), "*[count(/response/result/doc)=2]",
         "*[count(/response/lst[@name='expanded']/result)=2]",
-        "*[count(/response/lst[@name='expanded']/result[@name='group1']/doc)=1]",
-        "*[count(/response/lst[@name='expanded']/result[@name='group2']/doc)=1]",
+        "*[count(/response/lst[@name='expanded']/result[@name='1"+floatAppend+"']/doc)=1]",
+        "*[count(/response/lst[@name='expanded']/result[@name='2"+floatAppend+"']/doc)=1]",
         "/response/result/doc[1]/float[@name='id'][.='2.0']",
         "/response/result/doc[2]/float[@name='id'][.='6.0']",
-        "/response/lst[@name='expanded']/result[@name='group1']/doc[1]/float[@name='id'][.='7.0']",
-        "/response/lst[@name='expanded']/result[@name='group2']/doc[1]/float[@name='id'][.='8.0']"
+        "/response/lst[@name='expanded']/result[@name='1"+floatAppend+"']/doc[1]/float[@name='id'][.='7.0']",
+        "/response/lst[@name='expanded']/result[@name='2"+floatAppend+"']/doc[1]/float[@name='id'][.='8.0']"
     );
 
 
@@ -237,7 +278,7 @@ public class TestExpandComponent extends
 
     params = new ModifiableSolrParams();
     params.add("q", "test_ti:5");
-    params.add("fq", "{!collapse field="+group+"}");
+    params.add("fq", "{!collapse field="+group+hint+"}");
     params.add("defType", "edismax");
     params.add("bf", "field(test_ti)");
     params.add("expand", "true");
@@ -251,7 +292,7 @@ public class TestExpandComponent extends
 
     params = new ModifiableSolrParams();
     params.add("q", "test_ti:5532535");
-    params.add("fq", "{!collapse field="+group+"}");
+    params.add("fq", "{!collapse field="+group+hint+"}");
     params.add("defType", "edismax");
     params.add("bf", "field(test_ti)");
     params.add("expand", "true");
@@ -265,7 +306,7 @@ public class TestExpandComponent extends
 
     params = new ModifiableSolrParams();
     params.add("q", "*:*");
-    params.add("fq", "{!collapse field="+group+"}");
+    params.add("fq", "{!collapse field="+group+hint+"}");
     params.add("defType", "edismax");
     params.add("bf", "field(test_ti)");
     params.add("expand", "true");
@@ -274,10 +315,10 @@ public class TestExpandComponent extends
         "*[count(/response/lst[@name='expanded']/result)=2]",
         "/response/result/doc[1]/float[@name='id'][.='2.0']",
         "/response/result/doc[2]/float[@name='id'][.='6.0']",
-        "/response/lst[@name='expanded']/result[@name='group1']/doc[1]/float[@name='id'][.='1.0']",
-        "/response/lst[@name='expanded']/result[@name='group1']/doc[2]/float[@name='id'][.='7.0']",
-        "/response/lst[@name='expanded']/result[@name='group2']/doc[1]/float[@name='id'][.='5.0']",
-        "/response/lst[@name='expanded']/result[@name='group2']/doc[2]/float[@name='id'][.='8.0']"
+        "/response/lst[@name='expanded']/result[@name='1"+floatAppend+"']/doc[1]/float[@name='id'][.='1.0']",
+        "/response/lst[@name='expanded']/result[@name='1"+floatAppend+"']/doc[2]/float[@name='id'][.='7.0']",
+        "/response/lst[@name='expanded']/result[@name='2"+floatAppend+"']/doc[1]/float[@name='id'][.='5.0']",
+        "/response/lst[@name='expanded']/result[@name='2"+floatAppend+"']/doc[2]/float[@name='id'][.='8.0']"
     );
   }
 

Modified: lucene/dev/branches/lucene6005/solr/core/src/test/org/apache/solr/highlight/DummyHighlighter.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6005/solr/core/src/test/org/apache/solr/highlight/DummyHighlighter.java?rev=1658277&r1=1658276&r2=1658277&view=diff
==============================================================================
--- lucene/dev/branches/lucene6005/solr/core/src/test/org/apache/solr/highlight/DummyHighlighter.java (original)
+++ lucene/dev/branches/lucene6005/solr/core/src/test/org/apache/solr/highlight/DummyHighlighter.java Sun Feb  8 23:53:14 2015
@@ -16,15 +16,14 @@
  */
 package org.apache.solr.highlight;
 
-import java.io.IOException;
-
 import org.apache.lucene.search.Query;
 import org.apache.solr.common.util.NamedList;
 import org.apache.solr.common.util.SimpleOrderedMap;
-import org.apache.solr.core.SolrConfig;
 import org.apache.solr.request.SolrQueryRequest;
 import org.apache.solr.search.DocList;
 
+import java.io.IOException;
+
 public class DummyHighlighter extends SolrHighlighter {
 
   @Override
@@ -35,9 +34,4 @@ public class DummyHighlighter extends So
     return fragments;
   }
 
-  @Override
-  public void initalize(SolrConfig config) {
-    // do nothing
-  }
-
 }

Modified: lucene/dev/branches/lucene6005/solr/core/src/test/org/apache/solr/highlight/HighlighterTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6005/solr/core/src/test/org/apache/solr/highlight/HighlighterTest.java?rev=1658277&r1=1658276&r2=1658277&view=diff
==============================================================================
--- lucene/dev/branches/lucene6005/solr/core/src/test/org/apache/solr/highlight/HighlighterTest.java (original)
+++ lucene/dev/branches/lucene6005/solr/core/src/test/org/apache/solr/highlight/HighlighterTest.java Sun Feb  8 23:53:14 2015
@@ -17,17 +17,27 @@
 
 package org.apache.solr.highlight;
 
+import java.io.IOException;
 import java.util.Arrays;
+import java.util.Collections;
 import java.util.HashMap;
 import java.util.List;
 
 import org.apache.lucene.analysis.Analyzer;
 import org.apache.lucene.analysis.TokenStream;
 import org.apache.lucene.analysis.core.WhitespaceAnalyzer;
+import org.apache.lucene.index.Term;
+import org.apache.lucene.search.Query;
+import org.apache.lucene.search.spans.SpanPayloadCheckQuery;
+import org.apache.lucene.search.spans.SpanTermQuery;
 import org.apache.solr.SolrTestCaseJ4;
 import org.apache.solr.common.params.HighlightParams;
 import org.apache.solr.handler.component.HighlightComponent;
+import org.apache.solr.handler.component.ResponseBuilder;
+import org.apache.solr.handler.component.SearchComponent;
 import org.apache.solr.request.SolrQueryRequest;
+import org.apache.solr.response.SolrQueryResponse;
+import org.apache.solr.search.DocSet;
 import org.apache.solr.util.TestHarness;
 import org.junit.After;
 import org.junit.BeforeClass;
@@ -1053,4 +1063,37 @@ public class HighlighterTest extends Sol
     );
 
   }
+
+  @Test
+  public void payloadFilteringSpanQuery() throws IOException {
+    clearIndex();
+
+    String FIELD_NAME = "payloadDelimited";
+    assertU(adoc("id", "0", FIELD_NAME, "word|7 word|2"));
+    assertU(commit());
+
+    //We search at a lower level than typical Solr tests because there's no QParser for payloads
+
+    //Create query matching this payload
+    Query query = new SpanPayloadCheckQuery(new SpanTermQuery(new Term(FIELD_NAME, "word")),
+        Collections.singleton(new byte[]{0,0,0,7}));//bytes for integer 7
+
+    //invoke highlight component... the hard way
+    final SearchComponent hlComp = h.getCore().getSearchComponent("highlight");
+    SolrQueryRequest req = req("hl", "true", "hl.fl", FIELD_NAME, HighlightParams.USE_PHRASE_HIGHLIGHTER, "true");
+    try {
+      SolrQueryResponse resp = new SolrQueryResponse();
+      ResponseBuilder rb = new ResponseBuilder(req, resp, Collections.singletonList(hlComp));
+      rb.setHighlightQuery(query);
+      rb.setResults(req.getSearcher().getDocListAndSet(query, (DocSet) null, null, 0, 1));
+      //highlight:
+      hlComp.prepare(rb);
+      hlComp.process(rb);
+      //inspect response
+      final String[] snippets = (String[]) resp.getValues().findRecursive("highlighting", "0", FIELD_NAME);
+      assertEquals("<em>word|7</em> word|2", snippets[0]);
+    } finally {
+      req.close();
+    }
+  }
 }

Modified: lucene/dev/branches/lucene6005/solr/core/src/test/org/apache/solr/rest/SolrRestletTestBase.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6005/solr/core/src/test/org/apache/solr/rest/SolrRestletTestBase.java?rev=1658277&r1=1658276&r2=1658277&view=diff
==============================================================================
--- lucene/dev/branches/lucene6005/solr/core/src/test/org/apache/solr/rest/SolrRestletTestBase.java (original)
+++ lucene/dev/branches/lucene6005/solr/core/src/test/org/apache/solr/rest/SolrRestletTestBase.java Sun Feb  8 23:53:14 2015
@@ -21,6 +21,8 @@ import org.eclipse.jetty.servlet.Servlet
 import org.junit.BeforeClass;
 import org.restlet.ext.servlet.ServerServlet;
 
+import java.nio.file.Path;
+import java.util.Properties;
 import java.util.SortedMap;
 import java.util.TreeMap;
 
@@ -42,11 +44,25 @@ abstract public class SolrRestletTestBas
    */
   @BeforeClass
   public static void init() throws Exception {
+
+    Path tempDir = createTempDir();
+    Path coresDir = tempDir.resolve("cores");
+
+    System.setProperty("coreRootDirectory", coresDir.toString());
+    System.setProperty("configSetBaseDir", TEST_HOME());
+
     final SortedMap<ServletHolder,String> extraServlets = new TreeMap<>();
     final ServletHolder solrSchemaRestApi = new ServletHolder("SolrSchemaRestApi", ServerServlet.class);
     solrSchemaRestApi.setInitParameter("org.restlet.application", "org.apache.solr.rest.SolrSchemaRestApi");
     extraServlets.put(solrSchemaRestApi, "/schema/*");  // '/schema/*' matches '/schema', '/schema/', and '/schema/whatever...'
 
+    Properties props = new Properties();
+    props.setProperty("name", DEFAULT_TEST_CORENAME);
+    props.setProperty("config", "solrconfig.xml");
+    props.setProperty("schema", "schema-rest.xml");
+    props.setProperty("configSet", "collection1");
+
+    writeCoreProperties(coresDir.resolve("core"), props, "SolrRestletTestBase");
     createJettyAndHarness(TEST_HOME(), "solrconfig.xml", "schema-rest.xml", "/solr", true, extraServlets);
   }
 }

Modified: lucene/dev/branches/lucene6005/solr/core/src/test/org/apache/solr/rest/schema/TestBulkSchemaAPI.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6005/solr/core/src/test/org/apache/solr/rest/schema/TestBulkSchemaAPI.java?rev=1658277&r1=1658276&r2=1658277&view=diff
==============================================================================
--- lucene/dev/branches/lucene6005/solr/core/src/test/org/apache/solr/rest/schema/TestBulkSchemaAPI.java (original)
+++ lucene/dev/branches/lucene6005/solr/core/src/test/org/apache/solr/rest/schema/TestBulkSchemaAPI.java Sun Feb  8 23:53:14 2015
@@ -73,6 +73,9 @@ public class TestBulkSchemaAPI extends R
       jetty = null;
     }
     client = null;
+    if (restTestHarness != null) {
+      restTestHarness.close();
+    }
     restTestHarness = null;
   }
 

Modified: lucene/dev/branches/lucene6005/solr/core/src/test/org/apache/solr/rest/schema/TestCopyFieldCollectionResource.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6005/solr/core/src/test/org/apache/solr/rest/schema/TestCopyFieldCollectionResource.java?rev=1658277&r1=1658276&r2=1658277&view=diff
==============================================================================
--- lucene/dev/branches/lucene6005/solr/core/src/test/org/apache/solr/rest/schema/TestCopyFieldCollectionResource.java (original)
+++ lucene/dev/branches/lucene6005/solr/core/src/test/org/apache/solr/rest/schema/TestCopyFieldCollectionResource.java Sun Feb  8 23:53:14 2015
@@ -23,7 +23,10 @@ public class TestCopyFieldCollectionReso
   @Test
   public void testGetAllCopyFields() throws Exception {
     assertQ("/schema/copyfields?indent=on&wt=xml",
-            "/response/arr[@name='copyFields']/lst[    str[@name='source'][.='title']"
+        "/response/arr[@name='copyFields']/lst[    str[@name='source'][.='src_sub_no_ast_i']"
+            +"                                      and str[@name='dest'][.='title']]",
+
+        "/response/arr[@name='copyFields']/lst[    str[@name='source'][.='title']"
            +"                                      and str[@name='dest'][.='title_stemmed']"
            +"                                      and int[@name='maxChars'][.='200']]",
 
@@ -65,10 +68,6 @@ public class TestCopyFieldCollectionReso
 
             "/response/arr[@name='copyFields']/lst[    str[@name='source'][.='src_sub_no_ast_i']"
            +"                                      and str[@name='sourceDynamicBase'][.='*_i']"
-           +"                                      and str[@name='dest'][.='title']]",
-
-            "/response/arr[@name='copyFields']/lst[    str[@name='source'][.='src_sub_no_ast_i']"
-           +"                                      and str[@name='sourceDynamicBase'][.='*_i']"
            +"                                      and str[@name='dest'][.='*_s']]",
 
             "/response/arr[@name='copyFields']/lst[    str[@name='source'][.='src_sub_no_ast_i']"
@@ -105,19 +104,19 @@ public class TestCopyFieldCollectionReso
   @Test
   public void testJsonGetAllCopyFields() throws Exception {
     assertJQ("/schema/copyfields?indent=on&wt=json",
-             "/copyFields/[6]=={'source':'title','dest':'dest_sub_no_ast_s','destDynamicBase':'*_s'}",
+             "/copyFields/[1]=={'source':'src_sub_no_ast_i','dest':'title'}",
+             "/copyFields/[7]=={'source':'title','dest':'dest_sub_no_ast_s','destDynamicBase':'*_s'}",
 
-             "/copyFields/[7]=={'source':'*_i','dest':'title'}",
-             "/copyFields/[8]=={'source':'*_i','dest':'*_s'}",
-             "/copyFields/[9]=={'source':'*_i','dest':'*_dest_sub_s','destDynamicBase':'*_s'}",
-             "/copyFields/[10]=={'source':'*_i','dest':'dest_sub_no_ast_s','destDynamicBase':'*_s'}",
-
-             "/copyFields/[11]=={'source':'*_src_sub_i','sourceDynamicBase':'*_i','dest':'title'}",
-             "/copyFields/[12]=={'source':'*_src_sub_i','sourceDynamicBase':'*_i','dest':'*_s'}",
-             "/copyFields/[13]=={'source':'*_src_sub_i','sourceDynamicBase':'*_i','dest':'*_dest_sub_s','destDynamicBase':'*_s'}",
-             "/copyFields/[14]=={'source':'*_src_sub_i','sourceDynamicBase':'*_i','dest':'dest_sub_no_ast_s','destDynamicBase':'*_s'}",
+             "/copyFields/[8]=={'source':'*_i','dest':'title'}",
+             "/copyFields/[9]=={'source':'*_i','dest':'*_s'}",
+             "/copyFields/[10]=={'source':'*_i','dest':'*_dest_sub_s','destDynamicBase':'*_s'}",
+             "/copyFields/[11]=={'source':'*_i','dest':'dest_sub_no_ast_s','destDynamicBase':'*_s'}",
+
+             "/copyFields/[12]=={'source':'*_src_sub_i','sourceDynamicBase':'*_i','dest':'title'}",
+             "/copyFields/[13]=={'source':'*_src_sub_i','sourceDynamicBase':'*_i','dest':'*_s'}",
+             "/copyFields/[14]=={'source':'*_src_sub_i','sourceDynamicBase':'*_i','dest':'*_dest_sub_s','destDynamicBase':'*_s'}",
+             "/copyFields/[15]=={'source':'*_src_sub_i','sourceDynamicBase':'*_i','dest':'dest_sub_no_ast_s','destDynamicBase':'*_s'}",
 
-             "/copyFields/[15]=={'source':'src_sub_no_ast_i','sourceDynamicBase':'*_i','dest':'title'}",
              "/copyFields/[16]=={'source':'src_sub_no_ast_i','sourceDynamicBase':'*_i','dest':'*_s'}",
              "/copyFields/[17]=={'source':'src_sub_no_ast_i','sourceDynamicBase':'*_i','dest':'*_dest_sub_s','destDynamicBase':'*_s'}",
              "/copyFields/[18]=={'source':'src_sub_no_ast_i','sourceDynamicBase':'*_i','dest':'dest_sub_no_ast_s','destDynamicBase':'*_s'}");

Modified: lucene/dev/branches/lucene6005/solr/core/src/test/org/apache/solr/rest/schema/TestManagedSchemaDynamicFieldResource.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6005/solr/core/src/test/org/apache/solr/rest/schema/TestManagedSchemaDynamicFieldResource.java?rev=1658277&r1=1658276&r2=1658277&view=diff
==============================================================================
--- lucene/dev/branches/lucene6005/solr/core/src/test/org/apache/solr/rest/schema/TestManagedSchemaDynamicFieldResource.java (original)
+++ lucene/dev/branches/lucene6005/solr/core/src/test/org/apache/solr/rest/schema/TestManagedSchemaDynamicFieldResource.java Sun Feb  8 23:53:14 2015
@@ -16,11 +16,6 @@ package org.apache.solr.rest.schema;
  * limitations under the License.
  */
 
-import java.io.File;
-import java.util.SortedMap;
-import java.util.TreeMap;
-import java.util.regex.Pattern;
-
 import org.apache.commons.io.FileUtils;
 import org.apache.solr.util.RestTestBase;
 import org.eclipse.jetty.servlet.ServletHolder;
@@ -29,6 +24,11 @@ import org.junit.Before;
 import org.junit.Test;
 import org.restlet.ext.servlet.ServerServlet;
 
+import java.io.File;
+import java.util.SortedMap;
+import java.util.TreeMap;
+import java.util.regex.Pattern;
+
 public class TestManagedSchemaDynamicFieldResource extends RestTestBase {
 
   private static File tmpSolrHome;
@@ -63,6 +63,9 @@ public class TestManagedSchemaDynamicFie
       jetty = null;
     }
     client = null;
+    if (restTestHarness != null) {
+      restTestHarness.close();
+    }
     restTestHarness = null;
   }
 

Modified: lucene/dev/branches/lucene6005/solr/core/src/test/org/apache/solr/rest/schema/TestManagedSchemaFieldResource.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6005/solr/core/src/test/org/apache/solr/rest/schema/TestManagedSchemaFieldResource.java?rev=1658277&r1=1658276&r2=1658277&view=diff
==============================================================================
--- lucene/dev/branches/lucene6005/solr/core/src/test/org/apache/solr/rest/schema/TestManagedSchemaFieldResource.java (original)
+++ lucene/dev/branches/lucene6005/solr/core/src/test/org/apache/solr/rest/schema/TestManagedSchemaFieldResource.java Sun Feb  8 23:53:14 2015
@@ -16,11 +16,6 @@ package org.apache.solr.rest.schema;
  * limitations under the License.
  */
 
-import java.io.File;
-import java.util.SortedMap;
-import java.util.TreeMap;
-import java.util.regex.Pattern;
-
 import org.apache.commons.io.FileUtils;
 import org.apache.solr.util.RestTestBase;
 import org.eclipse.jetty.servlet.ServletHolder;
@@ -29,6 +24,11 @@ import org.junit.Before;
 import org.junit.Test;
 import org.restlet.ext.servlet.ServerServlet;
 
+import java.io.File;
+import java.util.SortedMap;
+import java.util.TreeMap;
+import java.util.regex.Pattern;
+
 public class TestManagedSchemaFieldResource extends RestTestBase {
 
   private static File tmpSolrHome;
@@ -63,6 +63,9 @@ public class TestManagedSchemaFieldResou
       jetty = null;
     }
     client = null;
+    if (restTestHarness != null) {
+      restTestHarness.close();
+    }
     restTestHarness = null;
   }
   

Modified: lucene/dev/branches/lucene6005/solr/core/src/test/org/apache/solr/rest/schema/TestManagedSchemaFieldTypeResource.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6005/solr/core/src/test/org/apache/solr/rest/schema/TestManagedSchemaFieldTypeResource.java?rev=1658277&r1=1658276&r2=1658277&view=diff
==============================================================================
--- lucene/dev/branches/lucene6005/solr/core/src/test/org/apache/solr/rest/schema/TestManagedSchemaFieldTypeResource.java (original)
+++ lucene/dev/branches/lucene6005/solr/core/src/test/org/apache/solr/rest/schema/TestManagedSchemaFieldTypeResource.java Sun Feb  8 23:53:14 2015
@@ -66,6 +66,11 @@ public class TestManagedSchemaFieldTypeR
     jetty = null;
     System.clearProperty("managed.schema.mutable");
     System.clearProperty("enable.update.log");
+    
+    if (restTestHarness != null) {
+      restTestHarness.close();
+    }
+    restTestHarness = null;
   }
   
   @Test

Modified: lucene/dev/branches/lucene6005/solr/core/src/test/org/apache/solr/rest/schema/TestSchemaResource.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6005/solr/core/src/test/org/apache/solr/rest/schema/TestSchemaResource.java?rev=1658277&r1=1658276&r2=1658277&view=diff
==============================================================================
--- lucene/dev/branches/lucene6005/solr/core/src/test/org/apache/solr/rest/schema/TestSchemaResource.java (original)
+++ lucene/dev/branches/lucene6005/solr/core/src/test/org/apache/solr/rest/schema/TestSchemaResource.java Sun Feb  8 23:53:14 2015
@@ -131,19 +131,19 @@ public class TestSchemaResource extends
              "/schema/dynamicFields/[1]/name=='ignored_*'",
              "/schema/dynamicFields/[2]/name=='*_mfacet'",
                  
-             "/schema/copyFields/[6]=={'source':'title','dest':'dest_sub_no_ast_s'}",
+             "/schema/copyFields/[1]=={'source':'src_sub_no_ast_i','dest':'title'}",
 
-             "/schema/copyFields/[7]=={'source':'*_i','dest':'title'}",
-             "/schema/copyFields/[8]=={'source':'*_i','dest':'*_s'}",
-             "/schema/copyFields/[9]=={'source':'*_i','dest':'*_dest_sub_s'}",
-             "/schema/copyFields/[10]=={'source':'*_i','dest':'dest_sub_no_ast_s'}",
+             "/schema/copyFields/[7]=={'source':'title','dest':'dest_sub_no_ast_s'}",
+             "/schema/copyFields/[8]=={'source':'*_i','dest':'title'}",
+             "/schema/copyFields/[9]=={'source':'*_i','dest':'*_s'}",
+             "/schema/copyFields/[10]=={'source':'*_i','dest':'*_dest_sub_s'}",
+             "/schema/copyFields/[11]=={'source':'*_i','dest':'dest_sub_no_ast_s'}",
 
-             "/schema/copyFields/[11]=={'source':'*_src_sub_i','dest':'title'}",
-             "/schema/copyFields/[12]=={'source':'*_src_sub_i','dest':'*_s'}",
-             "/schema/copyFields/[13]=={'source':'*_src_sub_i','dest':'*_dest_sub_s'}",
-             "/schema/copyFields/[14]=={'source':'*_src_sub_i','dest':'dest_sub_no_ast_s'}",
+             "/schema/copyFields/[12]=={'source':'*_src_sub_i','dest':'title'}",
+             "/schema/copyFields/[13]=={'source':'*_src_sub_i','dest':'*_s'}",
+             "/schema/copyFields/[14]=={'source':'*_src_sub_i','dest':'*_dest_sub_s'}",
+             "/schema/copyFields/[15]=={'source':'*_src_sub_i','dest':'dest_sub_no_ast_s'}",
 
-             "/schema/copyFields/[15]=={'source':'src_sub_no_ast_i','dest':'title'}",
              "/schema/copyFields/[16]=={'source':'src_sub_no_ast_i','dest':'*_s'}",
              "/schema/copyFields/[17]=={'source':'src_sub_no_ast_i','dest':'*_dest_sub_s'}",
              "/schema/copyFields/[18]=={'source':'src_sub_no_ast_i','dest':'dest_sub_no_ast_s'}");

Modified: lucene/dev/branches/lucene6005/solr/core/src/test/org/apache/solr/rest/schema/analysis/TestManagedStopFilterFactory.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6005/solr/core/src/test/org/apache/solr/rest/schema/analysis/TestManagedStopFilterFactory.java?rev=1658277&r1=1658276&r2=1658277&view=diff
==============================================================================
--- lucene/dev/branches/lucene6005/solr/core/src/test/org/apache/solr/rest/schema/analysis/TestManagedStopFilterFactory.java (original)
+++ lucene/dev/branches/lucene6005/solr/core/src/test/org/apache/solr/rest/schema/analysis/TestManagedStopFilterFactory.java Sun Feb  8 23:53:14 2015
@@ -66,6 +66,11 @@ public class TestManagedStopFilterFactor
     jetty = null;
     System.clearProperty("managed.schema.mutable");
     System.clearProperty("enable.update.log");
+    
+    if (restTestHarness != null) {
+      restTestHarness.close();
+    }
+    restTestHarness = null;
   }
 
 

Modified: lucene/dev/branches/lucene6005/solr/core/src/test/org/apache/solr/rest/schema/analysis/TestManagedSynonymFilterFactory.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6005/solr/core/src/test/org/apache/solr/rest/schema/analysis/TestManagedSynonymFilterFactory.java?rev=1658277&r1=1658276&r2=1658277&view=diff
==============================================================================
--- lucene/dev/branches/lucene6005/solr/core/src/test/org/apache/solr/rest/schema/analysis/TestManagedSynonymFilterFactory.java (original)
+++ lucene/dev/branches/lucene6005/solr/core/src/test/org/apache/solr/rest/schema/analysis/TestManagedSynonymFilterFactory.java Sun Feb  8 23:53:14 2015
@@ -63,6 +63,11 @@ public class TestManagedSynonymFilterFac
     FileUtils.deleteDirectory(tmpSolrHome);
     System.clearProperty("managed.schema.mutable");
     System.clearProperty("enable.update.log");
+    
+    if (restTestHarness != null) {
+      restTestHarness.close();
+    }
+    restTestHarness = null;
   }
   
   @Test

Modified: lucene/dev/branches/lucene6005/solr/core/src/test/org/apache/solr/schema/TestBinaryField.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6005/solr/core/src/test/org/apache/solr/schema/TestBinaryField.java?rev=1658277&r1=1658276&r2=1658277&view=diff
==============================================================================
--- lucene/dev/branches/lucene6005/solr/core/src/test/org/apache/solr/schema/TestBinaryField.java (original)
+++ lucene/dev/branches/lucene6005/solr/core/src/test/org/apache/solr/schema/TestBinaryField.java Sun Feb  8 23:53:14 2015
@@ -14,11 +14,14 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
+
 package org.apache.solr.schema;
 
+import com.google.common.base.Charsets;
 import org.apache.commons.io.FileUtils;
 import org.apache.solr.SolrJettyTestBase;
 import org.apache.solr.SolrTestCaseJ4;
+import org.apache.solr.SolrTestCaseJ4.SuppressSSL;
 import org.apache.solr.client.solrj.SolrClient;
 import org.apache.solr.client.solrj.SolrQuery;
 import org.apache.solr.client.solrj.beans.Field;
@@ -29,9 +32,14 @@ import org.apache.solr.common.SolrInputD
 import org.junit.BeforeClass;
 
 import java.io.File;
+import java.io.OutputStreamWriter;
+import java.io.Writer;
 import java.nio.ByteBuffer;
+import java.nio.file.Files;
 import java.util.List;
+import java.util.Properties;
 
+@SuppressSSL(bugUrl = "https://issues.apache.org/jira/browse/SOLR-5776")
 public class TestBinaryField extends SolrJettyTestBase {
 
   @BeforeClass
@@ -57,94 +65,102 @@ public class TestBinaryField extends Sol
     FileUtils.copyFile(new File(src_dir, "solrconfig.snippet.randomindexconfig.xml"), 
                        new File(confDir, "solrconfig.snippet.randomindexconfig.xml"));
 
+    try (Writer w = new OutputStreamWriter(Files.newOutputStream(collDir.toPath().resolve("core.properties")), Charsets.UTF_8)) {
+      Properties coreProps = new Properties();
+      coreProps.put("name", "collection1");
+      coreProps.store(w, "");
+    }
+
     createJetty(homeDir.getAbsolutePath(), null, null);
   }
 
 
   public void testSimple() throws Exception {
-    SolrClient client = getSolrClient();
-    byte[] buf = new byte[10];
-    for (int i = 0; i < 10; i++) {
-      buf[i] = (byte) i;
-    }
-    SolrInputDocument doc = null;
-    doc = new SolrInputDocument();
-    doc.addField("id", 1);
-    doc.addField("data", ByteBuffer.wrap(buf, 2, 5));
-    client.add(doc);
-
-    doc = new SolrInputDocument();
-    doc.addField("id", 2);
-    doc.addField("data", ByteBuffer.wrap(buf, 4, 3));
-    client.add(doc);
-
-    doc = new SolrInputDocument();
-    doc.addField("id", 3);
-    doc.addField("data", buf);
-    client.add(doc);
-
-    client.commit();
-
-    QueryResponse resp = client.query(new SolrQuery("*:*"));
-    SolrDocumentList res = resp.getResults();
-    List<Bean> beans = resp.getBeans(Bean.class);
-    assertEquals(3, res.size());
-    assertEquals(3, beans.size());
-    for (SolrDocument d : res) {
-      Integer id = (Integer) d.getFieldValue("id");
-      byte[] data = (byte[]) d.getFieldValue("data");
-      if (id == 1) {
-        assertEquals(5, data.length);
-        for (int i = 0; i < data.length; i++) {
-          byte b = data[i];
-          assertEquals((byte)(i + 2), b);
-        }
-
-      } else if (id == 2) {
-        assertEquals(3, data.length);
-        for (int i = 0; i < data.length; i++) {
-          byte b = data[i];
-          assertEquals((byte)(i + 4), b);
-        }
-
-
-      } else if (id == 3) {
-        assertEquals(10, data.length);
-        for (int i = 0; i < data.length; i++) {
-          byte b = data[i];
-          assertEquals((byte)i, b);
-        }
-
+    try (SolrClient client = getSolrClient()) {
+      byte[] buf = new byte[10];
+      for (int i = 0; i < 10; i++) {
+        buf[i] = (byte) i;
       }
+      SolrInputDocument doc = null;
+      doc = new SolrInputDocument();
+      doc.addField("id", 1);
+      doc.addField("data", ByteBuffer.wrap(buf, 2, 5));
+      client.add(doc);
+
+      doc = new SolrInputDocument();
+      doc.addField("id", 2);
+      doc.addField("data", ByteBuffer.wrap(buf, 4, 3));
+      client.add(doc);
+
+      doc = new SolrInputDocument();
+      doc.addField("id", 3);
+      doc.addField("data", buf);
+      client.add(doc);
+
+      client.commit();
+
+      QueryResponse resp = client.query(new SolrQuery("*:*"));
+      SolrDocumentList res = resp.getResults();
+      List<Bean> beans = resp.getBeans(Bean.class);
+      assertEquals(3, res.size());
+      assertEquals(3, beans.size());
+      for (SolrDocument d : res) {
+
+        Integer id = (Integer) d.getFieldValue("id");
+        byte[] data = (byte[]) d.getFieldValue("data");
+        if (id == 1) {
+          assertEquals(5, data.length);
+          for (int i = 0; i < data.length; i++) {
+            byte b = data[i];
+            assertEquals((byte) (i + 2), b);
+          }
+
+        } else if (id == 2) {
+          assertEquals(3, data.length);
+          for (int i = 0; i < data.length; i++) {
+            byte b = data[i];
+            assertEquals((byte) (i + 4), b);
+          }
+
+
+        } else if (id == 3) {
+          assertEquals(10, data.length);
+          for (int i = 0; i < data.length; i++) {
+            byte b = data[i];
+            assertEquals((byte) i, b);
+          }
 
-    }
-    for (Bean d : beans) {
-      Integer id = d.id;
-      byte[] data = d.data;
-      if (id == 1) {
-        assertEquals(5, data.length);
-        for (int i = 0; i < data.length; i++) {
-          byte b = data[i];
-          assertEquals((byte)(i + 2), b);
-        }
-
-      } else if (id == 2) {
-        assertEquals(3, data.length);
-        for (int i = 0; i < data.length; i++) {
-          byte b = data[i];
-          assertEquals((byte)(i + 4), b);
         }
 
+      }
+      for (Bean d : beans) {
+        Integer id = d.id;
+        byte[] data = d.data;
+        if (id == 1) {
+          assertEquals(5, data.length);
+          for (int i = 0; i < data.length; i++) {
+            byte b = data[i];
+            assertEquals((byte) (i + 2), b);
+          }
+
+        } else if (id == 2) {
+          assertEquals(3, data.length);
+          for (int i = 0; i < data.length; i++) {
+            byte b = data[i];
+            assertEquals((byte) (i + 4), b);
+          }
+
+
+        } else if (id == 3) {
+          assertEquals(10, data.length);
+          for (int i = 0; i < data.length; i++) {
+            byte b = data[i];
+            assertEquals((byte) i, b);
+          }
 
-      } else if (id == 3) {
-        assertEquals(10, data.length);
-        for (int i = 0; i < data.length; i++) {
-          byte b = data[i];
-          assertEquals((byte)i, b);
         }
 
       }
-
     }
 
   }