You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by si...@apache.org on 2011/02/09 10:36:03 UTC

svn commit: r1068809 [35/36] - in /lucene/dev/branches/docvalues: ./ dev-tools/eclipse/ dev-tools/idea/.idea/ dev-tools/idea/.idea/copyright/ dev-tools/idea/lucene/ dev-tools/idea/lucene/contrib/ant/ dev-tools/idea/lucene/contrib/queryparser/ dev-tools...

Modified: lucene/dev/branches/docvalues/solr/src/test/org/apache/solr/handler/TestCSVLoader.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/docvalues/solr/src/test/org/apache/solr/handler/TestCSVLoader.java?rev=1068809&r1=1068808&r2=1068809&view=diff
==============================================================================
--- lucene/dev/branches/docvalues/solr/src/test/org/apache/solr/handler/TestCSVLoader.java (original)
+++ lucene/dev/branches/docvalues/solr/src/test/org/apache/solr/handler/TestCSVLoader.java Wed Feb  9 09:35:27 2011
@@ -41,6 +41,7 @@ public class TestCSVLoader extends SolrT
   String def_charset = "UTF-8";
   File file = new File(filename);
 
+  @Override
   @Before
   public void setUp() throws Exception {
     // if you override setUp or tearDown, you better call
@@ -49,6 +50,7 @@ public class TestCSVLoader extends SolrT
     cleanup();
   }
   
+  @Override
   @After
   public void tearDown() throws Exception {
     // if you override setUp or tearDown, you better call
@@ -76,7 +78,7 @@ public class TestCSVLoader extends SolrT
   }
 
   void cleanup() {
-    assertU(delQ("id:[100 TO 110]"));
+    assertU(delQ("*:*"));
     assertU(commit());
   }
 

Modified: lucene/dev/branches/docvalues/solr/src/test/org/apache/solr/handler/TestReplicationHandler.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/docvalues/solr/src/test/org/apache/solr/handler/TestReplicationHandler.java?rev=1068809&r1=1068808&r2=1068809&view=diff
==============================================================================
--- lucene/dev/branches/docvalues/solr/src/test/org/apache/solr/handler/TestReplicationHandler.java (original)
+++ lucene/dev/branches/docvalues/solr/src/test/org/apache/solr/handler/TestReplicationHandler.java Wed Feb  9 09:35:27 2011
@@ -25,9 +25,11 @@ import org.apache.lucene.store.SimpleFSD
 import org.apache.solr.SolrTestCaseJ4;
 import org.apache.solr.TestDistributedSearch;
 import org.apache.solr.client.solrj.SolrServer;
+import org.apache.solr.client.solrj.SolrRequest;
 import org.apache.solr.client.solrj.SolrServerException;
 import org.apache.solr.client.solrj.embedded.JettySolrRunner;
 import org.apache.solr.client.solrj.impl.CommonsHttpSolrServer;
+import org.apache.solr.client.solrj.request.QueryRequest;
 import org.apache.solr.client.solrj.response.QueryResponse;
 import org.apache.solr.common.SolrDocument;
 import org.apache.solr.common.SolrDocumentList;
@@ -42,6 +44,8 @@ import org.junit.Test;
 
 import java.io.*;
 import java.net.URL;
+import java.util.Map;
+import java.util.HashMap;
 
 /**
  * Test for ReplicationHandler
@@ -53,7 +57,6 @@ public class TestReplicationHandler exte
 
 
   private static final String CONF_DIR = "." + File.separator + "solr" + File.separator + "conf" + File.separator;
-  private static final String SLAVE_CONFIG = CONF_DIR + "solrconfig-slave.xml";
 
   static JettySolrRunner masterJetty, slaveJetty;
   static SolrServer masterClient, slaveClient;
@@ -157,6 +160,80 @@ public class TestReplicationHandler exte
     return res;
   }
   
+  private NamedList<Object> getDetails(SolrServer s) throws Exception {
+    
+
+    ModifiableSolrParams params = new ModifiableSolrParams();
+    params.set("command","details");
+    params.set("qt","/replication");
+    QueryRequest req = new QueryRequest(params);
+
+    NamedList<Object> res = s.request(req);
+
+    assertNotNull("null response from server", res);
+
+    @SuppressWarnings("unchecked") NamedList<Object> details 
+      = (NamedList<Object>) res.get("details");
+
+    assertNotNull("null details", details);
+
+    return details;
+  }
+
+  @Test
+  public void testDetails() throws Exception {
+    { 
+      NamedList<Object> details = getDetails(masterClient);
+      
+      assertEquals("master isMaster?", 
+                   "true", details.get("isMaster"));
+      assertEquals("master isSlave?", 
+                   "false", details.get("isSlave"));
+      assertNotNull("master has master section", 
+                    details.get("master"));
+    }
+    {
+      NamedList<Object> details = getDetails(slaveClient);
+      
+      assertEquals("slave isMaster?", 
+                   "false", details.get("isMaster"));
+      assertEquals("slave isSlave?", 
+                   "true", details.get("isSlave"));
+      assertNotNull("slave has slave section", 
+                    details.get("slave"));
+    }
+
+    SolrInstance repeater = null;
+    JettySolrRunner repeaterJetty = null;
+    SolrServer repeaterClient = null;
+    try {
+      repeater = new SolrInstance("repeater", masterJetty.getLocalPort());
+      repeater.setUp();
+      repeaterJetty = createJetty(repeater);
+      repeaterClient = createNewSolrServer(repeaterJetty.getLocalPort());
+
+      
+      NamedList<Object> details = getDetails(repeaterClient);
+      
+      assertEquals("repeater isMaster?", 
+                   "true", details.get("isMaster"));
+      assertEquals("repeater isSlave?", 
+                   "true", details.get("isSlave"));
+      assertNotNull("repeater has master section", 
+                    details.get("master"));
+      assertNotNull("repeater has slave section", 
+                    details.get("slave"));
+
+    } finally {
+      try { 
+        if (repeaterJetty != null) repeaterJetty.stop(); 
+      } catch (Exception e) { /* :NOOP: */ }
+      try { 
+        if (repeater != null) repeater.tearDown();
+      } catch (Exception e) { /* :NOOP: */ }
+    }
+  }
+
   @Test
   public void testReplicateAfterWrite2Slave() throws Exception {
     clearIndexWithReplication();
@@ -250,14 +327,15 @@ public class TestReplicationHandler exte
     masterClient.commit();
 
     //change the schema on master
-    copyFile(getFile(CONF_DIR + "schema-replication2.xml"), new File(master.getConfDir(), "schema.xml"));
+    master.copyConfigFile(CONF_DIR + "schema-replication2.xml", "schema.xml");
 
     masterJetty.stop();
 
     masterJetty = createJetty(master);
     masterClient = createNewSolrServer(masterJetty.getLocalPort());
 
-    copyFile(getFile(SLAVE_CONFIG), new File(slave.getConfDir(), "solrconfig.xml"), masterJetty.getLocalPort());
+    slave.setTestPort(masterJetty.getLocalPort());
+    slave.copyConfigFile(slave.getSolrConfigFile(), "solrconfig.xml");
 
     slaveJetty.stop();
     slaveJetty = createJetty(slave);
@@ -349,7 +427,7 @@ public class TestReplicationHandler exte
   public void testSnapPullWithMasterUrl() throws Exception {
     //change solrconfig on slave
     //this has no entry for pollinginterval
-    copyFile(getFile(CONF_DIR + "solrconfig-slave1.xml"), new File(slave.getConfDir(), "solrconfig.xml"), masterJetty.getLocalPort());
+    slave.copyConfigFile(CONF_DIR + "solrconfig-slave1.xml", "solrconfig.xml");
     slaveJetty.stop();
     slaveJetty = createJetty(slave);
     slaveClient = createNewSolrServer(slaveJetty.getLocalPort());
@@ -386,7 +464,7 @@ public class TestReplicationHandler exte
 
     // NOTE: at this point, the slave is not polling any more
     // restore it.
-    copyFile(getFile(CONF_DIR + "solrconfig-slave.xml"), new File(slave.getConfDir(), "solrconfig.xml"), masterJetty.getLocalPort());
+    slave.copyConfigFile(CONF_DIR + "solrconfig-slave.xml", "solrconfig.xml");
     slaveJetty.stop();
     slaveJetty = createJetty(slave);
     slaveClient = createNewSolrServer(slaveJetty.getLocalPort());
@@ -410,15 +488,16 @@ public class TestReplicationHandler exte
     assertEquals(nDocs, masterQueryResult.getNumFound());
 
     //change solrconfig having 'replicateAfter startup' option on master
-    copyFile(getFile(CONF_DIR + "solrconfig-master2.xml"),
-            new File(master.getConfDir(), "solrconfig.xml"));
+    master.copyConfigFile(CONF_DIR + "solrconfig-master2.xml",
+                          "solrconfig.xml");
 
     masterJetty.stop();
 
     masterJetty = createJetty(master);
     masterClient = createNewSolrServer(masterJetty.getLocalPort());
 
-    copyFile(getFile(SLAVE_CONFIG), new File(slave.getConfDir(), "solrconfig.xml"), masterJetty.getLocalPort());
+    slave.setTestPort(masterJetty.getLocalPort());
+    slave.copyConfigFile(slave.getSolrConfigFile(), "solrconfig.xml");
 
     //start slave
     slaveJetty = createJetty(slave);
@@ -435,11 +514,14 @@ public class TestReplicationHandler exte
 
     // NOTE: the master only replicates after startup now!
     // revert that change.
-    copyFile(getFile(CONF_DIR + "solrconfig-master.xml"), new File(master.getConfDir(), "solrconfig.xml"));    
+    master.copyConfigFile(CONF_DIR + "solrconfig-master.xml", "solrconfig.xml");
     masterJetty.stop();
     masterJetty = createJetty(master);
     masterClient = createNewSolrServer(masterJetty.getLocalPort());
-    copyFile(getFile(SLAVE_CONFIG), new File(slave.getConfDir(), "solrconfig.xml"), masterJetty.getLocalPort());
+
+    slave.setTestPort(masterJetty.getLocalPort());
+    slave.copyConfigFile(slave.getSolrConfigFile(), "solrconfig.xml");
+
     //start slave
     slaveJetty.stop();
     slaveJetty = createJetty(slave);
@@ -477,20 +559,24 @@ public class TestReplicationHandler exte
     masterClient.commit();
 
     //change solrconfig on master
-    copyFile(getFile(CONF_DIR + "solrconfig-master1.xml"), new File(master.getConfDir(), "solrconfig.xml"));
+    master.copyConfigFile(CONF_DIR + "solrconfig-master1.xml", 
+                          "solrconfig.xml");
 
     //change schema on master
-    copyFile(getFile(CONF_DIR + "schema-replication2.xml"), new File(master.getConfDir(), "schema.xml"));
+    master.copyConfigFile(CONF_DIR + "schema-replication2.xml", 
+                          "schema.xml");
 
     //keep a copy of the new schema
-    copyFile(getFile(CONF_DIR + "schema-replication2.xml"), new File(master.getConfDir(), "schema-replication2.xml"));
+    master.copyConfigFile(CONF_DIR + "schema-replication2.xml", 
+                          "schema-replication2.xml");
 
     masterJetty.stop();
 
     masterJetty = createJetty(master);
     masterClient = createNewSolrServer(masterJetty.getLocalPort());
 
-    copyFile(getFile(SLAVE_CONFIG), new File(slave.getConfDir(), "solrconfig.xml"), masterJetty.getLocalPort());
+    slave.setTestPort(masterJetty.getLocalPort());
+    slave.copyConfigFile(slave.getSolrConfigFile(), "solrconfig.xml");
 
     slaveJetty.stop();
     slaveJetty = createJetty(slave);
@@ -520,14 +606,13 @@ public class TestReplicationHandler exte
   
   @Test
   public void testBackup() throws Exception {
-
     masterJetty.stop();
-    copyFile(getFile(CONF_DIR + "solrconfig-master1.xml"), new File(master.getConfDir(), "solrconfig.xml"));
+    master.copyConfigFile(CONF_DIR + "solrconfig-master1.xml", 
+                          "solrconfig.xml");
 
     masterJetty = createJetty(master);
     masterClient = createNewSolrServer(masterJetty.getLocalPort());
 
-
     nDocs--;
     masterClient.deleteByQuery("*:*");
     for (int i = 0; i < nDocs; i++)
@@ -537,6 +622,7 @@ public class TestReplicationHandler exte
    
     class BackupThread extends Thread {
       volatile String fail = null;
+      @Override
       public void run() {
         String masterUrl = "http://localhost:" + masterJetty.getLocalPort() + "/solr/replication?command=" + ReplicationHandler.CMD_BACKUP;
         URL url;
@@ -561,6 +647,7 @@ public class TestReplicationHandler exte
       volatile String fail = null;
       volatile String response = null;
       volatile boolean success = false;
+      @Override
       public void run() {
         String masterUrl = "http://localhost:" + masterJetty.getLocalPort() + "/solr/replication?command=" + ReplicationHandler.CMD_DETAILS;
         URL url;
@@ -568,7 +655,7 @@ public class TestReplicationHandler exte
         try {
           url = new URL(masterUrl);
           stream = url.openStream();
-          response = IOUtils.toString(stream);
+          response = IOUtils.toString(stream, "UTF-8");
           if(response.contains("<str name=\"status\">success</str>")) {
             success = true;
           }
@@ -620,6 +707,7 @@ public class TestReplicationHandler exte
     assertEquals(nDocs, hits.totalHits);
     searcher.close();
     dir.close();
+    AbstractSolrTestCase.recurseDelete(snapDir); // clean up the snap dir
   }
 
   /* character copy of file using UTF-8 */
@@ -646,19 +734,22 @@ public class TestReplicationHandler exte
 
   private static class SolrInstance {
 
-    String name;
-    Integer masterPort;
-    File homeDir;
-    File confDir;
-    File dataDir;
+    private String name;
+    private Integer testPort;
+    private File homeDir;
+    private File confDir;
+    private File dataDir;
 
     /**
-     * if masterPort is null, this instance is a master -- otherwise this instance is a slave, and assumes the master is
-     * on localhost at the specified port.
+     * @param name used to pick new solr home dir, as well as which 
+     *        "solrconfig-${name}.xml" file gets copied
+     *        to solrconfig.xml in new conf dir.
+     * @param testPort if not null, used as a replacement for
+     *        TEST_PORT in the cloned config files.
      */
-    public SolrInstance(String name, Integer port) {
+    public SolrInstance(String name, Integer testPort) {
       this.name = name;
-      this.masterPort = port;
+      this.testPort = testPort;
     }
 
     public String getHomeDir() {
@@ -678,43 +769,47 @@ public class TestReplicationHandler exte
     }
 
     public String getSolrConfigFile() {
-      String fname = "";
-      if (null == masterPort)
-        fname = CONF_DIR + "solrconfig-master.xml";
-      else
-        fname = SLAVE_CONFIG;
-      return fname;
+      return CONF_DIR + "solrconfig-"+name+".xml";
+    }
+    
+    /** If it needs to change */
+    public void setTestPort(Integer testPort) {
+      this.testPort = testPort;
     }
 
     public void setUp() throws Exception {
       System.setProperty("solr.test.sys.prop1", "propone");
       System.setProperty("solr.test.sys.prop2", "proptwo");
 
-      File home = new File(TEMP_DIR,
-              getClass().getName() + "-" + System.currentTimeMillis());
-
-      if (null == masterPort) {
-        homeDir = new File(home, "master");
-        dataDir = new File(homeDir, "data");
-        confDir = new File(homeDir, "conf");
-      } else {
-        homeDir = new File(home, "slave");
-        dataDir = new File(homeDir, "data");
-        confDir = new File(homeDir, "conf");
-      }
+      File home = new File(TEMP_DIR, 
+                           getClass().getName() + "-" + 
+                           System.currentTimeMillis());
+                           
+
+      homeDir = new File(home, name);
+      dataDir = new File(homeDir, "data");
+      confDir = new File(homeDir, "conf");
 
       homeDir.mkdirs();
       dataDir.mkdirs();
       confDir.mkdirs();
 
       File f = new File(confDir, "solrconfig.xml");
-      copyFile(getFile(getSolrConfigFile()), f, masterPort);
-      f = new File(confDir, "schema.xml");
-      copyFile(getFile(getSchemaFile()), f);
+      copyConfigFile(getSolrConfigFile(), "solrconfig.xml");
+      copyConfigFile(getSchemaFile(), "schema.xml");
     }
 
     public void tearDown() throws Exception {
       AbstractSolrTestCase.recurseDelete(homeDir);
     }
+
+    public void copyConfigFile(String srcFile, String destFile) 
+      throws IOException {
+
+      copyFile(getFile(srcFile), 
+               new File(confDir, destFile),
+               testPort);
+    }
+
   }
 }

Modified: lucene/dev/branches/docvalues/solr/src/test/org/apache/solr/handler/component/DistributedSpellCheckComponentTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/docvalues/solr/src/test/org/apache/solr/handler/component/DistributedSpellCheckComponentTest.java?rev=1068809&r1=1068808&r2=1068809&view=diff
==============================================================================
--- lucene/dev/branches/docvalues/solr/src/test/org/apache/solr/handler/component/DistributedSpellCheckComponentTest.java (original)
+++ lucene/dev/branches/docvalues/solr/src/test/org/apache/solr/handler/component/DistributedSpellCheckComponentTest.java Wed Feb  9 09:35:27 2011
@@ -1,5 +1,22 @@
 package org.apache.solr.handler.component;
 
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
 import org.apache.solr.BaseDistributedSearchTestCase;
 import org.apache.solr.client.solrj.SolrServer;
 import org.apache.solr.common.params.ModifiableSolrParams;

Modified: lucene/dev/branches/docvalues/solr/src/test/org/apache/solr/handler/component/DistributedTermsComponentTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/docvalues/solr/src/test/org/apache/solr/handler/component/DistributedTermsComponentTest.java?rev=1068809&r1=1068808&r2=1068809&view=diff
==============================================================================
--- lucene/dev/branches/docvalues/solr/src/test/org/apache/solr/handler/component/DistributedTermsComponentTest.java (original)
+++ lucene/dev/branches/docvalues/solr/src/test/org/apache/solr/handler/component/DistributedTermsComponentTest.java Wed Feb  9 09:35:27 2011
@@ -1,5 +1,22 @@
 package org.apache.solr.handler.component;
 
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
 import org.apache.solr.BaseDistributedSearchTestCase;
 
 /**

Modified: lucene/dev/branches/docvalues/solr/src/test/org/apache/solr/handler/component/QueryElevationComponentTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/docvalues/solr/src/test/org/apache/solr/handler/component/QueryElevationComponentTest.java?rev=1068809&r1=1068808&r2=1068809&view=diff
==============================================================================
--- lucene/dev/branches/docvalues/solr/src/test/org/apache/solr/handler/component/QueryElevationComponentTest.java (original)
+++ lucene/dev/branches/docvalues/solr/src/test/org/apache/solr/handler/component/QueryElevationComponentTest.java Wed Feb  9 09:35:27 2011
@@ -55,6 +55,14 @@ public class QueryElevationComponentTest
     clearIndex();
     assertU(commit());
     assertU(optimize());
+    // make sure this component is initialized correctly for each test
+    QueryElevationComponent comp = (QueryElevationComponent)h.getCore().getSearchComponent("elevate");
+    NamedList<String> args = new NamedList<String>();
+    args.add( QueryElevationComponent.CONFIG_FILE, "elevate.xml" );
+    args.add( QueryElevationComponent.FIELD_TYPE, "string" );
+    comp.init( args );
+    comp.inform( h.getCore() );
+    comp.forceElevation = false; 
   }
   
   @Test
@@ -71,7 +79,7 @@ public class QueryElevationComponentTest
     comp.inform( core );
 
     SolrQueryRequest req = req();
-    IndexReader reader = req.getSearcher().getReader();
+    IndexReader reader = req.getSearcher().getIndexReader();
     Map<String, ElevationObj> map = comp.getElevationMap( reader, core );
     req.close();
 
@@ -112,13 +120,13 @@ public class QueryElevationComponentTest
   @Test
   public void testSorting() throws IOException
   {
-    assertU(adoc("id", "a", "title", "ipod",           "str_s", "a" ));
-    assertU(adoc("id", "b", "title", "ipod ipod",      "str_s", "b" ));
-    assertU(adoc("id", "c", "title", "ipod ipod ipod", "str_s", "c" ));
-
-    assertU(adoc("id", "x", "title", "boosted",                 "str_s", "x" ));
-    assertU(adoc("id", "y", "title", "boosted boosted",         "str_s", "y" ));
-    assertU(adoc("id", "z", "title", "boosted boosted boosted", "str_s", "z" ));
+    assertU(adoc("id", "a", "title", "ipod",           "str_s1", "a" ));
+    assertU(adoc("id", "b", "title", "ipod ipod",      "str_s1", "b" ));
+    assertU(adoc("id", "c", "title", "ipod ipod ipod", "str_s1", "c" ));
+
+    assertU(adoc("id", "x", "title", "boosted",                 "str_s1", "x" ));
+    assertU(adoc("id", "y", "title", "boosted boosted",         "str_s1", "y" ));
+    assertU(adoc("id", "z", "title", "boosted boosted boosted", "str_s1", "z" ));
     assertU(commit());
     
     String query = "title:ipod";
@@ -130,7 +138,7 @@ public class QueryElevationComponentTest
     args.put( "indent", "true" );
     //args.put( CommonParams.FL, "id,title,score" );
     SolrQueryRequest req = new LocalSolrQueryRequest( h.getCore(), new MapSolrParams( args) );
-    IndexReader reader = req.getSearcher().getReader();
+    IndexReader reader = req.getSearcher().getIndexReader();
     QueryElevationComponent booster = (QueryElevationComponent)req.getCore().getSearchComponent( "elevate" );
 
     assertQ("Make sure standard sort works as expected", req
@@ -180,7 +188,7 @@ public class QueryElevationComponentTest
     // Try normal sort by 'id'
     // default 'forceBoost' should be false
     assertEquals( false, booster.forceElevation );
-    args.put( CommonParams.SORT, "str_s asc" );
+    args.put( CommonParams.SORT, "str_s1 asc" );
     assertQ( null, req
         ,"//*[@numFound='4']"
         ,"//result/doc[1]/str[@name='id'][.='a']"
@@ -255,7 +263,7 @@ public class QueryElevationComponentTest
     comp.inform( h.getCore() );
 
     SolrQueryRequest req = req();
-    IndexReader reader = req.getSearcher().getReader();
+    IndexReader reader = req.getSearcher().getIndexReader();
     Map<String, ElevationObj> map = comp.getElevationMap(reader, h.getCore());
     assertTrue( map.get( "aaa" ).priority.containsKey( new BytesRef("A") ) );
     assertNull( map.get( "bbb" ) );
@@ -267,7 +275,7 @@ public class QueryElevationComponentTest
     assertU(commit());
 
     req = req();
-    reader = req.getSearcher().getReader();
+    reader = req.getSearcher().getIndexReader();
     map = comp.getElevationMap(reader, h.getCore());
     assertNull( map.get( "aaa" ) );
     assertTrue( map.get( "bbb" ).priority.containsKey( new BytesRef("B") ) );

Modified: lucene/dev/branches/docvalues/solr/src/test/org/apache/solr/handler/component/SpellCheckComponentTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/docvalues/solr/src/test/org/apache/solr/handler/component/SpellCheckComponentTest.java?rev=1068809&r1=1068808&r2=1068809&view=diff
==============================================================================
--- lucene/dev/branches/docvalues/solr/src/test/org/apache/solr/handler/component/SpellCheckComponentTest.java (original)
+++ lucene/dev/branches/docvalues/solr/src/test/org/apache/solr/handler/component/SpellCheckComponentTest.java Wed Feb  9 09:35:27 2011
@@ -40,6 +40,11 @@ public class SpellCheckComponentTest ext
   @BeforeClass
   public static void beforeClass() throws Exception {
     initCore("solrconfig-spellcheckcomponent.xml","schema.xml");
+  }
+  
+  @Override
+  public void setUp() throws Exception {
+    super.setUp();
     assertU(adoc("id", "0", "lowerfilt", "This is a title"));
     assertU((adoc("id", "1", "lowerfilt",
             "The quick reb fox jumped over the lazy brown dogs.")));
@@ -55,6 +60,15 @@ public class SpellCheckComponentTest ext
     assertU((commit()));
   }
   
+  @Override
+  public void tearDown() throws Exception {
+    super.tearDown();
+    assertU(delQ("*:*"));
+    optimize();
+    assertU((commit()));
+
+  }
+  
   @Test
   public void testExtendedResultsCount() throws Exception {
     assertJQ(req("qt",rh, SpellCheckComponent.COMPONENT_NAME, "true", SpellCheckComponent.SPELLCHECK_BUILD, "true", "q","bluo", SpellCheckComponent.SPELLCHECK_COUNT,"5", SpellCheckComponent.SPELLCHECK_EXTENDED_RESULTS,"false")

Modified: lucene/dev/branches/docvalues/solr/src/test/org/apache/solr/highlight/HighlighterTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/docvalues/solr/src/test/org/apache/solr/highlight/HighlighterTest.java?rev=1068809&r1=1068808&r2=1068809&view=diff
==============================================================================
--- lucene/dev/branches/docvalues/solr/src/test/org/apache/solr/highlight/HighlighterTest.java (original)
+++ lucene/dev/branches/docvalues/solr/src/test/org/apache/solr/highlight/HighlighterTest.java Wed Feb  9 09:35:27 2011
@@ -769,4 +769,30 @@ public class HighlighterTest extends Sol
             );
 
   }
+  
+  public void testSubwordWildcardHighlight() {
+    assertU(adoc("subword", "lorem PowerShot.com ipsum", "id", "1"));
+    assertU(commit());
+    assertQ("subword wildcard highlighting", 
+            req("q", "subword:pow*", "hl", "true", "hl.fl", "subword"),
+            "//lst[@name='highlighting']/lst[@name='1']" +
+            "/arr[@name='subword']/str='lorem <em>PowerShot.com</em> ipsum'");
+  }
+
+  public void testSubwordWildcardHighlightWithTermOffsets() {
+    assertU(adoc("subword_offsets", "lorem PowerShot.com ipsum", "id", "1"));
+    assertU(commit());
+    assertQ("subword wildcard highlighting", 
+            req("q", "subword_offsets:pow*", "hl", "true", "hl.fl", "subword_offsets"),
+            "//lst[@name='highlighting']/lst[@name='1']" +
+            "/arr[@name='subword_offsets']/str='lorem <em>PowerShot.com</em> ipsum'");
+  }
+  public void testSubwordWildcardHighlightWithTermOffsets2() {
+    assertU(adoc("subword_offsets", "lorem PowerShot ipsum", "id", "1"));
+    assertU(commit());
+    assertQ("subword wildcard highlighting",
+            req("q", "subword_offsets:pow*", "hl", "true", "hl.fl", "subword_offsets"),
+            "//lst[@name='highlighting']/lst[@name='1']" +
+            "/arr[@name='subword_offsets']/str='lorem <em>PowerShot</em> ipsum'");
+ }
 }

Modified: lucene/dev/branches/docvalues/solr/src/test/org/apache/solr/request/JSONWriterTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/docvalues/solr/src/test/org/apache/solr/request/JSONWriterTest.java?rev=1068809&r1=1068808&r2=1068809&view=diff
==============================================================================
--- lucene/dev/branches/docvalues/solr/src/test/org/apache/solr/request/JSONWriterTest.java (original)
+++ lucene/dev/branches/docvalues/solr/src/test/org/apache/solr/request/JSONWriterTest.java Wed Feb  9 09:35:27 2011
@@ -66,21 +66,6 @@ public class JSONWriterTest extends Solr
   }
 
   @Test
-  public void testPHPS() throws IOException {
-    SolrQueryRequest req = req("dummy");
-    SolrQueryResponse rsp = new SolrQueryResponse();
-    QueryResponseWriter w = new PHPSerializedResponseWriter();
-
-    StringWriter buf = new StringWriter();
-    rsp.add("data1", "hello");
-    rsp.add("data2", 42);
-    rsp.add("data3", true);
-    w.write(buf, req, rsp);
-    assertEquals(buf.toString(), "a:3:{s:5:\"data1\";s:5:\"hello\";s:5:\"data2\";i:42;s:5:\"data3\";b:1;}");
-    req.close();
-  }
-
-  @Test
   public void testJSON() throws IOException {
     SolrQueryRequest req = req("wt","json","json.nl","arrarr");
     SolrQueryResponse rsp = new SolrQueryResponse();

Modified: lucene/dev/branches/docvalues/solr/src/test/org/apache/solr/request/SimpleFacetsTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/docvalues/solr/src/test/org/apache/solr/request/SimpleFacetsTest.java?rev=1068809&r1=1068808&r2=1068809&view=diff
==============================================================================
--- lucene/dev/branches/docvalues/solr/src/test/org/apache/solr/request/SimpleFacetsTest.java (original)
+++ lucene/dev/branches/docvalues/solr/src/test/org/apache/solr/request/SimpleFacetsTest.java Wed Feb  9 09:35:27 2011
@@ -169,6 +169,16 @@ public class SimpleFacetsTest extends So
             ,"//lst[@name='trait_s']/int[@name='Pig'][.='1']"
             );
 
+    // test excluding main query
+    assertQ(req("q", "{!tag=main}id:43"
+                 ,"facet", "true"
+                 ,"facet.query", "{!key=foo}id:42"
+                 ,"facet.query", "{!ex=main key=bar}id:42"    // only matches when we exclude main query
+                 )
+             ,"//lst[@name='facet_queries']/int[@name='foo'][.='0']"
+             ,"//lst[@name='facet_queries']/int[@name='bar'][.='1']"
+             );
+
     assertQ("check counts for applied facet queries using filtering (fq)",
             req("q", "id:[42 TO 47]"
                 ,"facet", "true"

Modified: lucene/dev/branches/docvalues/solr/src/test/org/apache/solr/request/TestBinaryResponseWriter.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/docvalues/solr/src/test/org/apache/solr/request/TestBinaryResponseWriter.java?rev=1068809&r1=1068808&r2=1068809&view=diff
==============================================================================
--- lucene/dev/branches/docvalues/solr/src/test/org/apache/solr/request/TestBinaryResponseWriter.java (original)
+++ lucene/dev/branches/docvalues/solr/src/test/org/apache/solr/request/TestBinaryResponseWriter.java Wed Feb  9 09:35:27 2011
@@ -38,10 +38,12 @@ import java.util.UUID;
  */
 public class TestBinaryResponseWriter extends AbstractSolrTestCase {
 
+  @Override
   public String getSchemaFile() {
     return "schema12.xml";
   }
 
+  @Override
   public String getSolrConfigFile() {
     return "solrconfig.xml";
   }

Modified: lucene/dev/branches/docvalues/solr/src/test/org/apache/solr/request/TestFaceting.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/docvalues/solr/src/test/org/apache/solr/request/TestFaceting.java?rev=1068809&r1=1068808&r2=1068809&view=diff
==============================================================================
--- lucene/dev/branches/docvalues/solr/src/test/org/apache/solr/request/TestFaceting.java (original)
+++ lucene/dev/branches/docvalues/solr/src/test/org/apache/solr/request/TestFaceting.java Wed Feb  9 09:35:27 2011
@@ -67,14 +67,14 @@ public class TestFaceting extends SolrTe
     req = lrf.makeRequest("q","*:*");
 
     TermIndex ti = new TermIndex(proto.field());
-    NumberedTermsEnum te = ti.getEnumerator(req.getSearcher().getReader());
+    NumberedTermsEnum te = ti.getEnumerator(req.getSearcher().getIndexReader());
 
     // iterate through first
     while(te.term() != null) te.next();
     assertEquals(size, te.getTermNumber());
     te.close();
 
-    te = ti.getEnumerator(req.getSearcher().getReader());
+    te = ti.getEnumerator(req.getSearcher().getIndexReader());
 
     Random r = new Random(size);
     // test seeking by term string

Modified: lucene/dev/branches/docvalues/solr/src/test/org/apache/solr/request/TestWriterPerf.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/docvalues/solr/src/test/org/apache/solr/request/TestWriterPerf.java?rev=1068809&r1=1068808&r2=1068809&view=diff
==============================================================================
--- lucene/dev/branches/docvalues/solr/src/test/org/apache/solr/request/TestWriterPerf.java (original)
+++ lucene/dev/branches/docvalues/solr/src/test/org/apache/solr/request/TestWriterPerf.java Wed Feb  9 09:35:27 2011
@@ -37,15 +37,19 @@ public class TestWriterPerf extends Abst
   public static final Logger log 
     = LoggerFactory.getLogger(TestWriterPerf.class);
 
+  @Override
   public String getSchemaFile() { return "schema11.xml"; }
+  @Override
   public String getSolrConfigFile() { return "solrconfig-functionquery.xml"; }
   public String getCoreName() { return "basic"; }
 
+  @Override
   public void setUp() throws Exception {
     // if you override setUp or tearDown, you better call
     // the super classes version
     super.setUp();
   }
+  @Override
   public void tearDown() throws Exception {
     // if you override setUp or tearDown, you better call
     // the super classes version

Modified: lucene/dev/branches/docvalues/solr/src/test/org/apache/solr/schema/CustomSimilarityFactory.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/docvalues/solr/src/test/org/apache/solr/schema/CustomSimilarityFactory.java?rev=1068809&r1=1068808&r2=1068809&view=diff
==============================================================================
--- lucene/dev/branches/docvalues/solr/src/test/org/apache/solr/schema/CustomSimilarityFactory.java (original)
+++ lucene/dev/branches/docvalues/solr/src/test/org/apache/solr/schema/CustomSimilarityFactory.java Wed Feb  9 09:35:27 2011
@@ -16,10 +16,11 @@
  */
 package org.apache.solr.schema;
 
-import org.apache.lucene.search.Similarity;
+import org.apache.lucene.search.SimilarityProvider;
 
 public class CustomSimilarityFactory extends SimilarityFactory {
-  public Similarity getSimilarity() {
+  @Override
+  public SimilarityProvider getSimilarityProvider() {
     return new MockConfigurableSimilarity(params.get("echo"));
   }
 }

Modified: lucene/dev/branches/docvalues/solr/src/test/org/apache/solr/schema/DateFieldTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/docvalues/solr/src/test/org/apache/solr/schema/DateFieldTest.java?rev=1068809&r1=1068808&r2=1068809&view=diff
==============================================================================
--- lucene/dev/branches/docvalues/solr/src/test/org/apache/solr/schema/DateFieldTest.java (original)
+++ lucene/dev/branches/docvalues/solr/src/test/org/apache/solr/schema/DateFieldTest.java Wed Feb  9 09:35:27 2011
@@ -29,6 +29,7 @@ public class DateFieldTest extends Lucen
   protected DateField f = null;
   protected DateMathParser p = new DateMathParser(UTC, Locale.US);
 
+  @Override
   public void setUp()  throws Exception {
     super.setUp();
     f = new DateField();

Modified: lucene/dev/branches/docvalues/solr/src/test/org/apache/solr/schema/IndexSchemaTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/docvalues/solr/src/test/org/apache/solr/schema/IndexSchemaTest.java?rev=1068809&r1=1068808&r2=1068809&view=diff
==============================================================================
--- lucene/dev/branches/docvalues/solr/src/test/org/apache/solr/schema/IndexSchemaTest.java (original)
+++ lucene/dev/branches/docvalues/solr/src/test/org/apache/solr/schema/IndexSchemaTest.java Wed Feb  9 09:35:27 2011
@@ -27,7 +27,7 @@ import org.apache.solr.common.params.Map
 import org.apache.solr.core.SolrCore;
 import org.apache.solr.request.LocalSolrQueryRequest;
 import org.apache.solr.request.SolrQueryRequest;
-import org.apache.lucene.search.Similarity;
+import org.apache.lucene.search.SimilarityProvider;
 import org.junit.BeforeClass;
 import org.junit.Test;
 
@@ -83,7 +83,7 @@ public class IndexSchemaTest extends Sol
   @Test
   public void testSimilarityFactory() {
     SolrCore core = h.getCore();
-    Similarity similarity = core.getSchema().getSimilarity();
+    SimilarityProvider similarity = core.getSchema().getSimilarityProvider();
     assertTrue("wrong class", similarity instanceof MockConfigurableSimilarity);
     assertEquals("is there an echo?", ((MockConfigurableSimilarity)similarity).getPassthrough());
   }

Modified: lucene/dev/branches/docvalues/solr/src/test/org/apache/solr/schema/TestBinaryField.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/docvalues/solr/src/test/org/apache/solr/schema/TestBinaryField.java?rev=1068809&r1=1068808&r2=1068809&view=diff
==============================================================================
--- lucene/dev/branches/docvalues/solr/src/test/org/apache/solr/schema/TestBinaryField.java (original)
+++ lucene/dev/branches/docvalues/solr/src/test/org/apache/solr/schema/TestBinaryField.java Wed Feb  9 09:35:27 2011
@@ -174,6 +174,7 @@ public class TestBinaryField extends Luc
   }
 
 
+  @Override
   public void tearDown() throws Exception {
     jetty.stop();
     super.tearDown();

Modified: lucene/dev/branches/docvalues/solr/src/test/org/apache/solr/search/FooQParserPlugin.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/docvalues/solr/src/test/org/apache/solr/search/FooQParserPlugin.java?rev=1068809&r1=1068808&r2=1068809&view=diff
==============================================================================
--- lucene/dev/branches/docvalues/solr/src/test/org/apache/solr/search/FooQParserPlugin.java (original)
+++ lucene/dev/branches/docvalues/solr/src/test/org/apache/solr/search/FooQParserPlugin.java Wed Feb  9 09:35:27 2011
@@ -27,6 +27,7 @@ import org.apache.lucene.index.Term;
 
 
 public class FooQParserPlugin extends QParserPlugin {
+  @Override
   public QParser createParser(String qstr, SolrParams localParams, SolrParams params, SolrQueryRequest req) {
     return new FooQParser(qstr, localParams, params, req);
   }
@@ -40,6 +41,7 @@ class FooQParser extends QParser {
     super(qstr, localParams, params, req);
   }
 
+  @Override
   public Query parse() throws ParseException {
     return new TermQuery(new Term(localParams.get(QueryParsing.F), localParams.get(QueryParsing.V)));
   }

Modified: lucene/dev/branches/docvalues/solr/src/test/org/apache/solr/search/TestDocSet.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/docvalues/solr/src/test/org/apache/solr/search/TestDocSet.java?rev=1068809&r1=1068808&r2=1068809&view=diff
==============================================================================
--- lucene/dev/branches/docvalues/solr/src/test/org/apache/solr/search/TestDocSet.java (original)
+++ lucene/dev/branches/docvalues/solr/src/test/org/apache/solr/search/TestDocSet.java Wed Feb  9 09:35:27 2011
@@ -24,8 +24,11 @@ import java.io.IOException;
 import org.apache.lucene.util.LuceneTestCase;
 import org.apache.lucene.util.OpenBitSet;
 import org.apache.lucene.util.OpenBitSetIterator;
+import org.apache.lucene.util.ReaderUtil;
 import org.apache.lucene.index.IndexReader;
 import org.apache.lucene.index.FilterIndexReader;
+import org.apache.lucene.index.IndexReader.AtomicReaderContext;
+import org.apache.lucene.index.IndexReader.ReaderContext;
 import org.apache.lucene.index.MultiReader;
 import org.apache.lucene.search.Filter;
 import org.apache.lucene.search.DocIdSet;
@@ -403,7 +406,8 @@ public class TestDocSet extends LuceneTe
     }
   }
 
-  public void doFilterTest(SolrIndexReader reader) throws IOException {
+  public void doFilterTest(IndexReader reader) throws IOException {
+    ReaderContext topLevelContext = reader.getTopReaderContext();
     OpenBitSet bs = getRandomSet(reader.maxDoc(), rand.nextInt(reader.maxDoc()+1));
     DocSet a = new BitDocSet(bs);
     DocSet b = getIntDocSet(bs);
@@ -411,24 +415,30 @@ public class TestDocSet extends LuceneTe
     Filter fa = a.getTopFilter();
     Filter fb = b.getTopFilter();
 
+    /*** top level filters are no longer supported
     // test top-level
-    DocIdSet da = fa.getDocIdSet(reader);
-    DocIdSet db = fb.getDocIdSet(reader);
+    DocIdSet da = fa.getDocIdSet(topLevelContext);
+    DocIdSet db = fb.getDocIdSet(topLevelContext);
     doTestIteratorEqual(da, db);
+    ***/
+
+    DocIdSet da;
+    DocIdSet db;
 
     // first test in-sequence sub readers
-    for (SolrIndexReader sir : reader.getLeafReaders()) {
-      da = fa.getDocIdSet(sir);
-      db = fb.getDocIdSet(sir);
+    for (AtomicReaderContext readerContext : ReaderUtil.leaves(topLevelContext)) {
+      da = fa.getDocIdSet(readerContext);
+      db = fb.getDocIdSet(readerContext);
       doTestIteratorEqual(da, db);
     }  
 
-    int nReaders = reader.getLeafReaders().length;
+    AtomicReaderContext[] leaves = ReaderUtil.leaves(topLevelContext);
+    int nReaders = leaves.length;
     // now test out-of-sequence sub readers
     for (int i=0; i<nReaders; i++) {
-      SolrIndexReader sir = reader.getLeafReaders()[rand.nextInt(nReaders)];
-      da = fa.getDocIdSet(sir);
-      db = fb.getDocIdSet(sir);
+      AtomicReaderContext readerContext = leaves[rand.nextInt(nReaders)];
+      da = fa.getDocIdSet(readerContext);
+      db = fb.getDocIdSet(readerContext);
       doTestIteratorEqual(da, db);
     }
   }
@@ -440,8 +450,7 @@ public class TestDocSet extends LuceneTe
 
     for (int i=0; i<5000; i++) {
       IndexReader r = dummyMultiReader(maxSeg, maxDoc);
-      SolrIndexReader sir = new SolrIndexReader(r, null, 0);
-      doFilterTest(sir);
+      doFilterTest(r);
     }
   }
 }

Modified: lucene/dev/branches/docvalues/solr/src/test/org/apache/solr/search/TestExtendedDismaxParser.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/docvalues/solr/src/test/org/apache/solr/search/TestExtendedDismaxParser.java?rev=1068809&r1=1068808&r2=1068809&view=diff
==============================================================================
--- lucene/dev/branches/docvalues/solr/src/test/org/apache/solr/search/TestExtendedDismaxParser.java (original)
+++ lucene/dev/branches/docvalues/solr/src/test/org/apache/solr/search/TestExtendedDismaxParser.java Wed Feb  9 09:35:27 2011
@@ -20,15 +20,19 @@ package org.apache.solr.search;
 import org.apache.solr.util.AbstractSolrTestCase;
 
 public class TestExtendedDismaxParser extends AbstractSolrTestCase {
+  @Override
   public String getSchemaFile() { return "schema12.xml"; }
+  @Override
   public String getSolrConfigFile() { return "solrconfig.xml"; }
   // public String getCoreName() { return "collection1"; }
 
+  @Override
   public void setUp() throws Exception {
     // if you override setUp or tearDown, you better call
     // the super classes version
     super.setUp();
   }
+  @Override
   public void tearDown() throws Exception {
     // if you override setUp or tearDown, you better call
     // the super classes version

Modified: lucene/dev/branches/docvalues/solr/src/test/org/apache/solr/search/TestFastLRUCache.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/docvalues/solr/src/test/org/apache/solr/search/TestFastLRUCache.java?rev=1068809&r1=1068808&r2=1068809&view=diff
==============================================================================
--- lucene/dev/branches/docvalues/solr/src/test/org/apache/solr/search/TestFastLRUCache.java (original)
+++ lucene/dev/branches/docvalues/solr/src/test/org/apache/solr/search/TestFastLRUCache.java Wed Feb  9 09:35:27 2011
@@ -334,6 +334,7 @@ public class TestFastLRUCache extends Lu
     for (int i=0; i<threads.length; i++) {
       final int seed=random.nextInt();
       threads[i] = new Thread() {
+          @Override
           public void run() {
             int ret = useCache(sc, numGets/nThreads, maxKey, seed);
             puts.addAndGet(ret);

Modified: lucene/dev/branches/docvalues/solr/src/test/org/apache/solr/search/TestIndexSearcher.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/docvalues/solr/src/test/org/apache/solr/search/TestIndexSearcher.java?rev=1068809&r1=1068808&r2=1068809&view=diff
==============================================================================
--- lucene/dev/branches/docvalues/solr/src/test/org/apache/solr/search/TestIndexSearcher.java (original)
+++ lucene/dev/branches/docvalues/solr/src/test/org/apache/solr/search/TestIndexSearcher.java Wed Feb  9 09:35:27 2011
@@ -16,6 +16,9 @@
  */
 package org.apache.solr.search;
 
+import org.apache.lucene.index.IndexReader.AtomicReaderContext;
+import org.apache.lucene.index.IndexReader.ReaderContext;
+import org.apache.lucene.util.ReaderUtil;
 import org.apache.solr.SolrTestCaseJ4;
 import org.apache.solr.request.SolrQueryRequest;
 import org.apache.solr.schema.SchemaField;
@@ -32,18 +35,26 @@ public class TestIndexSearcher extends S
   public static void beforeClass() throws Exception {
     initCore("solrconfig.xml","schema.xml");
   }
+  
+  @Override
+  public void tearDown() throws Exception {
+    super.tearDown();
+    assertU(delQ("*:*"));
+    optimize();
+    assertU((commit()));
+  }
 
   private String getStringVal(SolrQueryRequest sqr, String field, int doc) throws IOException {
     SchemaField sf = sqr.getSchema().getField(field);
     ValueSource vs = sf.getType().getValueSource(sf, null);
-    Map context = ValueSource.newContext();
+    Map context = ValueSource.newContext(sqr.getSearcher());
     vs.createWeight(context, sqr.getSearcher());
-    SolrIndexReader sr = sqr.getSearcher().getReader();
-    int idx = SolrIndexReader.readerIndex(doc, sr.getLeafOffsets());
-    int base = sr.getLeafOffsets()[idx];
-    SolrIndexReader sub = sr.getLeafReaders()[idx];
-    DocValues vals = vs.getValues(context, sub);
-    return vals.strVal(doc-base);
+    ReaderContext topReaderContext = sqr.getSearcher().getTopReaderContext();
+    AtomicReaderContext[] leaves = ReaderUtil.leaves(topReaderContext);
+    int idx = ReaderUtil.subIndex(doc, leaves);
+    AtomicReaderContext leaf = leaves[idx];
+    DocValues vals = vs.getValues(context, leaf);
+    return vals.strVal(doc-leaf.docBase);
   }
 
   public void testReopen() throws Exception {
@@ -53,7 +64,7 @@ public class TestIndexSearcher extends S
     assertU(commit());
 
     SolrQueryRequest sr1 = req("q","foo");
-    SolrIndexReader r1 = sr1.getSearcher().getReader();
+    ReaderContext rCtx1 = sr1.getSearcher().getTopReaderContext();
 
     String sval1 = getStringVal(sr1, "v_s",0);
     assertEquals("string1", sval1);
@@ -63,33 +74,33 @@ public class TestIndexSearcher extends S
     assertU(commit());
 
     SolrQueryRequest sr2 = req("q","foo");
-    SolrIndexReader r2 = sr2.getSearcher().getReader();
+    ReaderContext rCtx2 = sr2.getSearcher().getTopReaderContext();
 
     // make sure the readers share the first segment
     // Didn't work w/ older versions of lucene2.9 going from segment -> multi
-    assertEquals(r1.getLeafReaders()[0], r2.getLeafReaders()[0]);
+    assertEquals(ReaderUtil.leaves(rCtx1)[0].reader, ReaderUtil.leaves(rCtx2)[0].reader);
 
     assertU(adoc("id","5", "v_f","3.14159"));
     assertU(adoc("id","6", "v_f","8983", "v_s","string6"));
     assertU(commit());
 
     SolrQueryRequest sr3 = req("q","foo");
-    SolrIndexReader r3 = sr3.getSearcher().getReader();
+    ReaderContext rCtx3 = sr3.getSearcher().getTopReaderContext();
     // make sure the readers share segments
     // assertEquals(r1.getLeafReaders()[0], r3.getLeafReaders()[0]);
-    assertEquals(r2.getLeafReaders()[0], r3.getLeafReaders()[0]);
-    assertEquals(r2.getLeafReaders()[1], r3.getLeafReaders()[1]);
+    assertEquals(ReaderUtil.leaves(rCtx2)[0].reader, ReaderUtil.leaves(rCtx3)[0].reader);
+    assertEquals(ReaderUtil.leaves(rCtx2)[1].reader, ReaderUtil.leaves(rCtx3)[1].reader);
 
     sr1.close();
     sr2.close();            
 
     // should currently be 1, but this could change depending on future index management
-    int baseRefCount = r3.getRefCount();
+    int baseRefCount = rCtx3.reader.getRefCount();
     assertEquals(1, baseRefCount);
 
     assertU(commit());
     SolrQueryRequest sr4 = req("q","foo");
-    SolrIndexReader r4 = sr4.getSearcher().getReader();
+    ReaderContext rCtx4 = sr4.getSearcher().getTopReaderContext();
 
     // force an index change so the registered searcher won't be the one we are testing (and
     // then we should be able to test the refCount going all the way to 0
@@ -97,23 +108,23 @@ public class TestIndexSearcher extends S
     assertU(commit()); 
 
     // test that reader didn't change (according to equals at least... which uses the wrapped reader)
-    assertEquals(r3,r4);
-    assertEquals(baseRefCount+1, r4.getRefCount());
+    assertEquals(rCtx3.reader, rCtx4.reader);
+    assertEquals(baseRefCount+1, rCtx4.reader.getRefCount());
     sr3.close();
-    assertEquals(baseRefCount, r4.getRefCount());
+    assertEquals(baseRefCount, rCtx4.reader.getRefCount());
     sr4.close();
-    assertEquals(baseRefCount-1, r4.getRefCount());
+    assertEquals(baseRefCount-1, rCtx4.reader.getRefCount());
 
 
     SolrQueryRequest sr5 = req("q","foo");
-    SolrIndexReader r5 = sr5.getSearcher().getReader();
+    ReaderContext rCtx5 = sr5.getSearcher().getTopReaderContext();
 
     assertU(delI("1"));
     assertU(commit());
     SolrQueryRequest sr6 = req("q","foo");
-    SolrIndexReader r6 = sr6.getSearcher().getReader();
-    assertEquals(1, r6.getLeafReaders()[0].numDocs()); // only a single doc left in the first segment
-    assertTrue( !r5.getLeafReaders()[0].equals(r6.getLeafReaders()[0]) );  // readers now different
+    ReaderContext rCtx6 = sr6.getSearcher().getTopReaderContext();
+    assertEquals(1, ReaderUtil.leaves(rCtx6)[0].reader.numDocs()); // only a single doc left in the first segment
+    assertTrue( !ReaderUtil.leaves(rCtx5)[0].reader.equals(ReaderUtil.leaves(rCtx6)[0].reader) );  // readers now different
 
     sr5.close();
     sr6.close();

Modified: lucene/dev/branches/docvalues/solr/src/test/org/apache/solr/search/TestLRUCache.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/docvalues/solr/src/test/org/apache/solr/search/TestLRUCache.java?rev=1068809&r1=1068808&r2=1068809&view=diff
==============================================================================
--- lucene/dev/branches/docvalues/solr/src/test/org/apache/solr/search/TestLRUCache.java (original)
+++ lucene/dev/branches/docvalues/solr/src/test/org/apache/solr/search/TestLRUCache.java Wed Feb  9 09:35:27 2011
@@ -1,5 +1,22 @@
 package org.apache.solr.search;
 
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
 import java.io.IOException;
 import java.io.Serializable;
 import java.util.HashMap;

Modified: lucene/dev/branches/docvalues/solr/src/test/org/apache/solr/search/TestQueryTypes.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/docvalues/solr/src/test/org/apache/solr/search/TestQueryTypes.java?rev=1068809&r1=1068808&r2=1068809&view=diff
==============================================================================
--- lucene/dev/branches/docvalues/solr/src/test/org/apache/solr/search/TestQueryTypes.java (original)
+++ lucene/dev/branches/docvalues/solr/src/test/org/apache/solr/search/TestQueryTypes.java Wed Feb  9 09:35:27 2011
@@ -21,16 +21,20 @@ import org.apache.solr.util.AbstractSolr
 
 public class TestQueryTypes extends AbstractSolrTestCase {
 
+  @Override
   public String getSchemaFile() { return "schema11.xml"; }
+  @Override
   public String getSolrConfigFile() { return "solrconfig.xml"; }
   public String getCoreName() { return "basic"; }
 
 
+  @Override
   public void setUp() throws Exception {
     // if you override setUp or tearDown, you better call
     // the super classes version
     super.setUp();
   }
+  @Override
   public void tearDown() throws Exception {
     // if you override setUp or tearDown, you better call
     // the super classes version

Modified: lucene/dev/branches/docvalues/solr/src/test/org/apache/solr/search/TestQueryUtils.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/docvalues/solr/src/test/org/apache/solr/search/TestQueryUtils.java?rev=1068809&r1=1068808&r2=1068809&view=diff
==============================================================================
--- lucene/dev/branches/docvalues/solr/src/test/org/apache/solr/search/TestQueryUtils.java (original)
+++ lucene/dev/branches/docvalues/solr/src/test/org/apache/solr/search/TestQueryUtils.java Wed Feb  9 09:35:27 2011
@@ -31,12 +31,16 @@ import java.util.List;
  */
 public class TestQueryUtils extends AbstractSolrTestCase {
 
+  @Override
   public String getSchemaFile() { return "schema.xml"; }
+  @Override
   public String getSolrConfigFile() { return "solrconfig.xml"; }
 
+  @Override
   public void setUp() throws Exception {
     super.setUp();
   }
+  @Override
   public void tearDown() throws Exception {
     super.tearDown();
   }

Modified: lucene/dev/branches/docvalues/solr/src/test/org/apache/solr/search/TestRangeQuery.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/docvalues/solr/src/test/org/apache/solr/search/TestRangeQuery.java?rev=1068809&r1=1068808&r2=1068809&view=diff
==============================================================================
--- lucene/dev/branches/docvalues/solr/src/test/org/apache/solr/search/TestRangeQuery.java (original)
+++ lucene/dev/branches/docvalues/solr/src/test/org/apache/solr/search/TestRangeQuery.java Wed Feb  9 09:35:27 2011
@@ -33,6 +33,7 @@ public class TestRangeQuery extends Solr
     initCore("solrconfig.xml", "schema11.xml");
   }
 
+  @Override
   @Before
   public void setUp() throws Exception {
     // if you override setUp or tearDown, you better call

Modified: lucene/dev/branches/docvalues/solr/src/test/org/apache/solr/search/TestSearchPerf.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/docvalues/solr/src/test/org/apache/solr/search/TestSearchPerf.java?rev=1068809&r1=1068808&r2=1068809&view=diff
==============================================================================
--- lucene/dev/branches/docvalues/solr/src/test/org/apache/solr/search/TestSearchPerf.java (original)
+++ lucene/dev/branches/docvalues/solr/src/test/org/apache/solr/search/TestSearchPerf.java Wed Feb  9 09:35:27 2011
@@ -35,12 +35,16 @@ import java.io.IOException;
  */
 public class TestSearchPerf extends AbstractSolrTestCase {
 
+  @Override
   public String getSchemaFile() { return "schema11.xml"; }
+  @Override
   public String getSolrConfigFile() { return "solrconfig.xml"; }
 
+  @Override
   public void setUp() throws Exception {
     super.setUp();
   }
+  @Override
   public void tearDown() throws Exception {
     super.tearDown();
   }

Modified: lucene/dev/branches/docvalues/solr/src/test/org/apache/solr/search/TestSort.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/docvalues/solr/src/test/org/apache/solr/search/TestSort.java?rev=1068809&r1=1068808&r2=1068809&view=diff
==============================================================================
--- lucene/dev/branches/docvalues/solr/src/test/org/apache/solr/search/TestSort.java (original)
+++ lucene/dev/branches/docvalues/solr/src/test/org/apache/solr/search/TestSort.java Wed Feb  9 09:35:27 2011
@@ -20,7 +20,7 @@ package org.apache.solr.search;
 import org.apache.lucene.analysis.core.SimpleAnalyzer;
 import org.apache.lucene.document.Document;
 import org.apache.lucene.document.Field;
-import org.apache.lucene.index.IndexReader;
+import org.apache.lucene.index.IndexReader.AtomicReaderContext;
 import org.apache.lucene.index.IndexWriter;
 import org.apache.lucene.index.IndexWriterConfig;
 import org.apache.lucene.search.*;
@@ -33,7 +33,9 @@ import java.io.IOException;
 import java.util.*;
 
 public class TestSort extends AbstractSolrTestCase {
+  @Override
   public String getSchemaFile() { return null; }
+  @Override
   public String getSolrConfigFile() { return null; }
 
   Random r = random;
@@ -49,6 +51,7 @@ public class TestSort extends AbstractSo
     String val;
     String val2;
 
+    @Override
     public String toString() {
       return "{id=" +doc + " val1="+val + " val2="+val2 + "}";
     }
@@ -63,8 +66,7 @@ public class TestSort extends AbstractSo
       IndexWriter iw = new IndexWriter(
           dir,
           new IndexWriterConfig(TEST_VERSION_CURRENT, new SimpleAnalyzer(TEST_VERSION_CURRENT)).
-              setOpenMode(IndexWriterConfig.OpenMode.CREATE).
-              setMaxFieldLength(IndexWriterConfig.UNLIMITED_FIELD_LENGTH)
+              setOpenMode(IndexWriterConfig.OpenMode.CREATE)
       );
       final MyDoc[] mydocs = new MyDoc[ndocs];
 
@@ -106,8 +108,8 @@ public class TestSort extends AbstractSo
       for (int i=0; i<qiter; i++) {
         Filter filt = new Filter() {
           @Override
-          public DocIdSet getDocIdSet(IndexReader reader) throws IOException {
-            return randSet(reader.maxDoc());
+          public DocIdSet getDocIdSet(AtomicReaderContext context) throws IOException {
+            return randSet(context.reader.maxDoc());
           }
         };
 
@@ -159,9 +161,9 @@ public class TestSort extends AbstractSo
           }
 
           @Override
-          public void setNextReader(IndexReader reader, int docBase) throws IOException {
-            topCollector.setNextReader(reader,docBase);
-            this.docBase = docBase;
+          public void setNextReader(AtomicReaderContext context) throws IOException {
+            topCollector.setNextReader(context);
+            docBase = context.docBase;
           }
 
           @Override

Modified: lucene/dev/branches/docvalues/solr/src/test/org/apache/solr/search/function/NvlValueSourceParser.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/docvalues/solr/src/test/org/apache/solr/search/function/NvlValueSourceParser.java?rev=1068809&r1=1068808&r2=1068809&view=diff
==============================================================================
--- lucene/dev/branches/docvalues/solr/src/test/org/apache/solr/search/function/NvlValueSourceParser.java (original)
+++ lucene/dev/branches/docvalues/solr/src/test/org/apache/solr/search/function/NvlValueSourceParser.java Wed Feb  9 09:35:27 2011
@@ -42,16 +42,19 @@ public class NvlValueSourceParser extend
      */
     private float nvlFloatValue = 0.0f;
 
+    @Override
     public ValueSource parse(FunctionQParser fp) throws ParseException {
 	ValueSource source = fp.parseValueSource();
 	final float nvl = fp.parseFloat();
 
 	return new SimpleFloatFunction(source) {
-	    protected String name() {
+	    @Override
+      protected String name() {
 		return "nvl";
 	    }
 
-	    protected float func(int doc, DocValues vals) {
+	    @Override
+      protected float func(int doc, DocValues vals) {
 		float v = vals.floatVal(doc);
 		if (v == nvlFloatValue) {
 		    return nvl;
@@ -62,6 +65,7 @@ public class NvlValueSourceParser extend
 	};
     }
 
+    @Override
     public void init(NamedList args) {
 	/* initialize the value to consider as null */
 	Float nvlFloatValueArg = (Float) args.get("nvlFloatValue");

Modified: lucene/dev/branches/docvalues/solr/src/test/org/apache/solr/search/function/SortByFunctionTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/docvalues/solr/src/test/org/apache/solr/search/function/SortByFunctionTest.java?rev=1068809&r1=1068808&r2=1068809&view=diff
==============================================================================
--- lucene/dev/branches/docvalues/solr/src/test/org/apache/solr/search/function/SortByFunctionTest.java (original)
+++ lucene/dev/branches/docvalues/solr/src/test/org/apache/solr/search/function/SortByFunctionTest.java Wed Feb  9 09:35:27 2011
@@ -24,19 +24,21 @@ import org.apache.solr.util.AbstractSolr
  *
  **/
 public class SortByFunctionTest extends AbstractSolrTestCase {
+  @Override
   public String getSchemaFile() {
     return "schema.xml";
   }
 
+  @Override
   public String getSolrConfigFile() {
     return "solrconfig.xml";
   }
 
   public void test() throws Exception {
-    assertU(adoc("id", "1", "x_td", "0", "y_td", "2", "w_td", "25", "z_td", "5", "f_t", "ipod"));
-    assertU(adoc("id", "2", "x_td", "2", "y_td", "2", "w_td", "15", "z_td", "5", "f_t", "ipod ipod ipod ipod ipod"));
-    assertU(adoc("id", "3", "x_td", "3", "y_td", "2", "w_td", "55", "z_td", "5", "f_t", "ipod ipod ipod ipod ipod ipod ipod ipod ipod"));
-    assertU(adoc("id", "4", "x_td", "4", "y_td", "2", "w_td", "45", "z_td", "5", "f_t", "ipod ipod ipod ipod ipod ipod ipod"));
+    assertU(adoc("id", "1", "x_td", "0", "y_td", "2", "w_td1", "25", "z_td", "5", "f_t", "ipod"));
+    assertU(adoc("id", "2", "x_td", "2", "y_td", "2", "w_td1", "15", "z_td", "5", "f_t", "ipod ipod ipod ipod ipod"));
+    assertU(adoc("id", "3", "x_td", "3", "y_td", "2", "w_td1", "55", "z_td", "5", "f_t", "ipod ipod ipod ipod ipod ipod ipod ipod ipod"));
+    assertU(adoc("id", "4", "x_td", "4", "y_td", "2", "w_td1", "45", "z_td", "5", "f_t", "ipod ipod ipod ipod ipod ipod ipod"));
     assertU(commit());
 
     assertQ(req("fl", "*,score", "q", "*:*"),
@@ -80,8 +82,8 @@ public class SortByFunctionTest extends 
             "//result/doc[3]/int[@name='id'][.='3']",
             "//result/doc[4]/int[@name='id'][.='4']"
     );
-    //the function is equal, w_td separates
-    assertQ(req("q", "*:*", "fl", "id", "sort", "sum(z_td, y_td) asc, w_td asc"),
+    //the function is equal, w_td1 separates
+    assertQ(req("q", "*:*", "fl", "id", "sort", "sum(z_td, y_td) asc, w_td1 asc"),
             "//*[@numFound='4']",
             "//result/doc[1]/int[@name='id'][.='2']",
             "//result/doc[2]/int[@name='id'][.='1']",
@@ -125,4 +127,4 @@ public class SortByFunctionTest extends 
 
 /*
 <lst name="responseHeader"><int name="status">0</int><int name="QTime">93</int></lst><result name="response" numFound="4" start="0" maxScore="1.0"><doc><float name="score">1.0</float><int name="id">4</int><int name="intDefault">42</int><arr name="multiDefault"><str>muLti-Default</str></arr><date name="timestamp">2009-12-12T12:59:46.412Z</date><arr name="x_td"><double>4.0</double></arr><arr name="y_td"><double>2.0</double></arr></doc><doc><float name="score">1.0</float><int name="id">3</int><int name="intDefault">42</int><arr name="multiDefault"><str>muLti-Default</str></arr><date name="timestamp">2009-12-12T12:59:46.409Z</date><arr name="x_td"><double>3.0</double></arr><arr name="y_td"><double>2.0</double></arr></doc><doc><float name="score">1.0</float><int name="id">2</int><int name="intDefault">42</int><arr name="multiDefault"><str>muLti-Default</str></arr><date name="timestamp">2009-12-12T12:59:46.406Z</date><arr name="x_td"><double>2.0</double></arr><arr name="y_td"><dou
 ble>2.0</double></arr></doc><doc><float name="score">1.0</float><int name="id">1</int><int name="intDefault">42</int><arr name="multiDefault"><str>muLti-Default</str></arr><date name="timestamp">2009-12-12T12:59:46.361Z</date><arr name="x_td"><double>0.0</double></arr><arr name="y_td"><double>2.0</double></arr></doc></result>
-*/
\ No newline at end of file
+*/

Modified: lucene/dev/branches/docvalues/solr/src/test/org/apache/solr/search/function/TestFunctionQuery.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/docvalues/solr/src/test/org/apache/solr/search/function/TestFunctionQuery.java?rev=1068809&r1=1068808&r2=1068809&view=diff
==============================================================================
--- lucene/dev/branches/docvalues/solr/src/test/org/apache/solr/search/function/TestFunctionQuery.java (original)
+++ lucene/dev/branches/docvalues/solr/src/test/org/apache/solr/search/function/TestFunctionQuery.java Wed Feb  9 09:35:27 2011
@@ -17,6 +17,7 @@
 
 package org.apache.solr.search.function;
 
+import org.apache.lucene.index.FieldInvertState;
 import org.apache.lucene.search.DefaultSimilarity;
 import org.apache.lucene.search.FieldCache;
 import org.apache.lucene.search.Similarity;
@@ -294,8 +295,11 @@ public class TestFunctionQuery extends S
         "//float[@name='score']='" + similarity.idf(3,6)  + "'");
     assertQ(req("fl","*,score","q", "{!func}tf(a_t,cow)", "fq","id:6"),
         "//float[@name='score']='" + similarity.tf(5)  + "'");
+    FieldInvertState state = new FieldInvertState();
+    state.setBoost(1.0f);
+    state.setLength(4);
     assertQ(req("fl","*,score","q", "{!func}norm(a_t)", "fq","id:2"),
-        "//float[@name='score']='" + similarity.lengthNorm("a_t",4)  + "'");  // sqrt(4)==2 and is exactly representable when quantized to a byte
+        "//float[@name='score']='" + similarity.computeNorm("a_t",state)  + "'");  // sqrt(4)==2 and is exactly representable when quantized to a byte
 
     // test that ord and rord are working on a global index basis, not just
     // at the segment level (since Lucene 2.9 has switched to per-segment searching)
@@ -322,17 +326,18 @@ public class TestFunctionQuery extends S
       assertU(adoc("id",""+i, "text","batman"));
     }
     assertU(commit());
-    assertU(adoc("id","120", "text","batman superman"));   // in a segment by itself
+    assertU(adoc("id","120", "text","batman superman"));   // in a smaller segment
+    assertU(adoc("id","121", "text","superman"));
     assertU(commit());
 
-    // batman and superman have the same idf in single-doc segment, but very different in the complete index.
+    // superman has a higher df (thus lower idf) in one segment, but reversed in the complete index
     String q ="{!func}query($qq)";
     String fq="id:120"; 
     assertQ(req("fl","*,score","q", q, "qq","text:batman", "fq",fq), "//float[@name='score']<'1.0'");
     assertQ(req("fl","*,score","q", q, "qq","text:superman", "fq",fq), "//float[@name='score']>'1.0'");
 
     // test weighting through a function range query
-    assertQ(req("fl","*,score", "q", "{!frange l=1 u=10}query($qq)", "qq","text:superman"), "//*[@numFound='1']");
+    assertQ(req("fl","*,score", "fq",fq,  "q", "{!frange l=1 u=10}query($qq)", "qq","text:superman"), "//*[@numFound='1']");
 
     // test weighting through a complex function
     q ="{!func}sub(div(sum(0.0,product(1,query($qq))),1),0)";
@@ -356,6 +361,14 @@ public class TestFunctionQuery extends S
       // OK
     }
 
+    // test that sorting by function weights correctly.  superman should sort higher than batman due to idf of the whole index
+
+    assertQ(req("q", "*:*", "fq","id:120 OR id:121", "sort","{!func v=$sortfunc} desc", "sortfunc","query($qq)", "qq","text:(batman OR superman)")
+           ,"*//doc[1]/float[.='120.0']"
+           ,"*//doc[2]/float[.='121.0']"
+    );
+
+
     purgeFieldCache(FieldCache.DEFAULT);   // avoid FC insanity
   }
 

Modified: lucene/dev/branches/docvalues/solr/src/test/org/apache/solr/servlet/CacheHeaderTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/docvalues/solr/src/test/org/apache/solr/servlet/CacheHeaderTest.java?rev=1068809&r1=1068808&r2=1068809&view=diff
==============================================================================
--- lucene/dev/branches/docvalues/solr/src/test/org/apache/solr/servlet/CacheHeaderTest.java (original)
+++ lucene/dev/branches/docvalues/solr/src/test/org/apache/solr/servlet/CacheHeaderTest.java Wed Feb  9 09:35:27 2011
@@ -85,6 +85,7 @@ public class CacheHeaderTest extends Cac
     }
   }
 
+  @Override
   protected void doLastModified(String method) throws Exception {
     // We do a first request to get the last modified
     // This must result in a 200 OK response
@@ -140,6 +141,7 @@ public class CacheHeaderTest extends Cac
   }
 
   // test ETag
+  @Override
   protected void doETag(String method) throws Exception {
     HttpMethodBase get = getSelectMethod(method);
     getClient().executeMethod(get);
@@ -211,6 +213,7 @@ public class CacheHeaderTest extends Cac
         .getStatusCode());
   }
 
+  @Override
   protected void doCacheControl(String method) throws Exception {
     if ("POST".equals(method)) {
       HttpMethodBase m = getSelectMethod(method);

Modified: lucene/dev/branches/docvalues/solr/src/test/org/apache/solr/servlet/DirectSolrConnectionTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/docvalues/solr/src/test/org/apache/solr/servlet/DirectSolrConnectionTest.java?rev=1068809&r1=1068808&r2=1068809&view=diff
==============================================================================
--- lucene/dev/branches/docvalues/solr/src/test/org/apache/solr/servlet/DirectSolrConnectionTest.java (original)
+++ lucene/dev/branches/docvalues/solr/src/test/org/apache/solr/servlet/DirectSolrConnectionTest.java Wed Feb  9 09:35:27 2011
@@ -24,7 +24,9 @@ import org.apache.solr.util.AbstractSolr
 
 public class DirectSolrConnectionTest extends AbstractSolrTestCase 
 {
+  @Override
   public String getSchemaFile() { return "solr/crazy-path-to-schema.xml"; }
+  @Override
   public String getSolrConfigFile() { return "solr/crazy-path-to-config.xml"; }
   
   DirectSolrConnection direct;

Modified: lucene/dev/branches/docvalues/solr/src/test/org/apache/solr/servlet/NoCacheHeaderTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/docvalues/solr/src/test/org/apache/solr/servlet/NoCacheHeaderTest.java?rev=1068809&r1=1068808&r2=1068809&view=diff
==============================================================================
--- lucene/dev/branches/docvalues/solr/src/test/org/apache/solr/servlet/NoCacheHeaderTest.java (original)
+++ lucene/dev/branches/docvalues/solr/src/test/org/apache/solr/servlet/NoCacheHeaderTest.java Wed Feb  9 09:35:27 2011
@@ -35,18 +35,21 @@ public class NoCacheHeaderTest extends C
   }
 
   // The tests
+  @Override
   @Test
   public void testLastModified() throws Exception {
     doLastModified("GET");
     doLastModified("HEAD");
   }
 
+  @Override
   @Test
   public void testEtag() throws Exception {
     doETag("GET");
     doETag("HEAD");
   }
 
+  @Override
   @Test
   public void testCacheControl() throws Exception {
     doCacheControl("GET");
@@ -54,6 +57,7 @@ public class NoCacheHeaderTest extends C
     doCacheControl("POST");
   }
   
+  @Override
   protected void doLastModified(String method) throws Exception {
     // We do a first request to get the last modified
     // This must result in a 200 OK response
@@ -105,6 +109,7 @@ public class NoCacheHeaderTest extends C
   }
 
   // test ETag
+  @Override
   protected void doETag(String method) throws Exception {
     HttpMethodBase get = getSelectMethod(method);
     getClient().executeMethod(get);
@@ -153,6 +158,7 @@ public class NoCacheHeaderTest extends C
         .getStatusCode());
   }
 
+  @Override
   protected void doCacheControl(String method) throws Exception {
       HttpMethodBase m = getSelectMethod(method);
       getClient().executeMethod(m);

Modified: lucene/dev/branches/docvalues/solr/src/test/org/apache/solr/servlet/SolrRequestParserTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/docvalues/solr/src/test/org/apache/solr/servlet/SolrRequestParserTest.java?rev=1068809&r1=1068808&r2=1068809&view=diff
==============================================================================
--- lucene/dev/branches/docvalues/solr/src/test/org/apache/solr/servlet/SolrRequestParserTest.java (original)
+++ lucene/dev/branches/docvalues/solr/src/test/org/apache/solr/servlet/SolrRequestParserTest.java Wed Feb  9 09:35:27 2011
@@ -74,7 +74,7 @@ public class SolrRequestParserTest exten
     List<ContentStream> streams = new ArrayList<ContentStream>();
     SolrQueryRequest req = parser.buildRequestFrom( core, new MultiMapSolrParams( args ), streams );
     assertEquals( 1, streams.size() );
-    assertEquals( body1, IOUtils.toString( streams.get(0).getStream() ) );
+    assertEquals( body1, IOUtils.toString( streams.get(0).getReader() ) );
     req.close();
 
     // Now add three and make sure they come out ok
@@ -87,9 +87,9 @@ public class SolrRequestParserTest exten
     input.add( body1 );
     input.add( body2 );
     input.add( body3 );
-    output.add( IOUtils.toString( streams.get(0).getStream() ) );
-    output.add( IOUtils.toString( streams.get(1).getStream() ) );
-    output.add( IOUtils.toString( streams.get(2).getStream() ) );
+    output.add( IOUtils.toString( streams.get(0).getReader() ) );
+    output.add( IOUtils.toString( streams.get(1).getReader() ) );
+    output.add( IOUtils.toString( streams.get(2).getReader() ) );
     // sort them so the output is consistent
     Collections.sort( input );
     Collections.sort( output );
@@ -112,13 +112,13 @@ public class SolrRequestParserTest exten
   {
     boolean ok = false;
     String url = "http://www.apache.org/dist/lucene/solr/";
-    String txt = null;
+    byte[] bytes = null;
     try {
       URLConnection connection = new URL(url).openConnection();
       connection.setConnectTimeout(5000);
       connection.setReadTimeout(5000);
       connection.connect();
-      txt = IOUtils.toString( connection.getInputStream());
+      bytes = IOUtils.toByteArray( connection.getInputStream());
     }
     catch( Exception ex ) {
       assumeNoException("Unable to connect to " + url + " to run the test.", ex);
@@ -134,7 +134,7 @@ public class SolrRequestParserTest exten
     List<ContentStream> streams = new ArrayList<ContentStream>();
     SolrQueryRequest req = parser.buildRequestFrom( core, new MultiMapSolrParams( args ), streams );
     assertEquals( 1, streams.size() );
-    assertEquals( txt, IOUtils.toString( streams.get(0).getStream() ) );
+    assertArrayEquals( bytes, IOUtils.toByteArray( streams.get(0).getStream() ) );
     req.close();
   }
   

Modified: lucene/dev/branches/docvalues/solr/src/test/org/apache/solr/spelling/DirectSolrSpellCheckerTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/docvalues/solr/src/test/org/apache/solr/spelling/DirectSolrSpellCheckerTest.java?rev=1068809&r1=1068808&r2=1068809&view=diff
==============================================================================
--- lucene/dev/branches/docvalues/solr/src/test/org/apache/solr/spelling/DirectSolrSpellCheckerTest.java (original)
+++ lucene/dev/branches/docvalues/solr/src/test/org/apache/solr/spelling/DirectSolrSpellCheckerTest.java Wed Feb  9 09:35:27 2011
@@ -62,7 +62,7 @@ public class DirectSolrSpellCheckerTest 
 
     RefCounted<SolrIndexSearcher> searcher = core.getSearcher();
     Collection<Token> tokens = queryConverter.convert("fob");
-    SpellingOptions spellOpts = new SpellingOptions(tokens, searcher.get().getReader());
+    SpellingOptions spellOpts = new SpellingOptions(tokens, searcher.get().getIndexReader());
     SpellingResult result = checker.getSuggestions(spellOpts);
     assertTrue("result is null and it shouldn't be", result != null);
     Map<String, Integer> suggestions = result.get(tokens.iterator().next());

Modified: lucene/dev/branches/docvalues/solr/src/test/org/apache/solr/spelling/FileBasedSpellCheckerTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/docvalues/solr/src/test/org/apache/solr/spelling/FileBasedSpellCheckerTest.java?rev=1068809&r1=1068808&r2=1068809&view=diff
==============================================================================
--- lucene/dev/branches/docvalues/solr/src/test/org/apache/solr/spelling/FileBasedSpellCheckerTest.java (original)
+++ lucene/dev/branches/docvalues/solr/src/test/org/apache/solr/spelling/FileBasedSpellCheckerTest.java Wed Feb  9 09:35:27 2011
@@ -78,7 +78,7 @@ public class FileBasedSpellCheckerTest e
 
     RefCounted<SolrIndexSearcher> searcher = core.getSearcher();
     Collection<Token> tokens = queryConverter.convert("fob");
-    SpellingOptions spellOpts = new SpellingOptions(tokens, searcher.get().getReader());
+    SpellingOptions spellOpts = new SpellingOptions(tokens, searcher.get().getIndexReader());
     SpellingResult result = checker.getSuggestions(spellOpts);
     assertTrue("result is null and it shouldn't be", result != null);
     Map<String, Integer> suggestions = result.get(tokens.iterator().next());
@@ -117,7 +117,7 @@ public class FileBasedSpellCheckerTest e
     RefCounted<SolrIndexSearcher> searcher = core.getSearcher();
     Collection<Token> tokens = queryConverter.convert("Solar");
 
-    SpellingOptions spellOpts = new SpellingOptions(tokens, searcher.get().getReader());
+    SpellingOptions spellOpts = new SpellingOptions(tokens, searcher.get().getIndexReader());
     SpellingResult result = checker.getSuggestions(spellOpts);
     assertTrue("result is null and it shouldn't be", result != null);
     //should be lowercased, b/c we are using a lowercasing analyzer
@@ -160,7 +160,7 @@ public class FileBasedSpellCheckerTest e
 
     RefCounted<SolrIndexSearcher> searcher = core.getSearcher();
     Collection<Token> tokens = queryConverter.convert("solar");
-    SpellingOptions spellOpts = new SpellingOptions(tokens, searcher.get().getReader());
+    SpellingOptions spellOpts = new SpellingOptions(tokens, searcher.get().getIndexReader());
     SpellingResult result = checker.getSuggestions(spellOpts);
     assertTrue("result is null and it shouldn't be", result != null);
     //should be lowercased, b/c we are using a lowercasing analyzer

Modified: lucene/dev/branches/docvalues/solr/src/test/org/apache/solr/spelling/IndexBasedSpellCheckerTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/docvalues/solr/src/test/org/apache/solr/spelling/IndexBasedSpellCheckerTest.java?rev=1068809&r1=1068808&r2=1068809&view=diff
==============================================================================
--- lucene/dev/branches/docvalues/solr/src/test/org/apache/solr/spelling/IndexBasedSpellCheckerTest.java (original)
+++ lucene/dev/branches/docvalues/solr/src/test/org/apache/solr/spelling/IndexBasedSpellCheckerTest.java Wed Feb  9 09:35:27 2011
@@ -121,7 +121,7 @@ public class IndexBasedSpellCheckerTest 
     try {
     checker.build(core, searcher);
 
-    IndexReader reader = searcher.getReader();
+    IndexReader reader = searcher.getIndexReader();
     Collection<Token> tokens = queryConverter.convert("documemt");
     SpellingOptions spellOpts = new SpellingOptions(tokens, reader);
     SpellingResult result = checker.getSuggestions(spellOpts);
@@ -196,7 +196,7 @@ public class IndexBasedSpellCheckerTest 
     try {
     checker.build(core, searcher);
 
-    IndexReader reader = searcher.getReader();
+    IndexReader reader = searcher.getIndexReader();
     Collection<Token> tokens = queryConverter.convert("documemt");
     SpellingOptions spellOpts = new SpellingOptions(tokens, reader, 1, false, true, 0.5f, null);
     SpellingResult result = checker.getSuggestions(spellOpts);
@@ -227,6 +227,7 @@ public class IndexBasedSpellCheckerTest 
   }
 
   private class TestSpellChecker extends IndexBasedSpellChecker{
+    @Override
     public SpellChecker getSpellChecker(){
       return spellChecker;
     }
@@ -284,8 +285,7 @@ public class IndexBasedSpellCheckerTest 
     Directory dir = newFSDirectory(altIndexDir);
     IndexWriter iw = new IndexWriter(
         dir,
-        new IndexWriterConfig(TEST_VERSION_CURRENT, new WhitespaceAnalyzer(TEST_VERSION_CURRENT)).
-            setMaxFieldLength(IndexWriterConfig.UNLIMITED_FIELD_LENGTH)
+        new IndexWriterConfig(TEST_VERSION_CURRENT, new WhitespaceAnalyzer(TEST_VERSION_CURRENT))
     );
     for (int i = 0; i < ALT_DOCS.length; i++) {
       Document doc = new Document();
@@ -309,7 +309,7 @@ public class IndexBasedSpellCheckerTest 
     try {
     checker.build(core, searcher);
 
-    IndexReader reader = searcher.getReader();
+    IndexReader reader = searcher.getIndexReader();
     Collection<Token> tokens = queryConverter.convert("flesh");
     SpellingOptions spellOpts = new SpellingOptions(tokens, reader, 1, false, true, 0.5f, null);
     SpellingResult result = checker.getSuggestions(spellOpts);

Modified: lucene/dev/branches/docvalues/solr/src/test/org/apache/solr/spelling/SpellPossibilityIteratorTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/docvalues/solr/src/test/org/apache/solr/spelling/SpellPossibilityIteratorTest.java?rev=1068809&r1=1068808&r2=1068809&view=diff
==============================================================================
--- lucene/dev/branches/docvalues/solr/src/test/org/apache/solr/spelling/SpellPossibilityIteratorTest.java (original)
+++ lucene/dev/branches/docvalues/solr/src/test/org/apache/solr/spelling/SpellPossibilityIteratorTest.java Wed Feb  9 09:35:27 2011
@@ -22,16 +22,17 @@ import java.util.Map;
 import org.apache.lucene.analysis.Token;
 import org.apache.solr.SolrTestCaseJ4;
 import org.apache.solr.spelling.PossibilityIterator;
-import org.junit.BeforeClass;
+import org.junit.Before;
 import org.junit.Test;
 
 public class SpellPossibilityIteratorTest extends SolrTestCaseJ4 {
 
 	private static Map<Token, LinkedHashMap<String, Integer>> suggestions = new LinkedHashMap<Token, LinkedHashMap<String, Integer>>();
 
-	@BeforeClass
-	public static void beforeClass() throws Exception {
-
+	@Override
+  @Before
+	public void setUp() throws Exception {
+	  super.setUp();
 		suggestions.clear();
 
 		LinkedHashMap<String, Integer> AYE = new LinkedHashMap<String, Integer>();
@@ -72,7 +73,7 @@ public class SpellPossibilityIteratorTes
 		suggestions.put(new Token("BEE", 0, 2), BEE);
 		suggestions.put(new Token("CEE", 0, 2), CEE);
 	}
-
+	
 	@Test
 	public void testSpellPossibilityIterator() throws Exception {
 		PossibilityIterator iter = new PossibilityIterator(suggestions);

Modified: lucene/dev/branches/docvalues/solr/src/test/org/apache/solr/update/AutoCommitTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/docvalues/solr/src/test/org/apache/solr/update/AutoCommitTest.java?rev=1068809&r1=1068808&r2=1068809&view=diff
==============================================================================
--- lucene/dev/branches/docvalues/solr/src/test/org/apache/solr/update/AutoCommitTest.java (original)
+++ lucene/dev/branches/docvalues/solr/src/test/org/apache/solr/update/AutoCommitTest.java Wed Feb  9 09:35:27 2011
@@ -78,7 +78,9 @@ class CommitListener implements SolrEven
 
 public class AutoCommitTest extends AbstractSolrTestCase {
 
+  @Override
   public String getSchemaFile() { return "schema.xml"; }
+  @Override
   public String getSolrConfigFile() { return "solrconfig.xml"; }
 
   /**

Modified: lucene/dev/branches/docvalues/solr/src/test/org/apache/solr/update/DirectUpdateHandlerOptimizeTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/docvalues/solr/src/test/org/apache/solr/update/DirectUpdateHandlerOptimizeTest.java?rev=1068809&r1=1068808&r2=1068809&view=diff
==============================================================================
--- lucene/dev/branches/docvalues/solr/src/test/org/apache/solr/update/DirectUpdateHandlerOptimizeTest.java (original)
+++ lucene/dev/branches/docvalues/solr/src/test/org/apache/solr/update/DirectUpdateHandlerOptimizeTest.java Wed Feb  9 09:35:27 2011
@@ -32,10 +32,12 @@ import java.io.FileFilter;
  **/
 public class DirectUpdateHandlerOptimizeTest extends AbstractSolrTestCase {
 
+  @Override
   public String getSchemaFile() {
     return "schema12.xml";
   }
 
+  @Override
   public String getSolrConfigFile() {
     // return "solrconfig-duh-optimize.xml";
     return "solrconfig.xml";

Modified: lucene/dev/branches/docvalues/solr/src/test/org/apache/solr/update/DirectUpdateHandlerTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/docvalues/solr/src/test/org/apache/solr/update/DirectUpdateHandlerTest.java?rev=1068809&r1=1068808&r2=1068809&view=diff
==============================================================================
--- lucene/dev/branches/docvalues/solr/src/test/org/apache/solr/update/DirectUpdateHandlerTest.java (original)
+++ lucene/dev/branches/docvalues/solr/src/test/org/apache/solr/update/DirectUpdateHandlerTest.java Wed Feb  9 09:35:27 2011
@@ -20,18 +20,13 @@ package org.apache.solr.update;
 import java.util.HashMap;
 import java.util.Map;
 
-import org.apache.lucene.document.Document;
-import org.apache.lucene.document.Field;
-import org.apache.lucene.document.Field.Index;
-import org.apache.lucene.document.Field.Store;
+import org.apache.lucene.index.IndexReader;
 import org.apache.solr.SolrTestCaseJ4;
-import org.apache.solr.common.SolrException;
 import org.apache.solr.common.params.CommonParams;
 import org.apache.solr.common.params.MapSolrParams;
 import org.apache.solr.core.SolrCore;
 import org.apache.solr.request.LocalSolrQueryRequest;
 import org.apache.solr.request.SolrQueryRequest;
-import org.apache.solr.search.SolrIndexReader;
 import org.junit.Before;
 import org.junit.BeforeClass;
 import org.junit.Test;
@@ -47,6 +42,7 @@ public class DirectUpdateHandlerTest ext
     initCore("solrconfig.xml", "schema12.xml");
   }
 
+  @Override
   @Before
   public void setUp() throws Exception {
     super.setUp();
@@ -243,18 +239,18 @@ public class DirectUpdateHandlerTest ext
     assertU(commit());
 
     SolrQueryRequest sr = req("q","foo");
-    SolrIndexReader r = sr.getSearcher().getReader();
+    IndexReader r = sr.getSearcher().getTopReaderContext().reader;
     assertTrue(r.maxDoc() > r.numDocs());   // should have deletions
-    assertTrue(r.getLeafReaders().length > 1);  // more than 1 segment
+    assertFalse(r.getTopReaderContext().isAtomic);  // more than 1 segment
     sr.close();
 
     assertU(commit("expungeDeletes","true"));
 
     sr = req("q","foo");
-    r = sr.getSearcher().getReader();
+    r = sr.getSearcher().getTopReaderContext().reader;
     assertEquals(r.maxDoc(), r.numDocs());  // no deletions
     assertEquals(4,r.maxDoc());             // no dups
-    assertTrue(r.getLeafReaders().length > 1);  // still more than 1 segment
+    assertFalse(r.getTopReaderContext().isAtomic);  //still more than 1 segment
     sr.close();
   }
   

Modified: lucene/dev/branches/docvalues/solr/src/test/org/apache/solr/update/TestIndexingPerformance.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/docvalues/solr/src/test/org/apache/solr/update/TestIndexingPerformance.java?rev=1068809&r1=1068808&r2=1068809&view=diff
==============================================================================
--- lucene/dev/branches/docvalues/solr/src/test/org/apache/solr/update/TestIndexingPerformance.java (original)
+++ lucene/dev/branches/docvalues/solr/src/test/org/apache/solr/update/TestIndexingPerformance.java Wed Feb  9 09:35:27 2011
@@ -41,7 +41,9 @@ public class TestIndexingPerformance ext
   public static final Logger log 
     = LoggerFactory.getLogger(TestIndexingPerformance.class);
 
+  @Override
   public String getSchemaFile() { return "schema12.xml"; }
+  @Override
   public String getSolrConfigFile() { return "solrconfig_perf.xml"; }
 
   public void testIndexingPerf() throws IOException {

Modified: lucene/dev/branches/docvalues/solr/src/test/org/apache/solr/update/processor/SignatureUpdateProcessorFactoryTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/docvalues/solr/src/test/org/apache/solr/update/processor/SignatureUpdateProcessorFactoryTest.java?rev=1068809&r1=1068808&r2=1068809&view=diff
==============================================================================
--- lucene/dev/branches/docvalues/solr/src/test/org/apache/solr/update/processor/SignatureUpdateProcessorFactoryTest.java (original)
+++ lucene/dev/branches/docvalues/solr/src/test/org/apache/solr/update/processor/SignatureUpdateProcessorFactoryTest.java Wed Feb  9 09:35:27 2011
@@ -62,7 +62,7 @@ public class SignatureUpdateProcessorFac
   void checkNumDocs(int n) {
     SolrQueryRequest req = req();
     try {
-      assertEquals(n, req.getSearcher().getReader().numDocs());
+      assertEquals(n, req.getSearcher().getIndexReader().numDocs());
     } finally {
       req.close();
     }
@@ -129,6 +129,7 @@ public class SignatureUpdateProcessorFac
     for (int i = 0; i < threads.length; i++) {
       threads[i] = new Thread() {
 
+        @Override
         public void run() {
           for (int i = 0; i < 30; i++) {
             // h.update(adoc("id", Integer.toString(1+ i), "v_t",
@@ -150,6 +151,7 @@ public class SignatureUpdateProcessorFac
     for (int i = 0; i < threads2.length; i++) {
       threads2[i] = new Thread() {
 
+        @Override
         public void run() {
           for (int i = 0; i < 10; i++) {
             // h.update(adoc("id" , Integer.toString(1+ i + 10000), "v_t",