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 [31/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/schema/TestBulkSchemaConcurrent.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6005/solr/core/src/test/org/apache/solr/schema/TestBulkSchemaConcurrent.java?rev=1658277&r1=1658276&r2=1658277&view=diff
==============================================================================
--- lucene/dev/branches/lucene6005/solr/core/src/test/org/apache/solr/schema/TestBulkSchemaConcurrent.java (original)
+++ lucene/dev/branches/lucene6005/solr/core/src/test/org/apache/solr/schema/TestBulkSchemaConcurrent.java Sun Feb  8 23:53:14 2015
@@ -18,6 +18,19 @@ package org.apache.solr.schema;
  */
 
 
+import static java.text.MessageFormat.format;
+import static org.apache.solr.rest.schema.TestBulkSchemaAPI.getCopyFields;
+import static org.apache.solr.rest.schema.TestBulkSchemaAPI.getObj;
+
+import java.io.StringReader;
+import java.nio.charset.StandardCharsets;
+import java.util.ArrayList;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+import java.util.concurrent.TimeUnit;
+
 import org.apache.solr.SolrTestCaseJ4;
 import org.apache.solr.client.solrj.SolrClient;
 import org.apache.solr.client.solrj.impl.HttpSolrClient;
@@ -26,25 +39,12 @@ import org.apache.solr.common.cloud.ZkSt
 import org.apache.solr.util.RESTfulServerProvider;
 import org.apache.solr.util.RestTestHarness;
 import org.junit.BeforeClass;
+import org.junit.Test;
 import org.noggit.JSONParser;
 import org.noggit.ObjectBuilder;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import java.io.IOException;
-import java.io.StringReader;
-import java.nio.charset.StandardCharsets;
-import java.util.ArrayList;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-import java.util.concurrent.TimeUnit;
-
-import static java.text.MessageFormat.format;
-import static org.apache.solr.rest.schema.TestBulkSchemaAPI.getCopyFields;
-import static org.apache.solr.rest.schema.TestBulkSchemaAPI.getObj;
-
 public class TestBulkSchemaConcurrent  extends AbstractFullDistribZkTestBase {
   static final Logger log =  LoggerFactory.getLogger(TestBulkSchemaConcurrent.class);
   private List<RestTestHarness> restTestHarnesses = new ArrayList<>();
@@ -70,8 +70,17 @@ public class TestBulkSchemaConcurrent  e
       restTestHarnesses.add(harness);
     }
   }
+
   @Override
-  public void doTest() throws Exception {
+  public void distribTearDown() throws Exception {
+    super.distribTearDown();
+    for (RestTestHarness r : restTestHarnesses) {
+      r.close();
+    }
+  }
+
+  @Test
+  public void test() throws Exception {
 
     final int threadCount = 5;
     setupHarnesses();
@@ -88,8 +97,6 @@ public class TestBulkSchemaConcurrent  e
             ArrayList errs = new ArrayList();
             collectErrors.add(errs);
             invokeBulkCall(finalI,errs);
-          } catch (IOException e) {
-            e.printStackTrace();
           } catch (Exception e) {
             e.printStackTrace();
           }
@@ -105,8 +112,7 @@ public class TestBulkSchemaConcurrent  e
     boolean success = true;
 
     for (List e : collectErrors) {
-      if(e== null) continue;
-      if(!e.isEmpty()){
+      if(e != null &&  !e.isEmpty()){
         success = false;
         log.error(e.toString());
       }
@@ -166,27 +172,31 @@ public class TestBulkSchemaConcurrent  e
     }
 
     //get another node
-    RestTestHarness harness = restTestHarnesses.get(r.nextInt(restTestHarnesses.size()));
-    long startTime = System.nanoTime();
-    boolean success = false;
-    long maxTimeoutMillis = 100000;
     Set<String> errmessages = new HashSet<>();
-    while ( ! success
-        && TimeUnit.MILLISECONDS.convert(System.nanoTime() - startTime, TimeUnit.NANOSECONDS) < maxTimeoutMillis) {
-      errmessages.clear();
-      Map m = getObj(harness, aField, "fields");
-      if(m== null) errmessages.add(format("field {0} not created", aField));
-
-      m = getObj(harness, dynamicFldName, "dynamicFields");
-      if(m== null) errmessages.add(format("dynamic field {0} not created", dynamicFldName));
-
-      List l = getCopyFields(harness, "a1");
-      if(!checkCopyField(l,aField,dynamicCopyFldDest))
-        errmessages.add(format("CopyField source={0},dest={1} not created" , aField,dynamicCopyFldDest));
-
-      m = getObj(harness, "mystr", "fieldTypes");
-      if(m == null) errmessages.add(format("new type {}  not created" , newFieldTypeName));
-      Thread.sleep(10);
+    RestTestHarness harness = restTestHarnesses.get(r.nextInt(restTestHarnesses.size()));
+    try {
+      long startTime = System.nanoTime();
+      boolean success = false;
+      long maxTimeoutMillis = 100000;
+      while (!success
+          && TimeUnit.MILLISECONDS.convert(System.nanoTime() - startTime, TimeUnit.NANOSECONDS) < maxTimeoutMillis) {
+        errmessages.clear();
+        Map m = getObj(harness, aField, "fields");
+        if (m == null) errmessages.add(format("field {0} not created", aField));
+        
+        m = getObj(harness, dynamicFldName, "dynamicFields");
+        if (m == null) errmessages.add(format("dynamic field {0} not created", dynamicFldName));
+        
+        List l = getCopyFields(harness, "a1");
+        if (!checkCopyField(l, aField, dynamicCopyFldDest)) errmessages
+            .add(format("CopyField source={0},dest={1} not created", aField, dynamicCopyFldDest));
+        
+        m = getObj(harness, "mystr", "fieldTypes");
+        if (m == null) errmessages.add(format("new type {}  not created", newFieldTypeName));
+        Thread.sleep(10);
+      }
+    } finally {
+      harness.close();
     }
     if(!errmessages.isEmpty()){
       errs.addAll(errmessages);

Modified: lucene/dev/branches/lucene6005/solr/core/src/test/org/apache/solr/schema/TestCloudManagedSchema.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6005/solr/core/src/test/org/apache/solr/schema/TestCloudManagedSchema.java?rev=1658277&r1=1658276&r2=1658277&view=diff
==============================================================================
--- lucene/dev/branches/lucene6005/solr/core/src/test/org/apache/solr/schema/TestCloudManagedSchema.java (original)
+++ lucene/dev/branches/lucene6005/solr/core/src/test/org/apache/solr/schema/TestCloudManagedSchema.java Sun Feb  8 23:53:14 2015
@@ -26,6 +26,7 @@ import org.apache.solr.common.params.Mod
 import org.apache.solr.common.util.NamedList;
 import org.apache.zookeeper.KeeperException;
 import org.junit.BeforeClass;
+import org.junit.Test;
 
 import java.io.IOException;
 import java.nio.charset.StandardCharsets;
@@ -47,9 +48,9 @@ public class TestCloudManagedSchema exte
   protected String getCloudSolrConfig() {
     return "solrconfig-managed-schema.xml";
   }
-      
-  @Override
-  public void doTest() throws Exception {
+
+  @Test
+  public void test() throws Exception {
     ModifiableSolrParams params = new ModifiableSolrParams();
     params.set(CoreAdminParams.ACTION, CoreAdminParams.CoreAdminAction.STATUS.toString());
     QueryRequest request = new QueryRequest(params);

Modified: lucene/dev/branches/lucene6005/solr/core/src/test/org/apache/solr/schema/TestCloudManagedSchemaConcurrent.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6005/solr/core/src/test/org/apache/solr/schema/TestCloudManagedSchemaConcurrent.java?rev=1658277&r1=1658276&r2=1658277&view=diff
==============================================================================
--- lucene/dev/branches/lucene6005/solr/core/src/test/org/apache/solr/schema/TestCloudManagedSchemaConcurrent.java (original)
+++ lucene/dev/branches/lucene6005/solr/core/src/test/org/apache/solr/schema/TestCloudManagedSchemaConcurrent.java Sun Feb  8 23:53:14 2015
@@ -16,6 +16,12 @@ package org.apache.solr.schema;
  * limitations under the License.
  */
 
+import java.util.ArrayList;
+import java.util.List;
+import java.util.SortedMap;
+import java.util.TreeMap;
+import java.util.concurrent.TimeUnit;
+
 import org.apache.solr.client.solrj.SolrClient;
 import org.apache.solr.client.solrj.embedded.JettySolrRunner;
 import org.apache.solr.client.solrj.impl.HttpSolrClient;
@@ -25,25 +31,17 @@ import org.apache.solr.common.cloud.Repl
 import org.apache.solr.common.cloud.Slice;
 import org.apache.solr.common.cloud.SolrZkClient;
 import org.apache.solr.common.cloud.ZkCoreNodeProps;
-import org.apache.solr.common.cloud.ZkStateReader;
 import org.apache.solr.util.BaseTestHarness;
 import org.apache.solr.util.RESTfulServerProvider;
 import org.apache.solr.util.RestTestHarness;
+import org.apache.zookeeper.data.Stat;
 import org.eclipse.jetty.servlet.ServletHolder;
+import org.junit.BeforeClass;
+import org.junit.Test;
 import org.restlet.ext.servlet.ServerServlet;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import org.apache.zookeeper.data.Stat;
-
-import org.junit.BeforeClass;
-
-import java.util.ArrayList;
-import java.util.List;
-import java.util.SortedMap;
-import java.util.TreeMap;
-import java.util.concurrent.TimeUnit;
-
 public class TestCloudManagedSchemaConcurrent extends AbstractFullDistribZkTestBase {
   private static final Logger log = LoggerFactory.getLogger(TestCloudManagedSchemaConcurrent.class);
   private static final String SUCCESS_XPATH = "/response/lst[@name='responseHeader']/int[@name='status'][.='0']";
@@ -56,10 +54,7 @@ public class TestCloudManagedSchemaConcu
 
   public TestCloudManagedSchemaConcurrent() {
     super();
-    fixShardCount = true;
-
     sliceCount = 4;
-    shardCount = 8;
   }
 
   @BeforeClass
@@ -69,6 +64,14 @@ public class TestCloudManagedSchemaConcu
   }
 
   @Override
+  public void distribTearDown() throws Exception {
+    super.distribTearDown();
+    for (RestTestHarness h : restTestHarnesses) {
+      h.close();
+    }
+  }
+
+  @Override
   protected String getCloudSolrConfig() {
     return "solrconfig-managed-schema.xml";
   }
@@ -239,10 +242,11 @@ public class TestCloudManagedSchemaConcu
 
     return expectedAddFieldTypes;
   }
-  
 
-  @Override
-  public void doTest() throws Exception {
+
+  @Test
+  @ShardsFixed(num = 8)
+  public void test() throws Exception {
     verifyWaitForSchemaUpdateToPropagate();
     setupHarnesses();
     concurrentOperationsTest();
@@ -352,8 +356,11 @@ public class TestCloudManagedSchemaConcu
         return coreUrl.endsWith("/") ? coreUrl.substring(0, coreUrl.length()-1) : coreUrl;
       }
     });
-
-    addFieldTypePut(harness, "fooInt", 15);
+    try {
+      addFieldTypePut(harness, "fooInt", 15);
+    } finally {
+      harness.close();
+    }
 
     // go into ZK to get the version of the managed schema after the update
     SolrZkClient zkClient = cloudClient.getZkStateReader().getZkClient();
@@ -410,21 +417,24 @@ public class TestCloudManagedSchemaConcu
         return replicaUrl.endsWith("/") ? replicaUrl.substring(0, replicaUrl.length()-1) : replicaUrl;
       }
     });
-
-    long waitMs = waitSecs * 1000L;
-    if (waitMs > 0) Thread.sleep(waitMs); // wait a moment for the zk watcher to fire
-
     try {
-      testHarness.validateQuery("/schema/zkversion?wt=xml", "//zkversion=" + schemaZkVersion);
-    } catch (Exception exc) {
-      if (retry) {
-        // brief wait before retrying
-        Thread.sleep(waitMs > 0 ? waitMs : 2000L);
-
+      long waitMs = waitSecs * 1000L;
+      if (waitMs > 0) Thread.sleep(waitMs); // wait a moment for the zk watcher to fire
+  
+      try {
         testHarness.validateQuery("/schema/zkversion?wt=xml", "//zkversion=" + schemaZkVersion);
-      } else {
-        throw exc;
+      } catch (Exception exc) {
+        if (retry) {
+          // brief wait before retrying
+          Thread.sleep(waitMs > 0 ? waitMs : 2000L);
+  
+          testHarness.validateQuery("/schema/zkversion?wt=xml", "//zkversion=" + schemaZkVersion);
+        } else {
+          throw exc;
+        }
       }
+    } finally {
+      testHarness.close();
     }
   }
 

Modified: lucene/dev/branches/lucene6005/solr/core/src/test/org/apache/solr/schema/TestCloudSchemaless.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6005/solr/core/src/test/org/apache/solr/schema/TestCloudSchemaless.java?rev=1658277&r1=1658276&r2=1658277&view=diff
==============================================================================
--- lucene/dev/branches/lucene6005/solr/core/src/test/org/apache/solr/schema/TestCloudSchemaless.java (original)
+++ lucene/dev/branches/lucene6005/solr/core/src/test/org/apache/solr/schema/TestCloudSchemaless.java Sun Feb  8 23:53:14 2015
@@ -27,8 +27,9 @@ import org.apache.solr.util.BaseTestHarn
 import org.apache.solr.util.RESTfulServerProvider;
 import org.apache.solr.util.RestTestHarness;
 import org.eclipse.jetty.servlet.ServletHolder;
+import org.junit.After;
 import org.junit.BeforeClass;
-import org.junit.Before;
+import org.junit.Test;
 import org.restlet.ext.servlet.ServerServlet;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -48,23 +49,27 @@ public class TestCloudSchemaless extends
   private static final Logger log = LoggerFactory.getLogger(TestCloudManagedSchemaConcurrent.class);
   private static final String SUCCESS_XPATH = "/response/lst[@name='responseHeader']/int[@name='status'][.='0']";
 
-  @Before
   @Override
-  public void setUp() throws Exception {
+  public void distribSetUp() throws Exception {
 
-    super.setUp();
+    super.distribSetUp();
 
     useJettyDataDir = false;
 
     System.setProperty("numShards", Integer.toString(sliceCount));
   }
+  
+  @After
+  public void teardDown() throws Exception {
+    super.tearDown();
+    for (RestTestHarness h : restTestHarnesses) {
+      h.close();
+    }
+  }
 
   public TestCloudSchemaless() {
     schemaString = "schema-add-schema-fields-update-processor.xml";
-    fixShardCount = true;
-
     sliceCount = 4;
-    shardCount = 8;
   }
 
   @BeforeClass
@@ -113,8 +118,9 @@ public class TestCloudSchemaless extends
     return expectedAddFields;
   }
 
-  @Override
-  public void doTest() throws Exception {
+  @Test
+  @ShardsFixed(num = 8)
+  public void test() throws Exception {
     setupHarnesses();
 
     // First, add a bunch of documents in a single update with the same new field.

Modified: lucene/dev/branches/lucene6005/solr/core/src/test/org/apache/solr/search/AnalyticsMergeStrategyTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6005/solr/core/src/test/org/apache/solr/search/AnalyticsMergeStrategyTest.java?rev=1658277&r1=1658276&r2=1658277&view=diff
==============================================================================
--- lucene/dev/branches/lucene6005/solr/core/src/test/org/apache/solr/search/AnalyticsMergeStrategyTest.java (original)
+++ lucene/dev/branches/lucene6005/solr/core/src/test/org/apache/solr/search/AnalyticsMergeStrategyTest.java Sun Feb  8 23:53:14 2015
@@ -22,8 +22,7 @@ import org.apache.solr.client.solrj.resp
 import org.apache.solr.common.params.ModifiableSolrParams;
 import org.apache.solr.common.util.NamedList;
 import org.junit.BeforeClass;
-
-import java.util.Arrays;
+import org.junit.Test;
 
 /**
  * Test for QueryComponent's distributed querying
@@ -33,8 +32,6 @@ import java.util.Arrays;
 public class AnalyticsMergeStrategyTest extends BaseDistributedSearchTestCase {
 
   public AnalyticsMergeStrategyTest() {
-    fixShardCount = true;
-    shardCount = 3;
     stress = 0;
   }
 
@@ -43,8 +40,9 @@ public class AnalyticsMergeStrategyTest
     initCore("solrconfig-analytics-query.xml", "schema15.xml");
   }
 
-  @Override
-  public void doTest() throws Exception {
+  @Test
+  @ShardsFixed(num = 3)
+  public void test() throws Exception {
     del("*:*");
 
     index_specific(0,"id","1", "sort_i", "5");

Modified: lucene/dev/branches/lucene6005/solr/core/src/test/org/apache/solr/search/MergeStrategyTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6005/solr/core/src/test/org/apache/solr/search/MergeStrategyTest.java?rev=1658277&r1=1658276&r2=1658277&view=diff
==============================================================================
--- lucene/dev/branches/lucene6005/solr/core/src/test/org/apache/solr/search/MergeStrategyTest.java (original)
+++ lucene/dev/branches/lucene6005/solr/core/src/test/org/apache/solr/search/MergeStrategyTest.java Sun Feb  8 23:53:14 2015
@@ -21,13 +21,12 @@ import org.apache.solr.BaseDistributedSe
 import org.apache.solr.client.solrj.response.QueryResponse;
 import org.apache.solr.common.SolrDocument;
 import org.apache.solr.common.SolrDocumentList;
-import org.apache.solr.common.params.CommonParams;
 import org.apache.solr.common.params.ModifiableSolrParams;
-import org.apache.solr.common.util.NamedList;
 import org.apache.solr.handler.component.MergeStrategy;
 import org.apache.solr.handler.component.ResponseBuilder;
 import org.apache.solr.handler.component.ShardRequest;
 import org.junit.BeforeClass;
+import org.junit.Test;
 
 import java.util.Arrays;
 
@@ -39,8 +38,6 @@ import java.util.Arrays;
 public class MergeStrategyTest extends BaseDistributedSearchTestCase {
 
   public MergeStrategyTest() {
-    fixShardCount = true;
-    shardCount = 3;
     stress = 0;
   }
 
@@ -49,8 +46,9 @@ public class MergeStrategyTest extends B
     initCore("solrconfig-plugcollector.xml", "schema15.xml");
   }
 
-  @Override
-  public void doTest() throws Exception {
+  @Test
+  @ShardsFixed(num = 3)
+  public void test() throws Exception {
     del("*:*");
 
     index_specific(0,"id","1", "sort_i", "5");

Modified: lucene/dev/branches/lucene6005/solr/core/src/test/org/apache/solr/search/QueryParsingTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6005/solr/core/src/test/org/apache/solr/search/QueryParsingTest.java?rev=1658277&r1=1658276&r2=1658277&view=diff
==============================================================================
--- lucene/dev/branches/lucene6005/solr/core/src/test/org/apache/solr/search/QueryParsingTest.java (original)
+++ lucene/dev/branches/lucene6005/solr/core/src/test/org/apache/solr/search/QueryParsingTest.java Sun Feb  8 23:53:14 2015
@@ -20,10 +20,9 @@ import org.apache.lucene.search.Query;
 import org.apache.lucene.search.Sort;
 import org.apache.lucene.search.SortField;
 import org.apache.solr.SolrTestCaseJ4;
-import org.apache.solr.schema.SchemaField;
-import org.apache.solr.search.SortSpec;
 import org.apache.solr.common.SolrException;
 import org.apache.solr.request.SolrQueryRequest;
+import org.apache.solr.schema.SchemaField;
 import org.junit.BeforeClass;
 import org.junit.Test;
 
@@ -79,7 +78,7 @@ public class QueryParsingTest extends So
     SortSpec spec;
     SolrQueryRequest req = req();
 
-    sort = QueryParsing.parseSort("score desc", req);
+    sort = QueryParsing.parseSortSpec("score desc", req).getSort();
     assertNull("sort", sort);//only 1 thing in the list, no Sort specified
 
     spec = QueryParsing.parseSortSpec("score desc", req);
@@ -89,7 +88,7 @@ public class QueryParsingTest extends So
     assertEquals(0, spec.getSchemaFields().size());
 
     // SOLR-4458 - using different case variations of asc and desc
-    sort = QueryParsing.parseSort("score aSc", req);
+    sort = QueryParsing.parseSortSpec("score aSc", req).getSort();
     SortField[] flds = sort.getSort();
     assertEquals(flds[0].getType(), SortField.Type.SCORE);
     assertTrue(flds[0].getReverse());
@@ -102,7 +101,7 @@ public class QueryParsingTest extends So
     assertEquals(1, spec.getSchemaFields().size());
     assertNull(spec.getSchemaFields().get(0));
 
-    sort = QueryParsing.parseSort("weight dEsC", req);
+    sort = QueryParsing.parseSortSpec("weight dEsC", req).getSort();
     flds = sort.getSort();
     assertEquals(flds[0].getType(), SortField.Type.FLOAT);
     assertEquals(flds[0].getField(), "weight");
@@ -118,7 +117,7 @@ public class QueryParsingTest extends So
     assertNotNull(spec.getSchemaFields().get(0));
     assertEquals("weight", spec.getSchemaFields().get(0).getName());
 
-    sort = QueryParsing.parseSort("weight desc,bday ASC", req);
+    sort = QueryParsing.parseSortSpec("weight desc,bday ASC", req).getSort();
     flds = sort.getSort();
     assertEquals(flds[0].getType(), SortField.Type.FLOAT);
     assertEquals(flds[0].getField(), "weight");
@@ -127,7 +126,7 @@ public class QueryParsingTest extends So
     assertEquals(flds[1].getField(), "bday");
     assertEquals(flds[1].getReverse(), false);
     //order aliases
-    sort = QueryParsing.parseSort("weight top,bday asc", req);
+    sort = QueryParsing.parseSortSpec("weight top,bday asc", req).getSort();
     flds = sort.getSort();
     assertEquals(flds[0].getType(), SortField.Type.FLOAT);
     assertEquals(flds[0].getField(), "weight");
@@ -135,7 +134,7 @@ public class QueryParsingTest extends So
     assertEquals(flds[1].getType(), SortField.Type.LONG);
     assertEquals(flds[1].getField(), "bday");
     assertEquals(flds[1].getReverse(), false);
-    sort = QueryParsing.parseSort("weight top,bday bottom", req);
+    sort = QueryParsing.parseSortSpec("weight top,bday bottom", req).getSort();
     flds = sort.getSort();
     assertEquals(flds[0].getType(), SortField.Type.FLOAT);
     assertEquals(flds[0].getField(), "weight");
@@ -145,20 +144,20 @@ public class QueryParsingTest extends So
     assertEquals(flds[1].getReverse(), false);
 
     //test weird spacing
-    sort = QueryParsing.parseSort("weight         DESC,            bday         asc", req);
+    sort = QueryParsing.parseSortSpec("weight         DESC,            bday         asc", req).getSort();
     flds = sort.getSort();
     assertEquals(flds[0].getType(), SortField.Type.FLOAT);
     assertEquals(flds[0].getField(), "weight");
     assertEquals(flds[1].getField(), "bday");
     assertEquals(flds[1].getType(), SortField.Type.LONG);
     //handles trailing commas
-    sort = QueryParsing.parseSort("weight desc,", req);
+    sort = QueryParsing.parseSortSpec("weight desc,", req).getSort();
     flds = sort.getSort();
     assertEquals(flds[0].getType(), SortField.Type.FLOAT);
     assertEquals(flds[0].getField(), "weight");
 
     //test functions
-    sort = QueryParsing.parseSort("pow(weight, 2) desc", req);
+    sort = QueryParsing.parseSortSpec("pow(weight, 2) desc", req).getSort();
     flds = sort.getSort();
     assertEquals(flds[0].getType(), SortField.Type.REWRITEABLE);
     //Not thrilled about the fragility of string matching here, but...
@@ -166,12 +165,12 @@ public class QueryParsingTest extends So
     assertEquals(flds[0].getField(), "pow(float(weight),const(2))");
     
     //test functions (more deep)
-    sort = QueryParsing.parseSort("sum(product(r_f1,sum(d_f1,t_f1,1.0)),a_f1) asc", req);
+    sort = QueryParsing.parseSortSpec("sum(product(r_f1,sum(d_f1,t_f1,1.0)),a_f1) asc", req).getSort();
     flds = sort.getSort();
     assertEquals(flds[0].getType(), SortField.Type.REWRITEABLE);
     assertEquals(flds[0].getField(), "sum(product(float(r_f1),sum(float(d_f1),float(t_f1),const(1.0))),float(a_f1))");
 
-    sort = QueryParsing.parseSort("pow(weight,                 2.0)         desc", req);
+    sort = QueryParsing.parseSortSpec("pow(weight,                 2.0)         desc", req).getSort();
     flds = sort.getSort();
     assertEquals(flds[0].getType(), SortField.Type.REWRITEABLE);
     //Not thrilled about the fragility of string matching here, but...
@@ -202,19 +201,19 @@ public class QueryParsingTest extends So
     assertEquals("bday", schemaFlds.get(2).getName());
     
     //handles trailing commas
-    sort = QueryParsing.parseSort("weight desc,", req);
+    sort = QueryParsing.parseSortSpec("weight desc,", req).getSort();
     flds = sort.getSort();
     assertEquals(flds[0].getType(), SortField.Type.FLOAT);
     assertEquals(flds[0].getField(), "weight");
 
     //Test literals in functions
-    sort = QueryParsing.parseSort("strdist(foo_s1, \"junk\", jw) desc", req);
+    sort = QueryParsing.parseSortSpec("strdist(foo_s1, \"junk\", jw) desc", req).getSort();
     flds = sort.getSort();
     assertEquals(flds[0].getType(), SortField.Type.REWRITEABLE);
     //the value sources get wrapped, so the out field is different than the input
     assertEquals(flds[0].getField(), "strdist(str(foo_s1),literal(junk), dist=org.apache.lucene.search.spell.JaroWinklerDistance)");
 
-    sort = QueryParsing.parseSort("", req);
+    sort = QueryParsing.parseSortSpec("", req).getSort();
     assertNull(sort);
 
     spec = QueryParsing.parseSortSpec("", req);
@@ -231,40 +230,40 @@ public class QueryParsingTest extends So
 
     //test some bad vals
     try {
-      sort = QueryParsing.parseSort("weight, desc", req);
+      sort = QueryParsing.parseSortSpec("weight, desc", req).getSort();
       assertTrue(false);
     } catch (SolrException e) {
       //expected
     }
     try {
-      sort = QueryParsing.parseSort("w", req);
+      sort = QueryParsing.parseSortSpec("w", req).getSort();
       assertTrue(false);
     } catch (SolrException e) {
       //expected
     }
     try {
-      sort = QueryParsing.parseSort("weight desc, bday", req);
+      sort = QueryParsing.parseSortSpec("weight desc, bday", req).getSort();
       assertTrue(false);
     } catch (SolrException e) {
     }
 
     try {
       //bad number of commas
-      sort = QueryParsing.parseSort("pow(weight,,2) desc, bday asc", req);
+      sort = QueryParsing.parseSortSpec("pow(weight,,2) desc, bday asc", req).getSort();
       assertTrue(false);
     } catch (SolrException e) {
     }
 
     try {
       //bad function
-      sort = QueryParsing.parseSort("pow() desc, bday asc", req);
+      sort = QueryParsing.parseSortSpec("pow() desc, bday asc", req).getSort();
       assertTrue(false);
     } catch (SolrException e) {
     }
 
     try {
       //bad number of parens
-      sort = QueryParsing.parseSort("pow((weight,2) desc, bday asc", req);
+      sort = QueryParsing.parseSortSpec("pow((weight,2) desc, bday asc", req).getSort();
       assertTrue(false);
     } catch (SolrException e) {
     }

Modified: lucene/dev/branches/lucene6005/solr/core/src/test/org/apache/solr/search/TestCollapseQParserPlugin.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6005/solr/core/src/test/org/apache/solr/search/TestCollapseQParserPlugin.java?rev=1658277&r1=1658276&r2=1658277&view=diff
==============================================================================
--- lucene/dev/branches/lucene6005/solr/core/src/test/org/apache/solr/search/TestCollapseQParserPlugin.java (original)
+++ lucene/dev/branches/lucene6005/solr/core/src/test/org/apache/solr/search/TestCollapseQParserPlugin.java Sun Feb  8 23:53:14 2015
@@ -17,6 +17,14 @@
 
 package org.apache.solr.search;
 
+import java.util.Collections;
+import java.util.List;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Set;
+import java.util.HashSet;
+import java.util.Iterator;
+
 import org.apache.lucene.util.LuceneTestCase.SuppressCodecs;
 import org.apache.solr.SolrTestCaseJ4;
 import org.apache.solr.common.SolrException;
@@ -45,13 +53,102 @@ public class TestCollapseQParserPlugin e
   }
 
   @Test
-  public void testCollapseQueries() 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"};
+  public void testStringCollapse() throws Exception {
+    List<String> types = new ArrayList();
+    types.add("group_s");
+    types.add("group_s_dv");
+    Collections.shuffle(types, random());
+    String group = types.get(0);
+    String hint = (random().nextBoolean() ? " hint="+CollapsingQParserPlugin.HINT_TOP_FC : "");
+    testCollapseQueries(group, hint, false);
+  }
+
+
+  @Test
+  public void testNumericCollapse() throws Exception {
+    List<String> types = new ArrayList();
+    types.add("group_i");
+    types.add("group_ti_dv");
+    types.add("group_f");
+    types.add("group_tf_dv");
+    Collections.shuffle(types, random());
+    String group = types.get(0);
+    String hint = "";
+    testCollapseQueries(group, hint, true);
+  }
+
+  @Test
+
+  public void testMergeBoost() throws Exception {
+
+    Set<Integer> boosted = new HashSet();
+    Set<Integer> results = new HashSet();
+
+    for(int i=0; i<200; i++) {
+      boosted.add(random().nextInt(1000));
+    }
+
+    for(int i=0; i<200; i++) {
+      results.add(random().nextInt(1000));
+    }
+
+    int[] boostedArray = new int[boosted.size()];
+    int[] resultsArray = new int[results.size()];
+
+    Iterator<Integer> boostIt = boosted.iterator();
+    int index = 0;
+    while(boostIt.hasNext()) {
+      boostedArray[index++] = boostIt.next();
+    }
+
+    Iterator<Integer> resultsIt = results.iterator();
+    index = 0;
+    while(resultsIt.hasNext()) {
+      resultsArray[index++] = resultsIt.next();
+    }
+
+    Arrays.sort(boostedArray);
+    Arrays.sort(resultsArray);
+
+    CollapsingQParserPlugin.MergeBoost mergeBoost = new CollapsingQParserPlugin.MergeBoost(boostedArray);
+
+    List<Integer> boostedResults = new ArrayList();
+
+    for(int i=0; i<resultsArray.length; i++) {
+      int result = resultsArray[i];
+      if(mergeBoost.boost(result)) {
+        boostedResults.add(result);
+      }
+    }
+
+    List<Integer> controlResults = new ArrayList();
+
+    for(int i=0; i<resultsArray.length; i++) {
+      int result = resultsArray[i];
+      if(Arrays.binarySearch(boostedArray, result) > -1) {
+        controlResults.add(result);
+      }
+    }
+
+    if(boostedResults.size() == controlResults.size()) {
+      for(int i=0; i<boostedResults.size(); i++) {
+        if(!boostedResults.get(i).equals(controlResults.get(i).intValue())) {
+          throw new Exception("boosted results do not match control results, boostedResults size:"+boostedResults.toString()+", controlResults size:"+controlResults.toString());
+        }
+      }
+    } else {
+      throw new Exception("boosted results do not match control results, boostedResults size:"+boostedResults.toString()+", controlResults size:"+controlResults.toString());
+    }
+  }
+
+
+
+  private void testCollapseQueries(String group, String hint, boolean numeric) throws Exception {
+
+    String[] doc = {"id","1", "term_s", "YYYY", group, "1", "test_ti", "5", "test_tl", "10", "test_tf", "2000"};
     assertU(adoc(doc));
     assertU(commit());
-    String[] doc1 = {"id","2", "term_s","YYYY", group, "group1", "test_ti", "50", "test_tl", "100", "test_tf", "200"};
+    String[] doc1 = {"id","2", "term_s","YYYY", group, "1", "test_ti", "50", "test_tl", "100", "test_tf", "200"};
     assertU(adoc(doc1));
 
 
@@ -63,19 +160,25 @@ public class TestCollapseQParserPlugin e
     assertU(adoc(doc3));
 
 
-    String[] doc4 = {"id","5", "term_s", "YYYY", group, "group2", "test_ti", "4", "test_tl", "10", "test_tf", "2000"};
+    String[] doc4 = {"id","5", "term_s", "YYYY", group, "2", "test_ti", "4", "test_tl", "10", "test_tf", "2000"};
     assertU(adoc(doc4));
     assertU(commit());
-    String[] doc5 = {"id","6", "term_s","YYYY", group, "group2", "test_ti", "10", "test_tl", "100", "test_tf", "200"};
+    String[] doc5 = {"id","6", "term_s","YYYY", group, "2", "test_ti", "10", "test_tl", "100", "test_tf", "200"};
     assertU(adoc(doc5));
     assertU(commit());
 
+    String[] doc6 = {"id","7", "term_s", "YYYY", group, "1", "test_ti", "8", "test_tl", "50", "test_tf", "300"};
+    assertU(adoc(doc6));
+    assertU(commit());
+
+
+
 
 
     //Test collapse by score and following sort by score
     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)");
     assertQ(req(params, "indent", "on"), "*[count(//doc)=2]",
@@ -87,7 +190,7 @@ public class TestCollapseQParserPlugin e
     // SOLR-5544 test ordering with empty sort param
     params = new ModifiableSolrParams();
     params.add("q", "*:*");
-    params.add("fq", "{!collapse field="+group+" nullPolicy=expand min=test_tf}");
+    params.add("fq", "{!collapse field="+group+" nullPolicy=expand min=test_tf"+hint+"}");
     params.add("defType", "edismax");
     params.add("bf", "field(test_ti)");
     params.add("sort","");
@@ -101,7 +204,7 @@ public class TestCollapseQParserPlugin e
     // Test value source collapse criteria
     params = new ModifiableSolrParams();
     params.add("q", "*:*");
-    params.add("fq", "{!collapse field="+group+" nullPolicy=collapse min=field(test_ti)}");
+    params.add("fq", "{!collapse field="+group+" nullPolicy=collapse min=field(test_ti)"+hint+"}");
     params.add("sort", "test_ti desc");
     assertQ(req(params), "*[count(//doc)=3]",
         "//result/doc[1]/float[@name='id'][.='4.0']",
@@ -112,7 +215,7 @@ public class TestCollapseQParserPlugin e
     // Test value source collapse criteria with cscore function
     params = new ModifiableSolrParams();
     params.add("q", "*:*");
-    params.add("fq", "{!collapse field="+group+" nullPolicy=collapse min=cscore()}");
+    params.add("fq", "{!collapse field="+group+" nullPolicy=collapse min=cscore()"+hint+"}");
     params.add("defType", "edismax");
     params.add("bf", "field(test_ti)");
     assertQ(req(params), "*[count(//doc)=3]",
@@ -124,7 +227,7 @@ public class TestCollapseQParserPlugin e
     // Test value source collapse criteria with compound cscore function
     params = new ModifiableSolrParams();
     params.add("q", "*:*");
-    params.add("fq", "{!collapse field="+group+" nullPolicy=collapse min=sum(cscore(),field(test_ti))}");
+    params.add("fq", "{!collapse field="+group+" nullPolicy=collapse min=sum(cscore(),field(test_ti))"+hint+"}");
     params.add("defType", "edismax");
     params.add("bf", "field(test_ti)");
     assertQ(req(params), "*[count(//doc)=3]",
@@ -137,7 +240,7 @@ public class TestCollapseQParserPlugin e
 
     params = new ModifiableSolrParams();
     params.add("q", "YYYY");
-    params.add("fq", "{!collapse field="+group+" nullPolicy=collapse}");
+    params.add("fq", "{!collapse field="+group+" nullPolicy=collapse"+hint+"}");
     params.add("defType", "edismax");
     params.add("bf", "field(test_ti)");
     params.add("qf", "term_s");
@@ -151,7 +254,7 @@ public class TestCollapseQParserPlugin e
     //Test SOLR-5773 with score collapse criteria
     params = new ModifiableSolrParams();
     params.add("q", "YYYY");
-    params.add("fq", "{!collapse field="+group+" nullPolicy=collapse}");
+    params.add("fq", "{!collapse field="+group+" nullPolicy=collapse"+hint+"}");
     params.add("defType", "edismax");
     params.add("bf", "field(test_ti)");
     params.add("qf", "term_s");
@@ -165,7 +268,7 @@ public class TestCollapseQParserPlugin e
     //Test SOLR-5773 with max field collapse criteria
     params = new ModifiableSolrParams();
     params.add("q", "YYYY");
-    params.add("fq", "{!collapse field="+group+" min=test_ti nullPolicy=collapse}");
+    params.add("fq", "{!collapse field="+group+" min=test_ti nullPolicy=collapse"+hint+"}");
     params.add("defType", "edismax");
     params.add("bf", "field(test_ti)");
     params.add("qf", "term_s");
@@ -180,7 +283,7 @@ public class TestCollapseQParserPlugin e
     //Test SOLR-5773 elevating documents with null group
     params = new ModifiableSolrParams();
     params.add("q", "YYYY");
-    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("qf", "term_s");
@@ -197,7 +300,7 @@ public class TestCollapseQParserPlugin e
     //Test collapse by min int field and sort
     params = new ModifiableSolrParams();
     params.add("q", "*:*");
-    params.add("fq", "{!collapse field="+group+" min=test_ti}");
+    params.add("fq", "{!collapse field="+group+" min=test_ti"+hint+"}");
     params.add("sort", "id desc");
     assertQ(req(params), "*[count(//doc)=2]",
                            "//result/doc[1]/float[@name='id'][.='5.0']",
@@ -205,7 +308,7 @@ public class TestCollapseQParserPlugin e
 
     params = new ModifiableSolrParams();
     params.add("q", "*:*");
-    params.add("fq", "{!collapse field="+group+" min=test_ti}");
+    params.add("fq", "{!collapse field="+group+" min=test_ti"+hint+"}");
     params.add("sort", "id asc");
     assertQ(req(params), "*[count(//doc)=2]",
                          "//result/doc[1]/float[@name='id'][.='1.0']",
@@ -213,15 +316,17 @@ public class TestCollapseQParserPlugin e
 
     params = new ModifiableSolrParams();
     params.add("q", "*:*");
-    params.add("fq", "{!collapse field="+group+" min=test_ti}");
+    params.add("fq", "{!collapse field="+group+" min=test_ti"+hint+"}");
     params.add("sort", "test_tl asc,id desc");
     assertQ(req(params), "*[count(//doc)=2]",
         "//result/doc[1]/float[@name='id'][.='5.0']",
         "//result/doc[2]/float[@name='id'][.='1.0']");
 
+
+
     params = new ModifiableSolrParams();
     params.add("q", "*:*");
-    params.add("fq", "{!collapse field="+group+" min=test_ti}");
+    params.add("fq", "{!collapse field="+group+" min=test_ti"+hint+"}");
     params.add("sort", "score desc,id asc");
     params.add("defType", "edismax");
     params.add("bf", "field(id)");
@@ -235,39 +340,43 @@ public class TestCollapseQParserPlugin e
     //Test collapse by max int field
     params = new ModifiableSolrParams();
     params.add("q", "*:*");
-    params.add("fq", "{!collapse field="+group+" max=test_ti}");
+    params.add("fq", "{!collapse field="+group+" max=test_ti"+hint+"}");
     params.add("sort", "test_ti asc");
     assertQ(req(params), "*[count(//doc)=2]",
                          "//result/doc[1]/float[@name='id'][.='6.0']",
                          "//result/doc[2]/float[@name='id'][.='2.0']"
         );
 
-
-
-    //Test collapse by min long field
-    params = new ModifiableSolrParams();
-    params.add("q", "*:*");
-    params.add("fq", "{!collapse field="+group+" min=test_tl}");
-    params.add("sort", "test_ti desc");
-    assertQ(req(params), "*[count(//doc)=2]",
-        "//result/doc[1]/float[@name='id'][.='1.0']",
-        "//result/doc[2]/float[@name='id'][.='5.0']");
-
-
-    //Test collapse by max long field
-    params = new ModifiableSolrParams();
-    params.add("q", "*:*");
-    params.add("fq", "{!collapse field="+group+" max=test_tl}");
-    params.add("sort", "test_ti desc");
-    assertQ(req(params), "*[count(//doc)=2]",
-                         "//result/doc[1]/float[@name='id'][.='2.0']",
-                         "//result/doc[2]/float[@name='id'][.='6.0']");
+    try {
+      //Test collapse by min long field
+      params = new ModifiableSolrParams();
+      params.add("q", "*:*");
+      params.add("fq", "{!collapse field="+group+" min=test_tl"+hint+"}");
+      params.add("sort", "test_ti desc");
+      assertQ(req(params), "*[count(//doc)=2]",
+          "//result/doc[1]/float[@name='id'][.='1.0']",
+          "//result/doc[2]/float[@name='id'][.='5.0']");
+
+
+      //Test collapse by max long field
+      params = new ModifiableSolrParams();
+      params.add("q", "*:*");
+      params.add("fq", "{!collapse field="+group+" max=test_tl"+hint+"}");
+      params.add("sort", "test_ti desc");
+      assertQ(req(params), "*[count(//doc)=2]",
+                           "//result/doc[1]/float[@name='id'][.='2.0']",
+                           "//result/doc[2]/float[@name='id'][.='6.0']");
+    } catch (Exception e) {
+      if(!numeric) {
+        throw e;
+      }
+    }
 
 
     //Test collapse by min float field
     params = new ModifiableSolrParams();
     params.add("q", "*:*");
-    params.add("fq", "{!collapse field="+group+" min=test_tf}");
+    params.add("fq", "{!collapse field="+group+" min=test_tf"+hint+"}");
     params.add("sort", "test_ti desc");
     assertQ(req(params), "*[count(//doc)=2]",
                          "//result/doc[1]/float[@name='id'][.='2.0']",
@@ -279,7 +388,7 @@ public class TestCollapseQParserPlugin e
     //Test collapse by min float field
     params = new ModifiableSolrParams();
     params.add("q", "*:*");
-    params.add("fq", "{!collapse field="+group+" max=test_tf}");
+    params.add("fq", "{!collapse field="+group+" max=test_tf"+hint+"}");
     params.add("sort", "test_ti asc");
     assertQ(req(params), "*[count(//doc)=2]",
                          "//result/doc[1]/float[@name='id'][.='5.0']",
@@ -288,7 +397,7 @@ public class TestCollapseQParserPlugin e
     //Test collapse by min float field sort by score
     params = new ModifiableSolrParams();
     params.add("q", "*:*");
-    params.add("fq", "{!collapse field="+group+" max=test_tf}");
+    params.add("fq", "{!collapse field="+group+" max=test_tf"+hint+"}");
     params.add("defType", "edismax");
     params.add("bf", "field(id)");
     params.add("fl", "score, id");
@@ -304,7 +413,7 @@ public class TestCollapseQParserPlugin e
     //Test nullPolicy expand
     params = new ModifiableSolrParams();
     params.add("q", "*:*");
-    params.add("fq", "{!collapse field="+group+" max=test_tf nullPolicy=expand}");
+    params.add("fq", "{!collapse field="+group+" max=test_tf nullPolicy=expand"+hint+"}");
     params.add("sort", "id desc");
     assertQ(req(params), "*[count(//doc)=4]",
         "//result/doc[1]/float[@name='id'][.='5.0']",
@@ -316,7 +425,7 @@ public class TestCollapseQParserPlugin e
 
     params = new ModifiableSolrParams();
     params.add("q", "*:*");
-    params.add("fq", "{!collapse field="+group+" max=test_tf nullPolicy=collapse}");
+    params.add("fq", "{!collapse field="+group+" max=test_tf nullPolicy=collapse"+hint+"}");
     params.add("sort", "id desc");
     assertQ(req(params), "*[count(//doc)=3]",
         "//result/doc[1]/float[@name='id'][.='5.0']",
@@ -326,7 +435,7 @@ public class TestCollapseQParserPlugin e
 
     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("fq","{!tag=test_ti}id:5");
@@ -338,7 +447,7 @@ public class TestCollapseQParserPlugin e
     // SOLR-5230 - ensure CollapsingFieldValueCollector.finish() is called
     params = new ModifiableSolrParams();
     params.add("q", "*:*");
-    params.add("fq", "{!collapse field="+group+"}");
+    params.add("fq", "{!collapse field="+group+hint+"}");
     params.add("group", "true");
     params.add("group.field", "id");
     assertQ(req(params), "*[count(//doc)=2]");
@@ -350,14 +459,15 @@ public class TestCollapseQParserPlugin e
     assertU(commit());
     params = new ModifiableSolrParams();
     params.add("q", "YYYY");
-    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("qf", "term_s");
     params.add("qt", "/elevate");
-    assertQ(req(params), "*[count(//doc)=2]",
+    assertQ(req(params), "*[count(//doc)=3]",
                          "//result/doc[1]/float[@name='id'][.='3.0']",
-                         "//result/doc[2]/float[@name='id'][.='6.0']");
+                         "//result/doc[2]/float[@name='id'][.='6.0']",
+                         "//result/doc[3]/float[@name='id'][.='7.0']");
 
 
   }
@@ -385,4 +495,5 @@ public class TestCollapseQParserPlugin e
     assertQ(req(params), "*[count(//doc)=0]");
   }
 
+
 }

Modified: lucene/dev/branches/lucene6005/solr/core/src/test/org/apache/solr/search/TestRankQueryPlugin.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6005/solr/core/src/test/org/apache/solr/search/TestRankQueryPlugin.java?rev=1658277&r1=1658276&r2=1658277&view=diff
==============================================================================
--- lucene/dev/branches/lucene6005/solr/core/src/test/org/apache/solr/search/TestRankQueryPlugin.java (original)
+++ lucene/dev/branches/lucene6005/solr/core/src/test/org/apache/solr/search/TestRankQueryPlugin.java Sun Feb  8 23:53:14 2015
@@ -23,6 +23,8 @@ import org.apache.lucene.index.IndexRead
 import org.apache.lucene.index.NumericDocValues;
 import org.apache.lucene.index.ReaderUtil;
 import org.apache.lucene.search.FieldComparator;
+import org.apache.lucene.search.LeafCollector;
+import org.apache.lucene.search.LeafFieldComparator;
 import org.apache.lucene.search.ScoreDoc;
 import org.apache.lucene.search.Sort;
 import org.apache.lucene.search.SortField;
@@ -51,7 +53,6 @@ import org.apache.solr.schema.FieldType;
 import org.apache.solr.schema.IndexSchema;
 import org.apache.solr.schema.SchemaField;
 import org.apache.solr.request.SolrQueryRequest;
-
 import org.junit.Ignore;
 
 import java.io.IOException;
@@ -410,7 +411,8 @@ public class TestRankQueryPlugin extends
           // :TODO: would be simpler to always serialize every position of SortField[]
           if (type==SortField.Type.SCORE || type==SortField.Type.DOC) continue;
 
-          FieldComparator comparator = null;
+          FieldComparator<?> comparator = null;
+          LeafFieldComparator leafComparator = null;
           Object[] vals = new Object[nDocs];
 
           int lastIdx = -1;
@@ -433,12 +435,12 @@ public class TestRankQueryPlugin extends
 
             if (comparator == null) {
               comparator = sortField.getComparator(1,0);
-              comparator = comparator.setNextReader(currentLeaf);
+              leafComparator = comparator.getLeafComparator(currentLeaf);
             }
 
             doc -= currentLeaf.docBase;  // adjust for what segment this is in
-            comparator.setScorer(new FakeScorer(doc, score));
-            comparator.copy(0, doc);
+            leafComparator.setScorer(new FakeScorer(doc, score));
+            leafComparator.copy(0, doc);
             Object val = comparator.value(0);
             if (null != ft) val = ft.marshalSortValue(val);
             vals[position] = val;
@@ -705,24 +707,28 @@ public class TestRankQueryPlugin extends
   class TestCollector extends TopDocsCollector {
 
     private List<ScoreDoc> list = new ArrayList();
-    private NumericDocValues values;
-    private int base;
 
     public TestCollector(PriorityQueue pq) {
       super(pq);
     }
 
-    public boolean acceptsDocsOutOfOrder() {
-      return false;
-    }
-
-    public void doSetNextReader(LeafReaderContext context) throws IOException {
-      values = DocValues.getNumeric(context.reader(), "sort_i");
-      base = context.docBase;
-    }
+    @Override
+    public LeafCollector getLeafCollector(LeafReaderContext context) throws IOException {
+      final int base = context.docBase;
+      final NumericDocValues values = DocValues.getNumeric(context.reader(), "sort_i");
+      return new LeafCollector() {
+        
+        @Override
+        public void setScorer(Scorer scorer) throws IOException {}
+        
+        public boolean acceptsDocsOutOfOrder() {
+          return false;
+        }
 
-    public void collect(int doc) {
-      list.add(new ScoreDoc(doc+base, (float)values.get(doc)));
+        public void collect(int doc) {
+          list.add(new ScoreDoc(doc+base, (float)values.get(doc)));
+        }
+      };
     }
 
     public int topDocsSize() {
@@ -759,27 +765,27 @@ public class TestRankQueryPlugin extends
   class TestCollector1 extends TopDocsCollector {
 
     private List<ScoreDoc> list = new ArrayList();
-    private int base;
-    private Scorer scorer;
 
     public TestCollector1(PriorityQueue pq) {
       super(pq);
     }
 
-    public boolean acceptsDocsOutOfOrder() {
-      return false;
-    }
-
-    public void doSetNextReader(LeafReaderContext context) throws IOException {
-      base = context.docBase;
-    }
-
-    public void setScorer(Scorer scorer) {
-      this.scorer = scorer;
-    }
-
-    public void collect(int doc) throws IOException {
-      list.add(new ScoreDoc(doc+base, scorer.score()));
+    @Override
+    public LeafCollector getLeafCollector(LeafReaderContext context) throws IOException {
+      final int base = context.docBase;
+      return new LeafCollector() {
+        
+        Scorer scorer;
+        
+        @Override
+        public void setScorer(Scorer scorer) throws IOException {
+          this.scorer = scorer;
+        }
+        
+        public void collect(int doc) throws IOException {
+          list.add(new ScoreDoc(doc+base, scorer.score()));
+        }
+      };
     }
 
     public int topDocsSize() {
@@ -813,7 +819,4 @@ public class TestRankQueryPlugin extends
     }
   }
 
-
-
-
 }

Modified: lucene/dev/branches/lucene6005/solr/core/src/test/org/apache/solr/search/TestRecoveryHdfs.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6005/solr/core/src/test/org/apache/solr/search/TestRecoveryHdfs.java?rev=1658277&r1=1658276&r2=1658277&view=diff
==============================================================================
--- lucene/dev/branches/lucene6005/solr/core/src/test/org/apache/solr/search/TestRecoveryHdfs.java (original)
+++ lucene/dev/branches/lucene6005/solr/core/src/test/org/apache/solr/search/TestRecoveryHdfs.java Sun Feb  8 23:53:14 2015
@@ -19,7 +19,6 @@ package org.apache.solr.search;
 
 import static org.apache.solr.update.processor.DistributingUpdateProcessorFactory.DISTRIB_UPDATE_PARAM;
 
-import java.io.File;
 import java.io.IOException;
 import java.net.URI;
 import java.net.URISyntaxException;
@@ -42,15 +41,14 @@ import org.apache.hadoop.fs.FileSystem;
 import org.apache.hadoop.fs.Path;
 import org.apache.hadoop.hdfs.MiniDFSCluster;
 import org.apache.solr.SolrTestCaseJ4;
-import org.apache.solr.cloud.hdfs.HdfsBasicDistributedZk2Test;
 import org.apache.solr.cloud.hdfs.HdfsTestUtil;
+import org.apache.solr.common.util.IOUtils;
 import org.apache.solr.request.SolrQueryRequest;
 import org.apache.solr.update.DirectUpdateHandler2;
 import org.apache.solr.update.HdfsUpdateLog;
 import org.apache.solr.update.UpdateHandler;
 import org.apache.solr.update.UpdateLog;
 import org.apache.solr.update.processor.DistributedUpdateProcessor.DistribPhase;
-import org.apache.solr.util.IOUtils;
 import org.junit.AfterClass;
 import org.junit.BeforeClass;
 import org.junit.Ignore;
@@ -84,12 +82,10 @@ public class TestRecoveryHdfs extends So
     try {
       URI uri = new URI(hdfsUri);
       fs = FileSystem.newInstance(uri, new Configuration());
-    } catch (IOException e) {
-      throw new RuntimeException(e);
-    } catch (URISyntaxException e) {
+    } catch (IOException | URISyntaxException e) {
       throw new RuntimeException(e);
     }
-    
+
     System.setProperty("solr.ulog.dir", hdfsUri + "/solr/shard1");
     
     initCore("solrconfig-tlog.xml","schema15.xml");

Modified: lucene/dev/branches/lucene6005/solr/core/src/test/org/apache/solr/search/TestSolr4Spatial.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6005/solr/core/src/test/org/apache/solr/search/TestSolr4Spatial.java?rev=1658277&r1=1658276&r2=1658277&view=diff
==============================================================================
--- lucene/dev/branches/lucene6005/solr/core/src/test/org/apache/solr/search/TestSolr4Spatial.java (original)
+++ lucene/dev/branches/lucene6005/solr/core/src/test/org/apache/solr/search/TestSolr4Spatial.java Sun Feb  8 23:53:14 2015
@@ -17,25 +17,22 @@ package org.apache.solr.search;
  * limitations under the License.
  */
 
+import java.text.ParseException;
+import java.util.Arrays;
+
 import com.carrotsearch.randomizedtesting.RandomizedTest;
 import com.carrotsearch.randomizedtesting.annotations.ParametersFactory;
 import com.spatial4j.core.context.SpatialContext;
 import com.spatial4j.core.distance.DistanceUtils;
 import com.spatial4j.core.shape.Point;
 import com.spatial4j.core.shape.Rectangle;
-import com.spatial4j.core.shape.impl.RectangleImpl;
 import org.apache.solr.SolrTestCaseJ4;
 import org.apache.solr.common.SolrException;
-import org.apache.solr.schema.AbstractSpatialFieldType;
-import org.apache.solr.schema.IndexSchema;
 import org.apache.solr.util.SpatialUtils;
 import org.junit.Before;
 import org.junit.BeforeClass;
 import org.junit.Test;
 
-import java.text.ParseException;
-import java.util.Arrays;
-
 /**
  * Test Solr 4's new spatial capabilities from the new Lucene spatial module. Don't thoroughly test it here because
  * Lucene spatial has its own tests.  Some of these tests were ported from Solr 3 spatial tests.
@@ -72,13 +69,13 @@ public class TestSolr4Spatial extends So
   public void testBadShapeParse400() {
     assertQEx(null, req(
         "fl", "id," + fieldName, "q", "*:*", "rows", "1000",
-        "fq", "{!field f="+fieldName+"}Intersects(NonexistentShape(89.9,-130 d=9))"), 400);
+        "fq", "{!field f=" + fieldName + "}Intersects(NonexistentShape(89.9,-130 d=9))"), 400);
     assertQEx(null, req(
         "fl", "id," + fieldName, "q", "*:*", "rows", "1000",
-        "fq", "{!field f="+fieldName+"}Intersects(NonexistentShape(89.9,-130 d=9"), 400);//missing parens
+        "fq", "{!field f=" + fieldName + "}Intersects(NonexistentShape(89.9,-130 d=9"), 400);//missing parens
     assertQEx(null, req(
         "fl", "id," + fieldName, "q", "*:*", "rows", "1000",
-        "fq", "{!field f="+fieldName+"}Intersectssss"), 400);
+        "fq", "{!field f=" + fieldName + "}Intersectssss"), 400);
 
     ignoreException("NonexistentShape");
     try {
@@ -110,19 +107,20 @@ public class TestSolr4Spatial extends So
   @Test
   public void testIntersectFilter() throws Exception {
     setupDocs();
+    
     //Try some edge cases
-    checkHits(fieldName, "1,1", 175, 3, 5, 6, 7);
-    checkHits(fieldName, "0,179.8", 200, 2, 8, 9);
-    checkHits(fieldName, "89.8, 50", 200, 2, 10, 11);//this goes over the north pole
-    checkHits(fieldName, "-89.8, 50", 200, 2, 12, 13);//this goes over the south pole
+    checkHits(fieldName, "1,1", 175, DistanceUtils.EARTH_MEAN_RADIUS_KM, 3, 5, 6, 7);
+    checkHits(fieldName, "0,179.8", 200, DistanceUtils.EARTH_MEAN_RADIUS_KM, 2, 8, 9);
+    checkHits(fieldName, "89.8, 50", 200, DistanceUtils.EARTH_MEAN_RADIUS_KM, 2, 10, 11);//this goes over the north pole
+    checkHits(fieldName, "-89.8, 50", 200, DistanceUtils.EARTH_MEAN_RADIUS_KM, 2, 12, 13);//this goes over the south pole
     //try some normal cases
-    checkHits(fieldName, "33.0,-80.0", 300, 2);
+    checkHits(fieldName, "33.0,-80.0", 300, DistanceUtils.EARTH_MEAN_RADIUS_KM, 2);
     //large distance
-    checkHits(fieldName, "1,1", 5000, 3, 5, 6, 7);
+    checkHits(fieldName, "1,1", 5000, DistanceUtils.EARTH_MEAN_RADIUS_KM, 3, 5, 6, 7);
     //Because we are generating a box based on the west/east longitudes and the south/north latitudes, which then
     //translates to a range query, which is slightly more inclusive.  Thus, even though 0.0 is 15.725 kms away,
     //it will be included, b/c of the box calculation.
-    checkHits(fieldName, false, "0.1,0.1", 15, 2, 5, 6);
+    checkHits(fieldName, false, "0.1,0.1", 15, DistanceUtils.EARTH_MEAN_RADIUS_KM, 2, 5, 6);
 
     //try some more
     clearIndex();
@@ -133,18 +131,18 @@ public class TestSolr4Spatial extends So
     assertU(adoc("id", "17", fieldName, "44.043900,-95.436643"));
     assertU(commit());
 
-    checkHits(fieldName, "0,0", 1000, 1, 14);
-    checkHits(fieldName, "0,0", 2000, 2, 14, 15);
-    checkHits(fieldName, false, "0,0", 3000, 3, 14, 15, 16);
-    checkHits(fieldName, "0,0", 3001, 3, 14, 15, 16);
-    checkHits(fieldName, "0,0", 3000.1, 3, 14, 15, 16);
+    checkHits(fieldName, "0,0", 1000, DistanceUtils.EARTH_MEAN_RADIUS_KM, 1, 14);
+    checkHits(fieldName, "0,0", 2000, DistanceUtils.EARTH_MEAN_RADIUS_KM, 2, 14, 15);
+    checkHits(fieldName, false, "0,0", 3000, DistanceUtils.EARTH_MEAN_RADIUS_KM, 3, 14, 15, 16);
+    checkHits(fieldName, "0,0", 3001, DistanceUtils.EARTH_MEAN_RADIUS_KM, 3, 14, 15, 16);
+    checkHits(fieldName, "0,0", 3000.1, DistanceUtils.EARTH_MEAN_RADIUS_KM, 3, 14, 15, 16);
 
     //really fine grained distance and reflects some of the vagaries of how we are calculating the box
-    checkHits(fieldName, "43.517030,-96.789603", 109, 0);
+    checkHits(fieldName, "43.517030,-96.789603", 109, DistanceUtils.EARTH_MEAN_RADIUS_KM, 0);
 
     //falls outside of the real distance, but inside the bounding box
-    checkHits(fieldName, true,  "43.517030,-96.789603", 110, 0);
-    checkHits(fieldName, false, "43.517030,-96.789603", 110, 1, 17);
+    checkHits(fieldName, true,  "43.517030,-96.789603", 110, DistanceUtils.EARTH_MEAN_RADIUS_KM, 0);
+    checkHits(fieldName, false, "43.517030,-96.789603", 110, DistanceUtils.EARTH_MEAN_RADIUS_KM, 1, 17);
   }
 
   @Test
@@ -157,21 +155,21 @@ public class TestSolr4Spatial extends So
     assertU(commit());
 
     assertQ(req(
-        "fl", "id," + fieldName, "q", "*:*", "rows", "1000",
-        "fq", "{!bbox sfield="+fieldName+" pt="+IN+" d=9}"),
+            "fl", "id," + fieldName, "q", "*:*", "rows", "1000",
+            "fq", "{!bbox sfield=" + fieldName + " pt=" + IN + " d=9}"),
         "//result/doc/*[@name='" + fieldName + "']//text()='" + OUT + "'");
   }
 
   @Test
   public void checkQueryEmptyIndex() throws ParseException {
-    checkHits(fieldName, "0,0", 100, 0);//doesn't error
+    checkHits(fieldName, "0,0", 100, DistanceUtils.EARTH_MEAN_RADIUS_KM, 0);//doesn't error
   }
 
-  private void checkHits(String fieldName, String pt, double distKM, int count, int ... docIds) throws ParseException {
-    checkHits(fieldName, true, pt, distKM, count, docIds);
+  private void checkHits(String fieldName, String pt, double distKM, double sphereRadius, int count, int ... docIds) throws ParseException {
+    checkHits(fieldName, true, pt, distKM, sphereRadius, count, docIds);
   }
 
-  private void checkHits(String fieldName, boolean exact, String ptStr, double distKM, int count, int ... docIds) throws ParseException {
+  private void checkHits(String fieldName, boolean exact, String ptStr, double distKM, double sphereRadius, int count, int ... docIds) throws ParseException {
     if (exact && fieldName.equalsIgnoreCase("bbox")) {
       return; // bbox field only supports rectangular query
     }
@@ -217,7 +215,7 @@ public class TestSolr4Spatial extends So
     {
       assertQ(req(
           "fl", "id", "q", "*:*", "rows", "1000",
-          "fq", "{!" + (exact ? "geofilt" : "bbox") + " sfield=" + fieldName + " pt='" + ptStr + "' d=" + distKM + "}"),
+          "fq", "{!" + (exact ? "geofilt" : "bbox") + " sfield=" + fieldName + " pt='" + ptStr + "' d=" + distKM + " sphere_radius=" + sphereRadius + "}"),
           tests);
     }
 
@@ -332,7 +330,7 @@ public class TestSolr4Spatial extends So
           "sfield=" + fieldName + " "
           + (score != null ? "score="+score : "") + " "
           + (filter != null ? "filter="+filter : "") + " "
-          + "pt=" + lat + "," + lon + " d=" + (dDEG * DistanceUtils.DEG_TO_KM) + "}";
+          + "pt=" + lat + "," + lon + " d=" + (dDEG /* DistanceUtils.DEG_TO_KM*/) + "}";
     } else {
       return "{! "
           + (score != null ? "score="+score : "") + " "
@@ -361,37 +359,6 @@ public class TestSolr4Spatial extends So
   }
 
   @Test
-  public void solr4OldShapeSyntax() throws Exception {
-    assumeFalse("Mostly just valid for prefix-tree", fieldName.equals("pointvector"));
-
-    //we also test that the old syntax is parsed in worldBounds in the schema
-    {
-      IndexSchema schema = h.getCore().getLatestSchema();
-      AbstractSpatialFieldType type = (AbstractSpatialFieldType) schema.getFieldTypeByName("stqpt_u_oldworldbounds");
-      SpatialContext ctx = type.getStrategy("foo").getSpatialContext();
-      assertEquals(new RectangleImpl(0, 1000, 0, 1000, ctx), ctx.getWorldBounds());
-    }
-
-    //syntax supported in Solr 4 but not beyond
-    //   See Spatial4j LegacyShapeReadWriterFormat
-    String rect = "-74.093 41.042 -69.347 44.558";//minX minY maxX maxY
-    String circ = "Circle(4.56,1.23 d=0.0710)";
-
-    //show we can index this (without an error)
-    assertU(adoc("id", "rect", fieldName, rect));
-    if (!fieldName.equals("bbox")) {
-      assertU(adoc("id", "circ", fieldName, circ));
-      assertU(commit());
-    }
-
-    //only testing no error
-    assertJQ(req("q", "{!field f=" + fieldName + "}Intersects(" + rect + ")"));
-    if (!fieldName.equals("bbox")) {
-      assertJQ(req("q", "{!field f=" + fieldName + "}Intersects(" + circ + ")"));
-    }
-  }
-
-  @Test
   public void testBadScoreParam() throws Exception {
     assertQEx("expect friendly error message",
         "none",

Modified: lucene/dev/branches/lucene6005/solr/core/src/test/org/apache/solr/search/TestSolrJ.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6005/solr/core/src/test/org/apache/solr/search/TestSolrJ.java?rev=1658277&r1=1658276&r2=1658277&view=diff
==============================================================================
--- lucene/dev/branches/lucene6005/solr/core/src/test/org/apache/solr/search/TestSolrJ.java (original)
+++ lucene/dev/branches/lucene6005/solr/core/src/test/org/apache/solr/search/TestSolrJ.java Sun Feb  8 23:53:14 2015
@@ -163,25 +163,22 @@ public class TestSolrJ extends SolrTestC
 
 
   public void doCommitPerf() throws Exception {
-    HttpSolrClient client = new HttpSolrClient("http://127.0.0.1:8983/solr");
 
-    long start = System.currentTimeMillis();
+    try (HttpSolrClient client = new HttpSolrClient("http://127.0.0.1:8983/solr")) {
 
-    for (int i=0; i<10000; i++) {
-      SolrInputDocument doc = new SolrInputDocument();
-      doc.addField("id", Integer.toString(i % 13));
-      client.add(doc);
-      client.commit(true, true, true);
-    }
+      long start = System.currentTimeMillis();
 
-    long end = System.currentTimeMillis();
+      for (int i = 0; i < 10000; i++) {
+        SolrInputDocument doc = new SolrInputDocument();
+        doc.addField("id", Integer.toString(i % 13));
+        client.add(doc);
+        client.commit(true, true, true);
+      }
 
-    client.shutdown();
+      long end = System.currentTimeMillis();
+      System.out.println("TIME: " + (end-start));
+    }
 
-    System.out.println("TIME: " + (end-start));
   }
 
-
-
-
 }

Modified: lucene/dev/branches/lucene6005/solr/core/src/test/org/apache/solr/search/TestSort.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6005/solr/core/src/test/org/apache/solr/search/TestSort.java?rev=1658277&r1=1658276&r2=1658277&view=diff
==============================================================================
--- lucene/dev/branches/lucene6005/solr/core/src/test/org/apache/solr/search/TestSort.java (original)
+++ lucene/dev/branches/lucene6005/solr/core/src/test/org/apache/solr/search/TestSort.java Sun Feb  8 23:53:14 2015
@@ -270,7 +270,7 @@ public class TestSort extends SolrTestCa
         boolean trackScores = r.nextBoolean();
         boolean trackMaxScores = r.nextBoolean();
         boolean scoreInOrder = r.nextBoolean();
-        final TopFieldCollector topCollector = TopFieldCollector.create(sort, top, true, trackScores, trackMaxScores, scoreInOrder);
+        final TopFieldCollector topCollector = TopFieldCollector.create(sort, top, true, trackScores, trackMaxScores);
 
         final List<MyDoc> collectedDocs = new ArrayList<>();
         // delegate and collect docs ourselves

Modified: lucene/dev/branches/lucene6005/solr/core/src/test/org/apache/solr/search/mlt/CloudMLTQParserTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6005/solr/core/src/test/org/apache/solr/search/mlt/CloudMLTQParserTest.java?rev=1658277&r1=1658276&r2=1658277&view=diff
==============================================================================
--- lucene/dev/branches/lucene6005/solr/core/src/test/org/apache/solr/search/mlt/CloudMLTQParserTest.java (original)
+++ lucene/dev/branches/lucene6005/solr/core/src/test/org/apache/solr/search/mlt/CloudMLTQParserTest.java Sun Feb  8 23:53:14 2015
@@ -23,6 +23,7 @@ import org.apache.solr.common.SolrDocume
 import org.apache.solr.common.SolrDocumentList;
 import org.apache.solr.common.params.CommonParams;
 import org.apache.solr.common.params.ModifiableSolrParams;
+import org.junit.Test;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -35,8 +36,6 @@ public class CloudMLTQParserTest extends
   static Logger log = LoggerFactory.getLogger(CloudMLTQParserTest.class);
   
   public CloudMLTQParserTest() {
-    fixShardCount = true;
-    shardCount = 2;
     sliceCount = 2;
     
     configString = "solrconfig.xml";
@@ -47,8 +46,10 @@ public class CloudMLTQParserTest extends
   protected String getCloudSolrConfig() {
     return configString;
   }
-  
-  public void doTest() throws Exception {
+
+  @Test
+  @ShardsFixed(num = 2)
+  public void test() throws Exception {
     
     waitForRecoveriesToFinish(false);
 

Modified: lucene/dev/branches/lucene6005/solr/core/src/test/org/apache/solr/search/stats/TestBaseStatsCache.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6005/solr/core/src/test/org/apache/solr/search/stats/TestBaseStatsCache.java?rev=1658277&r1=1658276&r2=1658277&view=diff
==============================================================================
--- lucene/dev/branches/lucene6005/solr/core/src/test/org/apache/solr/search/stats/TestBaseStatsCache.java (original)
+++ lucene/dev/branches/lucene6005/solr/core/src/test/org/apache/solr/search/stats/TestBaseStatsCache.java Sun Feb  8 23:53:14 2015
@@ -30,13 +30,13 @@ public abstract class TestBaseStatsCache
   protected abstract String getStatsCacheClassName();
 
   @Override
-  public void setUp() throws Exception {
-    super.setUp();
+  public void distribSetUp() throws Exception {
+    super.distribSetUp();
     System.setProperty("solr.statsCache", getStatsCacheClassName());
   }
 
-  public void tearDown() throws Exception {
-    super.tearDown();
+  public void distribTearDown() throws Exception {
+    super.distribTearDown();
     System.clearProperty("solr.statsCache");
   }
   

Modified: lucene/dev/branches/lucene6005/solr/core/src/test/org/apache/solr/search/stats/TestDefaultStatsCache.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6005/solr/core/src/test/org/apache/solr/search/stats/TestDefaultStatsCache.java?rev=1658277&r1=1658276&r2=1658277&view=diff
==============================================================================
--- lucene/dev/branches/lucene6005/solr/core/src/test/org/apache/solr/search/stats/TestDefaultStatsCache.java (original)
+++ lucene/dev/branches/lucene6005/solr/core/src/test/org/apache/solr/search/stats/TestDefaultStatsCache.java Sun Feb  8 23:53:14 2015
@@ -22,23 +22,24 @@ import org.apache.solr.client.solrj.Solr
 import org.apache.solr.client.solrj.response.QueryResponse;
 import org.apache.solr.common.SolrDocumentList;
 import org.apache.solr.common.params.ModifiableSolrParams;
+import org.junit.Test;
 
 public class TestDefaultStatsCache extends BaseDistributedSearchTestCase {
   private int docId = 0;
   
   @Override
-  public void setUp() throws Exception {
-    super.setUp();
+  public void distribSetUp() throws Exception {
+    super.distribSetUp();
     System.setProperty("solr.statsCache", LocalStatsCache.class.getName());
   }
   
-  public void tearDown() throws Exception {
-    super.tearDown();
+  public void distribTearDown() throws Exception {
+    super.distribTearDown();
     System.clearProperty("solr.statsCache");
   }
-  
-  @Override
-  public void doTest() throws Exception {
+
+  @Test
+  public void test() throws Exception {
     del("*:*");
     for (int i = 0; i < clients.size(); i++) {
       int shard = i + 1;

Modified: lucene/dev/branches/lucene6005/solr/core/src/test/org/apache/solr/servlet/SolrRequestParserTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6005/solr/core/src/test/org/apache/solr/servlet/SolrRequestParserTest.java?rev=1658277&r1=1658276&r2=1658277&view=diff
==============================================================================
--- lucene/dev/branches/lucene6005/solr/core/src/test/org/apache/solr/servlet/SolrRequestParserTest.java (original)
+++ lucene/dev/branches/lucene6005/solr/core/src/test/org/apache/solr/servlet/SolrRequestParserTest.java Sun Feb  8 23:53:14 2015
@@ -22,7 +22,9 @@ import static org.easymock.EasyMock.crea
 import static org.easymock.EasyMock.expect;
 import static org.easymock.EasyMock.replay;
 
+import java.io.BufferedInputStream;
 import java.io.ByteArrayInputStream;
+import java.io.IOException;
 import java.net.HttpURLConnection;
 import java.net.SocketTimeoutException;
 import java.net.URL;
@@ -34,6 +36,7 @@ import java.util.List;
 import java.util.Map;
 import java.util.Vector;
 
+import javax.servlet.ReadListener;
 import javax.servlet.ServletInputStream;
 import javax.servlet.http.HttpServletRequest;
 
@@ -225,10 +228,7 @@ public class SolrRequestParserTest exten
       expect(request.getContentType()).andReturn( contentType ).anyTimes();
       expect(request.getQueryString()).andReturn(getParams).anyTimes();
       expect(request.getContentLength()).andReturn(postBytes.length).anyTimes();
-      expect(request.getInputStream()).andReturn(new ServletInputStream() {
-        private final ByteArrayInputStream in = new ByteArrayInputStream(postBytes);
-        @Override public int read() { return in.read(); }
-      });
+      expect(request.getInputStream()).andReturn(new ByteServletInputStream(postBytes));
       replay(request);
       
       MultipartRequestParser multipart = new MultipartRequestParser( 2048 );
@@ -243,6 +243,39 @@ public class SolrRequestParserTest exten
       assertArrayEquals( "contentType: "+contentType, new String[]{"foo","bar"}, p.getParams("dup") );
     }
   }
+
+  static class ByteServletInputStream extends ServletInputStream  {
+    final BufferedInputStream in;
+    final int len;
+    int readCount = 0;
+
+    public ByteServletInputStream(byte[] data) {
+      this.len = data.length;
+      this.in = new BufferedInputStream(new ByteArrayInputStream(data));
+    }
+
+    @Override
+    public boolean isFinished() {
+      return readCount == len;
+    }
+
+    @Override
+    public boolean isReady() {
+      return true;
+    }
+
+    @Override
+    public void setReadListener(ReadListener readListener) {
+      throw new IllegalStateException("Not supported");
+    }
+
+    @Override
+    public int read() throws IOException {
+      int read = in.read();
+      readCount += read;
+      return read;
+    }
+  }
   
   @Test
   public void testStandardParseParamsAndFillStreamsISO88591() throws Exception
@@ -257,10 +290,7 @@ public class SolrRequestParserTest exten
     expect(request.getContentType()).andReturn( contentType ).anyTimes();
     expect(request.getQueryString()).andReturn(getParams).anyTimes();
     expect(request.getContentLength()).andReturn(postBytes.length).anyTimes();
-    expect(request.getInputStream()).andReturn(new ServletInputStream() {
-      private final ByteArrayInputStream in = new ByteArrayInputStream(postBytes);
-      @Override public int read() { return in.read(); }
-    });
+    expect(request.getInputStream()).andReturn(new ByteServletInputStream(postBytes));
     replay(request);
     
     MultipartRequestParser multipart = new MultipartRequestParser( 2048 );
@@ -292,10 +322,7 @@ public class SolrRequestParserTest exten
     // we dont pass a content-length to let the security mechanism limit it:
     expect(request.getContentLength()).andReturn(-1).anyTimes();
     expect(request.getQueryString()).andReturn(null).anyTimes();
-    expect(request.getInputStream()).andReturn(new ServletInputStream() {
-      private final ByteArrayInputStream in = new ByteArrayInputStream(large.toString().getBytes(StandardCharsets.US_ASCII));
-      @Override public int read() { return in.read(); }
-    });
+    expect(request.getInputStream()).andReturn(new ByteServletInputStream(large.toString().getBytes(StandardCharsets.US_ASCII)));
     replay(request);
     
     FormDataRequestParser formdata = new FormDataRequestParser( limitKBytes );    
@@ -319,6 +346,21 @@ public class SolrRequestParserTest exten
     // we emulate Jetty that returns empty stream when parameters were parsed before:
     expect(request.getInputStream()).andReturn(new ServletInputStream() {
       @Override public int read() { return -1; }
+
+      @Override
+      public boolean isFinished() {
+        return true;
+      }
+
+      @Override
+      public boolean isReady() {
+        return true;
+      }
+
+      @Override
+      public void setReadListener(ReadListener readListener) {
+
+      }
     });
     replay(request);
     

Modified: lucene/dev/branches/lucene6005/solr/core/src/test/org/apache/solr/store/blockcache/BlockCacheTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6005/solr/core/src/test/org/apache/solr/store/blockcache/BlockCacheTest.java?rev=1658277&r1=1658276&r2=1658277&view=diff
==============================================================================
--- lucene/dev/branches/lucene6005/solr/core/src/test/org/apache/solr/store/blockcache/BlockCacheTest.java (original)
+++ lucene/dev/branches/lucene6005/solr/core/src/test/org/apache/solr/store/blockcache/BlockCacheTest.java Sun Feb  8 23:53:14 2015
@@ -21,7 +21,6 @@ import java.util.Arrays;
 import java.util.Random;
 import java.util.concurrent.atomic.AtomicLong;
 
-import org.apache.hadoop.conf.Configuration;
 import org.apache.lucene.util.LuceneTestCase;
 import org.junit.Test;
 
@@ -34,7 +33,7 @@ public class BlockCacheTest extends Luce
     int slabSize = blockSize * 4096;
     long totalMemory = 2 * slabSize;
     
-    BlockCache blockCache = new BlockCache(new Metrics(new Configuration()), true,totalMemory,slabSize,blockSize);
+    BlockCache blockCache = new BlockCache(new Metrics(), true, totalMemory, slabSize, blockSize);
     byte[] buffer = new byte[1024];
     Random random = random();
     byte[] newData = new byte[blockSize];
@@ -87,8 +86,7 @@ public class BlockCacheTest extends Luce
     int slabSize = blockSize * 1024;
     long totalMemory = 2 * slabSize;
 
-    BlockCache blockCache = new BlockCache(new Metrics(new Configuration()),
-        true, totalMemory, slabSize);
+    BlockCache blockCache = new BlockCache(new Metrics(), true, totalMemory, slabSize);
     BlockCacheKey blockCacheKey = new BlockCacheKey();
     blockCacheKey.setBlock(0);
     blockCacheKey.setFile(0);

Modified: lucene/dev/branches/lucene6005/solr/core/src/test/org/apache/solr/update/MockStreamingSolrClients.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6005/solr/core/src/test/org/apache/solr/update/MockStreamingSolrClients.java?rev=1658277&r1=1658276&r2=1658277&view=diff
==============================================================================
--- lucene/dev/branches/lucene6005/solr/core/src/test/org/apache/solr/update/MockStreamingSolrClients.java (original)
+++ lucene/dev/branches/lucene6005/solr/core/src/test/org/apache/solr/update/MockStreamingSolrClients.java Sun Feb  8 23:53:14 2015
@@ -85,9 +85,8 @@ public class MockStreamingSolrClients ex
       return solrClient.request(request);
     }
 
-
     @Override
-    public void shutdown() {}
+    public void close() {}
     
   }
 }

Modified: lucene/dev/branches/lucene6005/solr/core/src/test/org/apache/solr/update/PeerSyncTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6005/solr/core/src/test/org/apache/solr/update/PeerSyncTest.java?rev=1658277&r1=1658276&r2=1658277&view=diff
==============================================================================
--- lucene/dev/branches/lucene6005/solr/core/src/test/org/apache/solr/update/PeerSyncTest.java (original)
+++ lucene/dev/branches/lucene6005/solr/core/src/test/org/apache/solr/update/PeerSyncTest.java Sun Feb  8 23:53:14 2015
@@ -25,6 +25,7 @@ import org.apache.solr.client.solrj.requ
 import org.apache.solr.common.params.ModifiableSolrParams;
 import org.apache.solr.common.util.NamedList;
 import org.apache.solr.common.util.StrUtils;
+import org.junit.Test;
 
 import java.io.IOException;
 import java.util.Arrays;
@@ -41,18 +42,16 @@ public class PeerSyncTest extends BaseDi
     params(DISTRIB_UPDATE_PARAM, FROM_LEADER);
   
   public PeerSyncTest() {
-    fixShardCount = true;
-    shardCount = 3;
     stress = 0;
 
     // TODO: a better way to do this?
     configString = "solrconfig-tlog.xml";
     schemaString = "schema.xml";
   }
-  
-  
-  @Override
-  public void doTest() throws Exception {
+
+  @Test
+  @ShardsFixed(num = 3)
+  public void test() throws Exception {
     handle.clear();
     handle.put("timestamp", SKIPVAL);
     handle.put("score", SKIPVAL);

Modified: lucene/dev/branches/lucene6005/solr/core/src/test/org/apache/solr/update/SolrCmdDistributorTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6005/solr/core/src/test/org/apache/solr/update/SolrCmdDistributorTest.java?rev=1658277&r1=1658276&r2=1658277&view=diff
==============================================================================
--- lucene/dev/branches/lucene6005/solr/core/src/test/org/apache/solr/update/SolrCmdDistributorTest.java (original)
+++ lucene/dev/branches/lucene6005/solr/core/src/test/org/apache/solr/update/SolrCmdDistributorTest.java Sun Feb  8 23:53:14 2015
@@ -19,8 +19,8 @@ package org.apache.solr.update;
 
 import org.apache.lucene.index.LogDocMergePolicy;
 import org.apache.solr.BaseDistributedSearchTestCase;
-import org.apache.solr.client.solrj.SolrQuery;
 import org.apache.solr.client.solrj.SolrClient;
+import org.apache.solr.client.solrj.SolrQuery;
 import org.apache.solr.client.solrj.SolrServerException;
 import org.apache.solr.client.solrj.embedded.JettySolrRunner;
 import org.apache.solr.client.solrj.impl.HttpSolrClient;
@@ -36,6 +36,7 @@ import org.apache.solr.common.util.Named
 import org.apache.solr.core.ConfigSolr;
 import org.apache.solr.core.CoreContainer;
 import org.apache.solr.core.CoresLocator;
+import org.apache.solr.core.PluginInfo;
 import org.apache.solr.core.SolrCore;
 import org.apache.solr.core.SolrEventListener;
 import org.apache.solr.search.SolrIndexSearcher;
@@ -47,11 +48,13 @@ import org.apache.solr.update.SolrCmdDis
 import org.apache.solr.update.SolrCmdDistributor.StdNode;
 import org.apache.solr.update.processor.DistributedUpdateProcessor;
 import org.junit.BeforeClass;
+import org.junit.Test;
 import org.xml.sax.SAXException;
 
 import javax.xml.parsers.ParserConfigurationException;
 import java.io.File;
 import java.io.IOException;
+import java.nio.file.Path;
 import java.util.ArrayList;
 import java.util.Collections;
 import java.util.List;
@@ -70,7 +73,7 @@ public class SolrCmdDistributorTest exte
   private UpdateShardHandler updateShardHandler;
   
   public SolrCmdDistributorTest() throws ParserConfigurationException, IOException, SAXException {
-    updateShardHandler = new UpdateShardHandler(new ConfigSolr() {
+    updateShardHandler = new UpdateShardHandler(new ConfigSolr(null, null) {
 
       @Override
       public CoresLocator getCoresLocator() {
@@ -78,17 +81,16 @@ public class SolrCmdDistributorTest exte
       }
 
       @Override
-      protected String getShardHandlerFactoryConfigPath() {
+      public PluginInfo getShardHandlerFactoryPluginInfo() {
         return null;
       }
 
       @Override
-      public boolean isPersistent() {
-        return false;
-      }});
+      protected String getProperty(CfgProp key) {
+        return null;
+      }
+    });
     
-    fixShardCount = true;
-    shardCount = 4;
     stress = 0;
   }
 
@@ -105,6 +107,10 @@ public class SolrCmdDistributorTest exte
   // we don't get helpful override behavior due to the method being static
   @Override
   protected void createServers(int numShards) throws Exception {
+
+    System.setProperty("configSetBaseDir", TEST_HOME());
+    System.setProperty("coreRootDirectory", testDir.toPath().resolve("control").toString());
+    writeCoreProperties(testDir.toPath().resolve("control/cores"), DEFAULT_TEST_CORENAME);
     controlJetty = createJetty(new File(getSolrHome()), testDir + "/control/data", null, getSolrConfigFile(), getSchemaFile());
 
     controlClient = createNewSolrClient(controlJetty.getLocalPort());
@@ -113,6 +119,10 @@ public class SolrCmdDistributorTest exte
     StringBuilder sb = new StringBuilder();
     for (int i = 0; i < numShards; i++) {
       if (sb.length() > 0) sb.append(',');
+      String shardname = "shard" + i;
+      Path coresPath = testDir.toPath().resolve(shardname).resolve("cores");
+      writeCoreProperties(coresPath, DEFAULT_TEST_CORENAME);
+      System.setProperty("coreRootDirectory", testDir.toPath().resolve(shardname).toString());
       JettySolrRunner j = createJetty(new File(getSolrHome()),
           testDir + "/shard" + i + "/data", null, getSolrConfigFile(),
           getSchemaFile());
@@ -125,9 +135,10 @@ public class SolrCmdDistributorTest exte
 
     shards = sb.toString();
   }
-  
-  @Override
-  public void doTest() throws Exception {
+
+  @Test
+  @ShardsFixed(num = 4)
+  public void test() throws Exception {
     del("*:*");
     
     SolrCmdDistributor cmdDistrib = new SolrCmdDistributor(updateShardHandler);
@@ -309,7 +320,7 @@ public class SolrCmdDistributorTest exte
     
     cmdDistrib.finish();
 
-    assertEquals(shardCount, commits.get());
+    assertEquals(getShardCount(), commits.get());
     
     for (SolrClient c : clients) {
       NamedList<Object> resp = c.request(new LukeRequest());
@@ -506,14 +517,9 @@ public class SolrCmdDistributorTest exte
   }
   
   @Override
-  public void setUp() throws Exception {
-    super.setUp();
-  }
-  
-  @Override
-  public void tearDown() throws Exception {
+  public void distribTearDown() throws Exception {
     updateShardHandler.close();
-    super.tearDown();
+    super.distribTearDown();
   }
 
   private void testDistribOpenSearcher() {

Modified: lucene/dev/branches/lucene6005/solr/core/src/test/org/apache/solr/update/SolrIndexConfigTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6005/solr/core/src/test/org/apache/solr/update/SolrIndexConfigTest.java?rev=1658277&r1=1658276&r2=1658277&view=diff
==============================================================================
--- lucene/dev/branches/lucene6005/solr/core/src/test/org/apache/solr/update/SolrIndexConfigTest.java (original)
+++ lucene/dev/branches/lucene6005/solr/core/src/test/org/apache/solr/update/SolrIndexConfigTest.java Sun Feb  8 23:53:14 2015
@@ -17,6 +17,10 @@ package org.apache.solr.update;
  * limitations under the License.
  */
 
+import java.io.File;
+import java.io.IOException;
+import javax.xml.parsers.ParserConfigurationException;
+
 import org.apache.lucene.index.ConcurrentMergeScheduler;
 import org.apache.lucene.index.IndexWriterConfig;
 import org.apache.lucene.index.SimpleMergedSegmentWarmer;
@@ -26,13 +30,10 @@ import org.apache.solr.core.SolrConfig;
 import org.apache.solr.core.TestMergePolicyConfig;
 import org.apache.solr.schema.IndexSchema;
 import org.apache.solr.schema.IndexSchemaFactory;
+import org.junit.BeforeClass;
 import org.junit.Test;
 import org.xml.sax.SAXException;
 
-import javax.xml.parsers.ParserConfigurationException;
-import java.io.File;
-import java.io.IOException;
-
 /**
  * Testcase for {@link SolrIndexConfig}
  *
@@ -40,13 +41,19 @@ import java.io.IOException;
  */
 public class SolrIndexConfigTest extends SolrTestCaseJ4 {
 
+  @BeforeClass
+  public static void beforeClass() throws Exception {
+    initCore("solrconfig.xml","schema.xml");
+  }
+
   @Test
   public void testFailingSolrIndexConfigCreation() {
     try {
       SolrConfig solrConfig = new SolrConfig("bad-mp-solrconfig.xml");
       SolrIndexConfig solrIndexConfig = new SolrIndexConfig(solrConfig, null, null);
       IndexSchema indexSchema = IndexSchemaFactory.buildIndexSchema("schema.xml", solrConfig);
-      solrIndexConfig.toIndexWriterConfig(indexSchema);
+      h.getCore().setLatestSchema(indexSchema);
+      solrIndexConfig.toIndexWriterConfig(h.getCore());
       fail("a mergePolicy should have an empty constructor in order to be instantiated in Solr thus this should fail ");
     } catch (Exception e) {
       // it failed as expected
@@ -61,8 +68,9 @@ public class SolrIndexConfigTest extends
         null);
     assertNotNull(solrIndexConfig);
     IndexSchema indexSchema = IndexSchemaFactory.buildIndexSchema("schema.xml", solrConfig);
-
-    IndexWriterConfig iwc = solrIndexConfig.toIndexWriterConfig(indexSchema);
+    
+    h.getCore().setLatestSchema(indexSchema);
+    IndexWriterConfig iwc = solrIndexConfig.toIndexWriterConfig(h.getCore());
 
     assertNotNull("null mp", iwc.getMergePolicy());
     assertTrue("mp is not TMP", iwc.getMergePolicy() instanceof TieredMergePolicy);
@@ -87,7 +95,8 @@ public class SolrIndexConfigTest extends
     assertEquals(SimpleMergedSegmentWarmer.class.getName(),
         solrIndexConfig.mergedSegmentWarmerInfo.className);
     IndexSchema indexSchema = IndexSchemaFactory.buildIndexSchema("schema.xml", solrConfig);
-    IndexWriterConfig iwc = solrIndexConfig.toIndexWriterConfig(indexSchema);
+    h.getCore().setLatestSchema(indexSchema);
+    IndexWriterConfig iwc = solrIndexConfig.toIndexWriterConfig(h.getCore());
     assertEquals(SimpleMergedSegmentWarmer.class, iwc.getMergedSegmentWarmer().getClass());
   }
 

Modified: lucene/dev/branches/lucene6005/solr/core/src/test/org/apache/solr/update/processor/FieldMutatingUpdateProcessorTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6005/solr/core/src/test/org/apache/solr/update/processor/FieldMutatingUpdateProcessorTest.java?rev=1658277&r1=1658276&r2=1658277&view=diff
==============================================================================
--- lucene/dev/branches/lucene6005/solr/core/src/test/org/apache/solr/update/processor/FieldMutatingUpdateProcessorTest.java (original)
+++ lucene/dev/branches/lucene6005/solr/core/src/test/org/apache/solr/update/processor/FieldMutatingUpdateProcessorTest.java Sun Feb  8 23:53:14 2015
@@ -823,6 +823,7 @@ public class FieldMutatingUpdateProcesso
                        f("editors", "John W. Campbell"),
                        f("store1_price", 87),
                        f("store2_price", 78),
+                       f("store3_price", (Object) null),
                        f("list_price", 1000)));
     assertNotNull(d);
     assertEquals("misc",d.getFieldValue("category"));

Modified: lucene/dev/branches/lucene6005/solr/core/src/test/org/apache/solr/update/processor/SignatureUpdateProcessorFactoryTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6005/solr/core/src/test/org/apache/solr/update/processor/SignatureUpdateProcessorFactoryTest.java?rev=1658277&r1=1658276&r2=1658277&view=diff
==============================================================================
--- lucene/dev/branches/lucene6005/solr/core/src/test/org/apache/solr/update/processor/SignatureUpdateProcessorFactoryTest.java (original)
+++ lucene/dev/branches/lucene6005/solr/core/src/test/org/apache/solr/update/processor/SignatureUpdateProcessorFactoryTest.java Sun Feb  8 23:53:14 2015
@@ -17,12 +17,7 @@
 
 package org.apache.solr.update.processor;
 
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.Map;
-
 import org.apache.lucene.util.Constants;
-
 import org.apache.solr.SolrTestCaseJ4;
 import org.apache.solr.client.solrj.impl.BinaryRequestWriter;
 import org.apache.solr.client.solrj.request.UpdateRequest;
@@ -30,20 +25,23 @@ import org.apache.solr.common.SolrInputD
 import org.apache.solr.common.params.MultiMapSolrParams;
 import org.apache.solr.common.params.SolrParams;
 import org.apache.solr.common.params.UpdateParams;
-import org.apache.solr.common.util.NamedList;
 import org.apache.solr.common.util.ContentStream;
 import org.apache.solr.common.util.ContentStreamBase;
+import org.apache.solr.common.util.NamedList;
 import org.apache.solr.core.SolrCore;
-import org.apache.solr.handler.BinaryUpdateRequestHandler;
 import org.apache.solr.handler.UpdateRequestHandler;
+import org.apache.solr.request.LocalSolrQueryRequest;
 import org.apache.solr.request.SolrQueryRequest;
 import org.apache.solr.request.SolrQueryRequestBase;
-import org.apache.solr.request.LocalSolrQueryRequest;
 import org.apache.solr.response.SolrQueryResponse;
 import org.junit.Before;
 import org.junit.BeforeClass;
 import org.junit.Test;
 
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.Map;
+
 /**
  * 
  */