You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by bu...@apache.org on 2011/02/22 02:01:11 UTC

svn commit: r1073192 [31/32] - in /lucene/dev/branches/realtime_search: ./ dev-tools/eclipse/ dev-tools/idea/.idea/ dev-tools/idea/lucene/contrib/ant/ dev-tools/idea/lucene/contrib/demo/ dev-tools/idea/lucene/contrib/highlighter/ dev-tools/idea/lucene/...

Modified: lucene/dev/branches/realtime_search/solr/src/test/org/apache/solr/core/TestXIncludeConfig.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/realtime_search/solr/src/test/org/apache/solr/core/TestXIncludeConfig.java?rev=1073192&r1=1073191&r2=1073192&view=diff
==============================================================================
--- lucene/dev/branches/realtime_search/solr/src/test/org/apache/solr/core/TestXIncludeConfig.java (original)
+++ lucene/dev/branches/realtime_search/solr/src/test/org/apache/solr/core/TestXIncludeConfig.java Tue Feb 22 01:00:39 2011
@@ -1,5 +1,22 @@
 package org.apache.solr.core;
 
+/**
+ * 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.File;
 
 import org.apache.commons.io.FileUtils;
@@ -16,11 +33,13 @@ import javax.xml.parsers.DocumentBuilder
 public class TestXIncludeConfig extends AbstractSolrTestCase {
   protected boolean supports;
 
+  @Override
   public String getSchemaFile() {
     return "schema.xml";
   }
 
   //public String getSolrConfigFile() { return "solrconfig.xml"; }
+  @Override
   public String getSolrConfigFile() {
     return "solrconfig-xinclude.xml";
   }

Modified: lucene/dev/branches/realtime_search/solr/src/test/org/apache/solr/handler/DocumentAnalysisRequestHandlerTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/realtime_search/solr/src/test/org/apache/solr/handler/DocumentAnalysisRequestHandlerTest.java?rev=1073192&r1=1073191&r2=1073192&view=diff
==============================================================================
--- lucene/dev/branches/realtime_search/solr/src/test/org/apache/solr/handler/DocumentAnalysisRequestHandlerTest.java (original)
+++ lucene/dev/branches/realtime_search/solr/src/test/org/apache/solr/handler/DocumentAnalysisRequestHandlerTest.java Tue Feb 22 01:00:39 2011
@@ -30,8 +30,12 @@ import org.junit.Before;
 import org.junit.BeforeClass;
 import org.junit.Test;
 
-import java.util.ArrayList;
+import java.util.Collections;
 import java.util.List;
+import java.io.ByteArrayInputStream;
+import java.io.InputStream;
+import java.io.IOException;
+import java.io.Reader;
 
 /**
  * A test for {@link DocumentAnalysisRequestHandler}.
@@ -71,15 +75,14 @@ public class DocumentAnalysisRequestHand
                     "</doc>" +
                     "</docs>";
 
-    final List<ContentStream> contentStreams = new ArrayList<ContentStream>(1);
-    contentStreams.add(new ContentStreamBase.StringStream(docsInput));
+    final ContentStream cs = new ContentStreamBase.StringStream(docsInput);
     ModifiableSolrParams params = new ModifiableSolrParams();
     params.add("analysis.query", "The Query String");
     params.add("analysis.showmatch", "true");
     SolrQueryRequest req = new SolrQueryRequestBase(h.getCore(), params) {
       @Override
       public Iterable<ContentStream> getContentStreams() {
-        return contentStreams;
+        return Collections.singleton(cs);
       }
     };
 
@@ -106,6 +109,94 @@ public class DocumentAnalysisRequestHand
     req.close();
   }
 
+  /** A binary-only ContentStream */
+  static class ByteStream extends ContentStreamBase {
+    private final byte[] bytes;
+    
+    public ByteStream(byte[] bytes, String contentType) {
+      this.bytes = bytes; 
+      this.contentType = contentType;
+      name = null;
+      size = Long.valueOf(bytes.length);
+      sourceInfo = "rawBytes";
+    }
+
+    public InputStream getStream() throws IOException {
+      return new ByteArrayInputStream(bytes);
+    }
+
+    @Override
+    public Reader getReader() throws IOException {
+      throw new IOException("This is a byte stream, Readers are not supported.");
+    }
+  }
+
+  
+  // This test should also test charset detection in UpdateRequestHandler,
+  // but the DocumentAnalysisRequestHandler is simplier to use/check.
+  @Test
+  public void testCharsetInDocument() throws Exception {
+    final byte[] xmlBytes = (
+      "<?xml version=\"1.0\" encoding=\"ISO-8859-1\"?>\r\n" +
+      "<docs>\r\n" +
+      " <doc>\r\n" +
+      "  <field name=\"id\">Müller</field>\r\n" +
+      " </doc>" +
+      "</docs>"
+    ).getBytes("ISO-8859-1");
+    
+    // we declare a content stream without charset:
+    final ContentStream cs = new ByteStream(xmlBytes, "application/xml");
+    
+    ModifiableSolrParams params = new ModifiableSolrParams();
+    SolrQueryRequest req = new SolrQueryRequestBase(h.getCore(), params) {
+      @Override
+      public Iterable<ContentStream> getContentStreams() {
+        return Collections.singleton(cs);
+      }
+    };
+
+    DocumentAnalysisRequest request = handler.resolveAnalysisRequest(req);
+    assertNotNull(request);
+    final List<SolrInputDocument> documents = request.getDocuments();
+    assertNotNull(documents);
+    assertEquals(1, documents.size());
+    SolrInputDocument doc = documents.get(0);
+    assertEquals("Müller", doc.getField("id").getValue());
+  }
+
+  // This test should also test charset detection in UpdateRequestHandler,
+  // but the DocumentAnalysisRequestHandler is simplier to use/check.
+  @Test
+  public void testCharsetOutsideDocument() throws Exception {
+    final byte[] xmlBytes = (
+      "<docs>\r\n" +
+      " <doc>\r\n" +
+      "  <field name=\"id\">Müller</field>\r\n" +
+      " </doc>" +
+      "</docs>"
+    ).getBytes("ISO-8859-1");
+    
+    // we declare a content stream with charset:
+    final ContentStream cs = new ByteStream(xmlBytes, "application/xml; charset=ISO-8859-1");
+    
+    ModifiableSolrParams params = new ModifiableSolrParams();
+    SolrQueryRequest req = new SolrQueryRequestBase(h.getCore(), params) {
+      @Override
+      public Iterable<ContentStream> getContentStreams() {
+        return Collections.singleton(cs);
+      }
+    };
+
+    DocumentAnalysisRequest request = handler.resolveAnalysisRequest(req);
+    assertNotNull(request);
+    final List<SolrInputDocument> documents = request.getDocuments();
+    assertNotNull(documents);
+    assertEquals(1, documents.size());
+    SolrInputDocument doc = documents.get(0);
+    assertEquals("Müller", doc.getField("id").getValue());
+  }
+
   /**
    * Tests the {@link DocumentAnalysisRequestHandler#handleAnalysisRequest(org.apache.solr.client.solrj.request.DocumentAnalysisRequest,
    * org.apache.solr.schema.IndexSchema)}

Modified: lucene/dev/branches/realtime_search/solr/src/test/org/apache/solr/handler/JsonLoaderTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/realtime_search/solr/src/test/org/apache/solr/handler/JsonLoaderTest.java?rev=1073192&r1=1073191&r2=1073192&view=diff
==============================================================================
--- lucene/dev/branches/realtime_search/solr/src/test/org/apache/solr/handler/JsonLoaderTest.java (original)
+++ lucene/dev/branches/realtime_search/solr/src/test/org/apache/solr/handler/JsonLoaderTest.java Tue Feb 22 01:00:39 2011
@@ -146,23 +146,28 @@ class BufferingRequestProcessor extends 
     super(next);
   }
   
+  @Override
   public void processAdd(AddUpdateCommand cmd) throws IOException {
     addCommands.add( cmd );
   }
 
+  @Override
   public void processDelete(DeleteUpdateCommand cmd) throws IOException {
     deleteCommands.add( cmd );
   }
 
+  @Override
   public void processCommit(CommitUpdateCommand cmd) throws IOException {
     commitCommands.add( cmd );
   }
   
+  @Override
   public void processRollback(RollbackUpdateCommand cmd) throws IOException
   {
     rollbackCommands.add( cmd );
   }
 
+  @Override
   public void finish() throws IOException {
     // nothing?    
   }

Modified: lucene/dev/branches/realtime_search/solr/src/test/org/apache/solr/handler/MoreLikeThisHandlerTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/realtime_search/solr/src/test/org/apache/solr/handler/MoreLikeThisHandlerTest.java?rev=1073192&r1=1073191&r2=1073192&view=diff
==============================================================================
--- lucene/dev/branches/realtime_search/solr/src/test/org/apache/solr/handler/MoreLikeThisHandlerTest.java (original)
+++ lucene/dev/branches/realtime_search/solr/src/test/org/apache/solr/handler/MoreLikeThisHandlerTest.java Tue Feb 22 01:00:39 2011
@@ -94,7 +94,17 @@ public class MoreLikeThisHandlerTest ext
     assertQ("morelike this - harrison ford",mltreq
         ,"//result/doc[1]/int[@name='id'][.='45']");
 
+    // test MoreLikeThis debug
+    params.set(CommonParams.DEBUG_QUERY, "true");
+    assertQ("morelike this - harrison ford",mltreq
+        ,"//lst[@name='debug']/lst[@name='moreLikeThis']/lst[@name='44']/str[@name='rawMLTQuery']"
+        ,"//lst[@name='debug']/lst[@name='moreLikeThis']/lst[@name='44']/str[@name='boostedMLTQuery']"
+        ,"//lst[@name='debug']/lst[@name='moreLikeThis']/lst[@name='44']/str[@name='realMLTQuery']"
+        ,"//lst[@name='debug']/lst[@name='moreLikeThis']/lst[@name='44']/lst[@name='explain']/str[@name='45']"
+        );
+
     // test that qparser plugins work
+    params.remove(CommonParams.DEBUG_QUERY);
     params.set(CommonParams.Q, "{!field f=id}44");
     assertQ(mltreq
         ,"//result/doc[1]/int[@name='id'][.='45']");
@@ -112,9 +122,9 @@ public class MoreLikeThisHandlerTest ext
     assertQ(mltreq
         ,"//result/doc[1]/int[@name='id'][.='45']");
 
-    // test that debugging works
+    // test that debugging works (test for MoreLikeThis*Handler*)
     params.set(CommonParams.QT, "/mlt");
-    params.set("debugQuery", "true");
+    params.set(CommonParams.DEBUG_QUERY, "true");
     assertQ(mltreq
         ,"//result/doc[1]/int[@name='id'][.='45']"
         ,"//lst[@name='debug']/lst[@name='explain']"

Modified: lucene/dev/branches/realtime_search/solr/src/test/org/apache/solr/handler/StandardRequestHandlerTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/realtime_search/solr/src/test/org/apache/solr/handler/StandardRequestHandlerTest.java?rev=1073192&r1=1073191&r2=1073192&view=diff
==============================================================================
--- lucene/dev/branches/realtime_search/solr/src/test/org/apache/solr/handler/StandardRequestHandlerTest.java (original)
+++ lucene/dev/branches/realtime_search/solr/src/test/org/apache/solr/handler/StandardRequestHandlerTest.java Tue Feb 22 01:00:39 2011
@@ -43,9 +43,9 @@ public class StandardRequestHandlerTest 
   
   public void testSorting() throws Exception {
     SolrCore core = h.getCore();
-    assertU(adoc("id", "10", "title", "test", "val_s", "aaa"));
-    assertU(adoc("id", "11", "title", "test", "val_s", "bbb"));
-    assertU(adoc("id", "12", "title", "test", "val_s", "ccc"));
+    assertU(adoc("id", "10", "title", "test", "val_s1", "aaa"));
+    assertU(adoc("id", "11", "title", "test", "val_s1", "bbb"));
+    assertU(adoc("id", "12", "title", "test", "val_s1", "ccc"));
     assertU(commit());
     
     Map<String,String> args = new HashMap<String, String>();
@@ -58,7 +58,7 @@ public class StandardRequestHandlerTest 
             ,"//*[@numFound='3']"
             );
     
-    args.put( CommonParams.SORT, "val_s asc" );
+    args.put( CommonParams.SORT, "val_s1 asc" );
     assertQ("with sort param [asc]", req
             ,"//*[@numFound='3']"
             ,"//result/doc[1]/int[@name='id'][.='10']"
@@ -66,7 +66,7 @@ public class StandardRequestHandlerTest 
             ,"//result/doc[3]/int[@name='id'][.='12']"
             );
 
-    args.put( CommonParams.SORT, "val_s desc" );
+    args.put( CommonParams.SORT, "val_s1 desc" );
     assertQ("with sort param [desc]", req
             ,"//*[@numFound='3']"
             ,"//result/doc[1]/int[@name='id'][.='12']"
@@ -84,7 +84,7 @@ public class StandardRequestHandlerTest 
     // Using legacy ';' param
     args.remove( CommonParams.SORT );
     args.put( QueryParsing.DEFTYPE, "lucenePlusSort" );
-    args.put( CommonParams.Q, "title:test; val_s desc" );
+    args.put( CommonParams.Q, "title:test; val_s1 desc" );
     assertQ("with sort param [desc]", req
             ,"//*[@numFound='3']"
             ,"//result/doc[1]/int[@name='id'][.='12']"
@@ -92,8 +92,8 @@ public class StandardRequestHandlerTest 
             ,"//result/doc[3]/int[@name='id'][.='10']"
             );
 
-    args.put( CommonParams.Q, "title:test; val_s asc" );
-    assertQ("with sort param [desc]", req
+    args.put( CommonParams.Q, "title:test; val_s1 asc" );
+    assertQ("with sort param [asc]", req
             ,"//*[@numFound='3']"
             ,"//result/doc[1]/int[@name='id'][.='10']"
             ,"//result/doc[2]/int[@name='id'][.='11']"

Modified: lucene/dev/branches/realtime_search/solr/src/test/org/apache/solr/handler/TestCSVLoader.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/realtime_search/solr/src/test/org/apache/solr/handler/TestCSVLoader.java?rev=1073192&r1=1073191&r2=1073192&view=diff
==============================================================================
--- lucene/dev/branches/realtime_search/solr/src/test/org/apache/solr/handler/TestCSVLoader.java (original)
+++ lucene/dev/branches/realtime_search/solr/src/test/org/apache/solr/handler/TestCSVLoader.java Tue Feb 22 01:00:39 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

Modified: lucene/dev/branches/realtime_search/solr/src/test/org/apache/solr/handler/TestReplicationHandler.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/realtime_search/solr/src/test/org/apache/solr/handler/TestReplicationHandler.java?rev=1073192&r1=1073191&r2=1073192&view=diff
==============================================================================
--- lucene/dev/branches/realtime_search/solr/src/test/org/apache/solr/handler/TestReplicationHandler.java (original)
+++ lucene/dev/branches/realtime_search/solr/src/test/org/apache/solr/handler/TestReplicationHandler.java Tue Feb 22 01:00:39 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);
@@ -521,12 +607,12 @@ 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++)
@@ -536,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;
@@ -560,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;
@@ -567,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;
           }
@@ -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/realtime_search/solr/src/test/org/apache/solr/handler/component/DistributedSpellCheckComponentTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/realtime_search/solr/src/test/org/apache/solr/handler/component/DistributedSpellCheckComponentTest.java?rev=1073192&r1=1073191&r2=1073192&view=diff
==============================================================================
--- lucene/dev/branches/realtime_search/solr/src/test/org/apache/solr/handler/component/DistributedSpellCheckComponentTest.java (original)
+++ lucene/dev/branches/realtime_search/solr/src/test/org/apache/solr/handler/component/DistributedSpellCheckComponentTest.java Tue Feb 22 01:00:39 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/realtime_search/solr/src/test/org/apache/solr/handler/component/DistributedTermsComponentTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/realtime_search/solr/src/test/org/apache/solr/handler/component/DistributedTermsComponentTest.java?rev=1073192&r1=1073191&r2=1073192&view=diff
==============================================================================
--- lucene/dev/branches/realtime_search/solr/src/test/org/apache/solr/handler/component/DistributedTermsComponentTest.java (original)
+++ lucene/dev/branches/realtime_search/solr/src/test/org/apache/solr/handler/component/DistributedTermsComponentTest.java Tue Feb 22 01:00:39 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/realtime_search/solr/src/test/org/apache/solr/handler/component/QueryElevationComponentTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/realtime_search/solr/src/test/org/apache/solr/handler/component/QueryElevationComponentTest.java?rev=1073192&r1=1073191&r2=1073192&view=diff
==============================================================================
--- lucene/dev/branches/realtime_search/solr/src/test/org/apache/solr/handler/component/QueryElevationComponentTest.java (original)
+++ lucene/dev/branches/realtime_search/solr/src/test/org/apache/solr/handler/component/QueryElevationComponentTest.java Tue Feb 22 01:00:39 2011
@@ -120,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";
@@ -188,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']"

Modified: lucene/dev/branches/realtime_search/solr/src/test/org/apache/solr/handler/component/SpellCheckComponentTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/realtime_search/solr/src/test/org/apache/solr/handler/component/SpellCheckComponentTest.java?rev=1073192&r1=1073191&r2=1073192&view=diff
==============================================================================
--- lucene/dev/branches/realtime_search/solr/src/test/org/apache/solr/handler/component/SpellCheckComponentTest.java (original)
+++ lucene/dev/branches/realtime_search/solr/src/test/org/apache/solr/handler/component/SpellCheckComponentTest.java Tue Feb 22 01:00:39 2011
@@ -42,6 +42,7 @@ public class SpellCheckComponentTest ext
     initCore("solrconfig-spellcheckcomponent.xml","schema.xml");
   }
   
+  @Override
   public void setUp() throws Exception {
     super.setUp();
     assertU(adoc("id", "0", "lowerfilt", "This is a title"));
@@ -59,6 +60,7 @@ public class SpellCheckComponentTest ext
     assertU((commit()));
   }
   
+  @Override
   public void tearDown() throws Exception {
     super.tearDown();
     assertU(delQ("*:*"));

Modified: lucene/dev/branches/realtime_search/solr/src/test/org/apache/solr/highlight/HighlighterTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/realtime_search/solr/src/test/org/apache/solr/highlight/HighlighterTest.java?rev=1073192&r1=1073191&r2=1073192&view=diff
==============================================================================
--- lucene/dev/branches/realtime_search/solr/src/test/org/apache/solr/highlight/HighlighterTest.java (original)
+++ lucene/dev/branches/realtime_search/solr/src/test/org/apache/solr/highlight/HighlighterTest.java Tue Feb 22 01:00:39 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/realtime_search/solr/src/test/org/apache/solr/request/TestBinaryResponseWriter.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/realtime_search/solr/src/test/org/apache/solr/request/TestBinaryResponseWriter.java?rev=1073192&r1=1073191&r2=1073192&view=diff
==============================================================================
--- lucene/dev/branches/realtime_search/solr/src/test/org/apache/solr/request/TestBinaryResponseWriter.java (original)
+++ lucene/dev/branches/realtime_search/solr/src/test/org/apache/solr/request/TestBinaryResponseWriter.java Tue Feb 22 01:00:39 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/realtime_search/solr/src/test/org/apache/solr/request/TestWriterPerf.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/realtime_search/solr/src/test/org/apache/solr/request/TestWriterPerf.java?rev=1073192&r1=1073191&r2=1073192&view=diff
==============================================================================
--- lucene/dev/branches/realtime_search/solr/src/test/org/apache/solr/request/TestWriterPerf.java (original)
+++ lucene/dev/branches/realtime_search/solr/src/test/org/apache/solr/request/TestWriterPerf.java Tue Feb 22 01:00:39 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/realtime_search/solr/src/test/org/apache/solr/schema/CustomSimilarityFactory.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/realtime_search/solr/src/test/org/apache/solr/schema/CustomSimilarityFactory.java?rev=1073192&r1=1073191&r2=1073192&view=diff
==============================================================================
--- lucene/dev/branches/realtime_search/solr/src/test/org/apache/solr/schema/CustomSimilarityFactory.java (original)
+++ lucene/dev/branches/realtime_search/solr/src/test/org/apache/solr/schema/CustomSimilarityFactory.java Tue Feb 22 01:00:39 2011
@@ -19,6 +19,7 @@ package org.apache.solr.schema;
 import org.apache.lucene.search.SimilarityProvider;
 
 public class CustomSimilarityFactory extends SimilarityFactory {
+  @Override
   public SimilarityProvider getSimilarityProvider() {
     return new MockConfigurableSimilarity(params.get("echo"));
   }

Modified: lucene/dev/branches/realtime_search/solr/src/test/org/apache/solr/schema/DateFieldTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/realtime_search/solr/src/test/org/apache/solr/schema/DateFieldTest.java?rev=1073192&r1=1073191&r2=1073192&view=diff
==============================================================================
--- lucene/dev/branches/realtime_search/solr/src/test/org/apache/solr/schema/DateFieldTest.java (original)
+++ lucene/dev/branches/realtime_search/solr/src/test/org/apache/solr/schema/DateFieldTest.java Tue Feb 22 01:00:39 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/realtime_search/solr/src/test/org/apache/solr/schema/TestBinaryField.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/realtime_search/solr/src/test/org/apache/solr/schema/TestBinaryField.java?rev=1073192&r1=1073191&r2=1073192&view=diff
==============================================================================
--- lucene/dev/branches/realtime_search/solr/src/test/org/apache/solr/schema/TestBinaryField.java (original)
+++ lucene/dev/branches/realtime_search/solr/src/test/org/apache/solr/schema/TestBinaryField.java Tue Feb 22 01:00:39 2011
@@ -174,6 +174,7 @@ public class TestBinaryField extends Luc
   }
 
 
+  @Override
   public void tearDown() throws Exception {
     jetty.stop();
     super.tearDown();

Modified: lucene/dev/branches/realtime_search/solr/src/test/org/apache/solr/search/FooQParserPlugin.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/realtime_search/solr/src/test/org/apache/solr/search/FooQParserPlugin.java?rev=1073192&r1=1073191&r2=1073192&view=diff
==============================================================================
--- lucene/dev/branches/realtime_search/solr/src/test/org/apache/solr/search/FooQParserPlugin.java (original)
+++ lucene/dev/branches/realtime_search/solr/src/test/org/apache/solr/search/FooQParserPlugin.java Tue Feb 22 01:00:39 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/realtime_search/solr/src/test/org/apache/solr/search/QueryParsingTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/realtime_search/solr/src/test/org/apache/solr/search/QueryParsingTest.java?rev=1073192&r1=1073191&r2=1073192&view=diff
==============================================================================
--- lucene/dev/branches/realtime_search/solr/src/test/org/apache/solr/search/QueryParsingTest.java (original)
+++ lucene/dev/branches/realtime_search/solr/src/test/org/apache/solr/search/QueryParsingTest.java Tue Feb 22 01:00:39 2011
@@ -102,10 +102,10 @@ public class QueryParsingTest extends So
     assertEquals(flds[0].getField(), "pow(float(weight),const(2.0))");
     
     //test functions (more deep)
-    sort = QueryParsing.parseSort("sum(product(r_f,sum(d_f,t_f,1)),a_f) asc", req);
+    sort = QueryParsing.parseSort("sum(product(r_f1,sum(d_f1,t_f1,1)),a_f1) asc", req);
     flds = sort.getSort();
     assertEquals(flds[0].getType(), SortField.CUSTOM);
-    assertEquals(flds[0].getField(), "sum(product(float(r_f),sum(float(d_f),float(t_f),const(1.0))),float(a_f))");
+    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)         desc", req);
     flds = sort.getSort();
@@ -135,11 +135,11 @@ public class QueryParsingTest extends So
     assertEquals(flds[0].getField(), "weight");
 
     //Test literals in functions
-    sort = QueryParsing.parseSort("strdist(foo_s, \"junk\", jw) desc", req);
+    sort = QueryParsing.parseSort("strdist(foo_s1, \"junk\", jw) desc", req);
     flds = sort.getSort();
     assertEquals(flds[0].getType(), SortField.CUSTOM);
     //the value sources get wrapped, so the out field is different than the input
-    assertEquals(flds[0].getField(), "strdist(str(foo_s),literal(junk), dist=org.apache.lucene.search.spell.JaroWinklerDistance)");
+    assertEquals(flds[0].getField(), "strdist(str(foo_s1),literal(junk), dist=org.apache.lucene.search.spell.JaroWinklerDistance)");
 
     sort = QueryParsing.parseSort("", req);
     assertNull(sort);

Modified: lucene/dev/branches/realtime_search/solr/src/test/org/apache/solr/search/TestExtendedDismaxParser.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/realtime_search/solr/src/test/org/apache/solr/search/TestExtendedDismaxParser.java?rev=1073192&r1=1073191&r2=1073192&view=diff
==============================================================================
--- lucene/dev/branches/realtime_search/solr/src/test/org/apache/solr/search/TestExtendedDismaxParser.java (original)
+++ lucene/dev/branches/realtime_search/solr/src/test/org/apache/solr/search/TestExtendedDismaxParser.java Tue Feb 22 01:00:39 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/realtime_search/solr/src/test/org/apache/solr/search/TestFastLRUCache.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/realtime_search/solr/src/test/org/apache/solr/search/TestFastLRUCache.java?rev=1073192&r1=1073191&r2=1073192&view=diff
==============================================================================
--- lucene/dev/branches/realtime_search/solr/src/test/org/apache/solr/search/TestFastLRUCache.java (original)
+++ lucene/dev/branches/realtime_search/solr/src/test/org/apache/solr/search/TestFastLRUCache.java Tue Feb 22 01:00:39 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/realtime_search/solr/src/test/org/apache/solr/search/TestIndexSearcher.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/realtime_search/solr/src/test/org/apache/solr/search/TestIndexSearcher.java?rev=1073192&r1=1073191&r2=1073192&view=diff
==============================================================================
--- lucene/dev/branches/realtime_search/solr/src/test/org/apache/solr/search/TestIndexSearcher.java (original)
+++ lucene/dev/branches/realtime_search/solr/src/test/org/apache/solr/search/TestIndexSearcher.java Tue Feb 22 01:00:39 2011
@@ -36,6 +36,7 @@ public class TestIndexSearcher extends S
     initCore("solrconfig.xml","schema.xml");
   }
   
+  @Override
   public void tearDown() throws Exception {
     super.tearDown();
     assertU(delQ("*:*"));
@@ -58,18 +59,18 @@ public class TestIndexSearcher extends S
 
   public void testReopen() throws Exception {
 
-    assertU(adoc("id","1", "v_t","Hello Dude", "v_s","string1"));
-    assertU(adoc("id","2", "v_t","Hello Yonik", "v_s","string2"));
+    assertU(adoc("id","1", "v_t","Hello Dude", "v_s1","string1"));
+    assertU(adoc("id","2", "v_t","Hello Yonik", "v_s1","string2"));
     assertU(commit());
 
     SolrQueryRequest sr1 = req("q","foo");
     ReaderContext rCtx1 = sr1.getSearcher().getTopReaderContext();
 
-    String sval1 = getStringVal(sr1, "v_s",0);
+    String sval1 = getStringVal(sr1, "v_s1",0);
     assertEquals("string1", sval1);
 
-    assertU(adoc("id","3", "v_s","{!literal}"));
-    assertU(adoc("id","4", "v_s","other stuff"));
+    assertU(adoc("id","3", "v_s1","{!literal}"));
+    assertU(adoc("id","4", "v_s1","other stuff"));
     assertU(commit());
 
     SolrQueryRequest sr2 = req("q","foo");
@@ -80,7 +81,7 @@ public class TestIndexSearcher extends S
     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(adoc("id","6", "v_f","8983", "v_s1","string6"));
     assertU(commit());
 
     SolrQueryRequest sr3 = req("q","foo");
@@ -128,4 +129,4 @@ public class TestIndexSearcher extends S
     sr5.close();
     sr6.close();
   }
-}
\ No newline at end of file
+}

Modified: lucene/dev/branches/realtime_search/solr/src/test/org/apache/solr/search/TestLRUCache.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/realtime_search/solr/src/test/org/apache/solr/search/TestLRUCache.java?rev=1073192&r1=1073191&r2=1073192&view=diff
==============================================================================
--- lucene/dev/branches/realtime_search/solr/src/test/org/apache/solr/search/TestLRUCache.java (original)
+++ lucene/dev/branches/realtime_search/solr/src/test/org/apache/solr/search/TestLRUCache.java Tue Feb 22 01:00:39 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/realtime_search/solr/src/test/org/apache/solr/search/TestQueryTypes.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/realtime_search/solr/src/test/org/apache/solr/search/TestQueryTypes.java?rev=1073192&r1=1073191&r2=1073192&view=diff
==============================================================================
--- lucene/dev/branches/realtime_search/solr/src/test/org/apache/solr/search/TestQueryTypes.java (original)
+++ lucene/dev/branches/realtime_search/solr/src/test/org/apache/solr/search/TestQueryTypes.java Tue Feb 22 01:00:39 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
@@ -83,7 +87,6 @@ public class TestQueryTypes extends Abst
               ,"//*[@name='id'][.='999.0']"
               ,"//*[@name='" + f + "'][.='" + v + "']"
               );
-      // System.out.println("#########################################" + f + "=" + v);
 
       // field qparser
       assertQ(req( "q", "{!field f="+f+"}"+v)
@@ -94,20 +97,34 @@ public class TestQueryTypes extends Abst
       assertQ(req( "q", f + ":[\"" + v + "\" TO \"" + v + "\"]" )
               ,"//result[@numFound='1']"
               );
+    }
 
+    // frange and function query only work on single valued field types
+    Object[] fc_vals = new Object[] {
+      "id",999.0
+      ,"v_s","wow dude"
+      ,"v_ti",-1
+      ,"v_tl",-1234567891234567890L
+      ,"v_tf",-2.0f
+      ,"v_td",-2.0
+      ,"v_tdt","2000-05-10T01:01:01Z"
+    };
+    
+    for (int i=0; i<fc_vals.length; i+=2) {
+      String f = fc_vals[i].toString();
+      String v = fc_vals[i+1].toString();
+      
       // frange qparser
       assertQ(req( "q", "{!frange v="+f+" l='"+v+"' u='"+v+"'}" )
               ,"//result[@numFound='1']"
               );
-
+      
       // function query... just make sure it doesn't throw an exception
-       assertQ(req( "q", "+id:999 _val_:\"" + f + "\"")
-            ,"//result[@numFound='1']"
-        );
-
+      assertQ(req( "q", "+id:999 _val_:\"" + f + "\"")
+              ,"//result[@numFound='1']"
+              );
     }
 
-
     // Some basic tests to ensure that parsing local params is working
     assertQ("test prefix query",
             req("q","{!prefix f=v_t}hel")
@@ -314,4 +331,4 @@ public class TestQueryTypes extends Abst
             );
 
   }
-}
\ No newline at end of file
+}

Modified: lucene/dev/branches/realtime_search/solr/src/test/org/apache/solr/search/TestQueryUtils.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/realtime_search/solr/src/test/org/apache/solr/search/TestQueryUtils.java?rev=1073192&r1=1073191&r2=1073192&view=diff
==============================================================================
--- lucene/dev/branches/realtime_search/solr/src/test/org/apache/solr/search/TestQueryUtils.java (original)
+++ lucene/dev/branches/realtime_search/solr/src/test/org/apache/solr/search/TestQueryUtils.java Tue Feb 22 01:00:39 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/realtime_search/solr/src/test/org/apache/solr/search/TestRangeQuery.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/realtime_search/solr/src/test/org/apache/solr/search/TestRangeQuery.java?rev=1073192&r1=1073191&r2=1073192&view=diff
==============================================================================
--- lucene/dev/branches/realtime_search/solr/src/test/org/apache/solr/search/TestRangeQuery.java (original)
+++ lucene/dev/branches/realtime_search/solr/src/test/org/apache/solr/search/TestRangeQuery.java Tue Feb 22 01:00:39 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/realtime_search/solr/src/test/org/apache/solr/search/TestSearchPerf.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/realtime_search/solr/src/test/org/apache/solr/search/TestSearchPerf.java?rev=1073192&r1=1073191&r2=1073192&view=diff
==============================================================================
--- lucene/dev/branches/realtime_search/solr/src/test/org/apache/solr/search/TestSearchPerf.java (original)
+++ lucene/dev/branches/realtime_search/solr/src/test/org/apache/solr/search/TestSearchPerf.java Tue Feb 22 01:00:39 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/realtime_search/solr/src/test/org/apache/solr/search/TestSort.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/realtime_search/solr/src/test/org/apache/solr/search/TestSort.java?rev=1073192&r1=1073191&r2=1073192&view=diff
==============================================================================
--- lucene/dev/branches/realtime_search/solr/src/test/org/apache/solr/search/TestSort.java (original)
+++ lucene/dev/branches/realtime_search/solr/src/test/org/apache/solr/search/TestSort.java Tue Feb 22 01:00:39 2011
@@ -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 + "}";
     }

Modified: lucene/dev/branches/realtime_search/solr/src/test/org/apache/solr/search/function/NvlValueSourceParser.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/realtime_search/solr/src/test/org/apache/solr/search/function/NvlValueSourceParser.java?rev=1073192&r1=1073191&r2=1073192&view=diff
==============================================================================
--- lucene/dev/branches/realtime_search/solr/src/test/org/apache/solr/search/function/NvlValueSourceParser.java (original)
+++ lucene/dev/branches/realtime_search/solr/src/test/org/apache/solr/search/function/NvlValueSourceParser.java Tue Feb 22 01:00:39 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/realtime_search/solr/src/test/org/apache/solr/search/function/SortByFunctionTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/realtime_search/solr/src/test/org/apache/solr/search/function/SortByFunctionTest.java?rev=1073192&r1=1073191&r2=1073192&view=diff
==============================================================================
--- lucene/dev/branches/realtime_search/solr/src/test/org/apache/solr/search/function/SortByFunctionTest.java (original)
+++ lucene/dev/branches/realtime_search/solr/src/test/org/apache/solr/search/function/SortByFunctionTest.java Tue Feb 22 01:00:39 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_td1", "0", "y_td1", "2", "w_td1", "25", "z_td1", "5", "f_t", "ipod"));
+    assertU(adoc("id", "2", "x_td1", "2", "y_td1", "2", "w_td1", "15", "z_td1", "5", "f_t", "ipod ipod ipod ipod ipod"));
+    assertU(adoc("id", "3", "x_td1", "3", "y_td1", "2", "w_td1", "55", "z_td1", "5", "f_t", "ipod ipod ipod ipod ipod ipod ipod ipod ipod"));
+    assertU(adoc("id", "4", "x_td1", "4", "y_td1", "2", "w_td1", "45", "z_td1", "5", "f_t", "ipod ipod ipod ipod ipod ipod ipod"));
     assertU(commit());
 
     assertQ(req("fl", "*,score", "q", "*:*"),
@@ -64,7 +66,7 @@ public class SortByFunctionTest extends 
     );
 
 
-    assertQ(req("fl", "*,score", "q", "*:*", "sort", "sum(x_td, y_td) desc"),
+    assertQ(req("fl", "*,score", "q", "*:*", "sort", "sum(x_td1, y_td1) desc"),
             "//*[@numFound='4']",
             "//float[@name='score']='1.0'",
             "//result/doc[1]/int[@name='id'][.='4']",
@@ -72,7 +74,7 @@ public class SortByFunctionTest extends 
             "//result/doc[3]/int[@name='id'][.='2']",
             "//result/doc[4]/int[@name='id'][.='1']"
     );
-    assertQ(req("fl", "*,score", "q", "*:*", "sort", "sum(x_td, y_td) asc"),
+    assertQ(req("fl", "*,score", "q", "*:*", "sort", "sum(x_td1, y_td1) asc"),
             "//*[@numFound='4']",
             "//float[@name='score']='1.0'",
             "//result/doc[1]/int[@name='id'][.='1']",
@@ -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_td1, y_td1) asc, w_td1 asc"),
             "//*[@numFound='4']",
             "//result/doc[1]/int[@name='id'][.='2']",
             "//result/doc[2]/int[@name='id'][.='1']",
@@ -122,7 +124,3 @@ 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/realtime_search/solr/src/test/org/apache/solr/search/function/TestFunctionQuery.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/realtime_search/solr/src/test/org/apache/solr/search/function/TestFunctionQuery.java?rev=1073192&r1=1073191&r2=1073192&view=diff
==============================================================================
--- lucene/dev/branches/realtime_search/solr/src/test/org/apache/solr/search/function/TestFunctionQuery.java (original)
+++ lucene/dev/branches/realtime_search/solr/src/test/org/apache/solr/search/function/TestFunctionQuery.java Tue Feb 22 01:00:39 2011
@@ -299,7 +299,7 @@ public class TestFunctionQuery extends S
     state.setBoost(1.0f);
     state.setLength(4);
     assertQ(req("fl","*,score","q", "{!func}norm(a_t)", "fq","id:2"),
-        "//float[@name='score']='" + similarity.computeNorm("a_t",state)  + "'");  // sqrt(4)==2 and is exactly representable when quantized to a byte
+        "//float[@name='score']='" + similarity.computeNorm(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)
@@ -498,6 +498,8 @@ public class TestFunctionQuery extends S
     dofunc("deg(.5)", Math.toDegrees(.5));
     dofunc("sqrt(9)", Math.sqrt(9));
     dofunc("cbrt(8)", Math.cbrt(8));
+    dofunc("max(0,1)", Math.max(0,1));
+    dofunc("min(0,1)", Math.min(0,1));
     dofunc("log(100)", Math.log10(100));
     dofunc("ln(3)", Math.log(3));
     dofunc("exp(1)", Math.exp(1));

Modified: lucene/dev/branches/realtime_search/solr/src/test/org/apache/solr/search/function/distance/DistanceFunctionTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/realtime_search/solr/src/test/org/apache/solr/search/function/distance/DistanceFunctionTest.java?rev=1073192&r1=1073191&r2=1073192&view=diff
==============================================================================
--- lucene/dev/branches/realtime_search/solr/src/test/org/apache/solr/search/function/distance/DistanceFunctionTest.java (original)
+++ lucene/dev/branches/realtime_search/solr/src/test/org/apache/solr/search/function/distance/DistanceFunctionTest.java Tue Feb 22 01:00:39 2011
@@ -36,12 +36,12 @@ public class DistanceFunctionTest extend
   @Test
   public void testHaversine() throws Exception {
     clearIndex();
-    assertU(adoc("id", "1", "x_td", "0", "y_td", "0", "gh_s", GeoHashUtils.encode(32.7693246, -79.9289094)));
-    assertU(adoc("id", "2", "x_td", "0", "y_td", String.valueOf(Math.PI / 2), "gh_s", GeoHashUtils.encode(32.7693246, -78.9289094)));
-    assertU(adoc("id", "3", "x_td", String.valueOf(Math.PI / 2), "y_td", String.valueOf(Math.PI / 2), "gh_s", GeoHashUtils.encode(32.7693246, -80.9289094)));
-    assertU(adoc("id", "4", "x_td", String.valueOf(Math.PI / 4), "y_td", String.valueOf(Math.PI / 4), "gh_s", GeoHashUtils.encode(32.7693246, -81.9289094)));
+    assertU(adoc("id", "1", "x_td", "0", "y_td", "0", "gh_s1", GeoHashUtils.encode(32.7693246, -79.9289094)));
+    assertU(adoc("id", "2", "x_td", "0", "y_td", String.valueOf(Math.PI / 2), "gh_s1", GeoHashUtils.encode(32.7693246, -78.9289094)));
+    assertU(adoc("id", "3", "x_td", String.valueOf(Math.PI / 2), "y_td", String.valueOf(Math.PI / 2), "gh_s1", GeoHashUtils.encode(32.7693246, -80.9289094)));
+    assertU(adoc("id", "4", "x_td", String.valueOf(Math.PI / 4), "y_td", String.valueOf(Math.PI / 4), "gh_s1", GeoHashUtils.encode(32.7693246, -81.9289094)));
     assertU(adoc("id", "5", "x_td", "45.0", "y_td", "45.0",
-            "gh_s", GeoHashUtils.encode(32.7693246, -81.9289094)));
+            "gh_s1", GeoHashUtils.encode(32.7693246, -81.9289094)));
     assertU(adoc("id", "6", "point_hash", "32.5, -79.0", "point", "32.5, -79.0"));
     assertU(adoc("id", "7", "point_hash", "32.6, -78.0", "point", "32.6, -78.0"));
     assertU(commit());
@@ -56,7 +56,7 @@ public class DistanceFunctionTest extend
     
     //Geo Hash Haversine
     //Can verify here: http://www.movable-type.co.uk/scripts/latlong.html, but they use a slightly different radius for the earth, so just be close
-    assertQ(req("fl", "*,score", "q", "{!func}ghhsin(" + DistanceUtils.EARTH_MEAN_RADIUS_KM + ", gh_s, \"" + GeoHashUtils.encode(32, -79) +
+    assertQ(req("fl", "*,score", "q", "{!func}ghhsin(" + DistanceUtils.EARTH_MEAN_RADIUS_KM + ", gh_s1, \"" + GeoHashUtils.encode(32, -79) +
             "\",)", "fq", "id:1"), "//float[@name='score']='122.171875'");
 
     assertQ(req("fl", "id,point_hash,score", "q", "{!func}recip(ghhsin(" + DistanceUtils.EARTH_MEAN_RADIUS_KM + ", point_hash, \"" + GeoHashUtils.encode(32, -79) + "\"), 1, 1, 0)"),
@@ -66,7 +66,7 @@ public class DistanceFunctionTest extend
             );
 
 
-    assertQ(req("fl", "*,score", "q", "{!func}ghhsin(" + DistanceUtils.EARTH_MEAN_RADIUS_KM + ", gh_s, geohash(32, -79))", "fq", "id:1"), "//float[@name='score']='122.171875'");
+    assertQ(req("fl", "*,score", "q", "{!func}ghhsin(" + DistanceUtils.EARTH_MEAN_RADIUS_KM + ", gh_s1, geohash(32, -79))", "fq", "id:1"), "//float[@name='score']='122.171875'");
 
   }
 

Modified: lucene/dev/branches/realtime_search/solr/src/test/org/apache/solr/servlet/CacheHeaderTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/realtime_search/solr/src/test/org/apache/solr/servlet/CacheHeaderTest.java?rev=1073192&r1=1073191&r2=1073192&view=diff
==============================================================================
--- lucene/dev/branches/realtime_search/solr/src/test/org/apache/solr/servlet/CacheHeaderTest.java (original)
+++ lucene/dev/branches/realtime_search/solr/src/test/org/apache/solr/servlet/CacheHeaderTest.java Tue Feb 22 01:00:39 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/realtime_search/solr/src/test/org/apache/solr/servlet/DirectSolrConnectionTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/realtime_search/solr/src/test/org/apache/solr/servlet/DirectSolrConnectionTest.java?rev=1073192&r1=1073191&r2=1073192&view=diff
==============================================================================
--- lucene/dev/branches/realtime_search/solr/src/test/org/apache/solr/servlet/DirectSolrConnectionTest.java (original)
+++ lucene/dev/branches/realtime_search/solr/src/test/org/apache/solr/servlet/DirectSolrConnectionTest.java Tue Feb 22 01:00:39 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/realtime_search/solr/src/test/org/apache/solr/servlet/NoCacheHeaderTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/realtime_search/solr/src/test/org/apache/solr/servlet/NoCacheHeaderTest.java?rev=1073192&r1=1073191&r2=1073192&view=diff
==============================================================================
--- lucene/dev/branches/realtime_search/solr/src/test/org/apache/solr/servlet/NoCacheHeaderTest.java (original)
+++ lucene/dev/branches/realtime_search/solr/src/test/org/apache/solr/servlet/NoCacheHeaderTest.java Tue Feb 22 01:00:39 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/realtime_search/solr/src/test/org/apache/solr/servlet/SolrRequestParserTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/realtime_search/solr/src/test/org/apache/solr/servlet/SolrRequestParserTest.java?rev=1073192&r1=1073191&r2=1073192&view=diff
==============================================================================
--- lucene/dev/branches/realtime_search/solr/src/test/org/apache/solr/servlet/SolrRequestParserTest.java (original)
+++ lucene/dev/branches/realtime_search/solr/src/test/org/apache/solr/servlet/SolrRequestParserTest.java Tue Feb 22 01:00:39 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/realtime_search/solr/src/test/org/apache/solr/spelling/IndexBasedSpellCheckerTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/realtime_search/solr/src/test/org/apache/solr/spelling/IndexBasedSpellCheckerTest.java?rev=1073192&r1=1073191&r2=1073192&view=diff
==============================================================================
--- lucene/dev/branches/realtime_search/solr/src/test/org/apache/solr/spelling/IndexBasedSpellCheckerTest.java (original)
+++ lucene/dev/branches/realtime_search/solr/src/test/org/apache/solr/spelling/IndexBasedSpellCheckerTest.java Tue Feb 22 01:00:39 2011
@@ -227,6 +227,7 @@ public class IndexBasedSpellCheckerTest 
   }
 
   private class TestSpellChecker extends IndexBasedSpellChecker{
+    @Override
     public SpellChecker getSpellChecker(){
       return spellChecker;
     }

Modified: lucene/dev/branches/realtime_search/solr/src/test/org/apache/solr/spelling/SpellPossibilityIteratorTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/realtime_search/solr/src/test/org/apache/solr/spelling/SpellPossibilityIteratorTest.java?rev=1073192&r1=1073191&r2=1073192&view=diff
==============================================================================
--- lucene/dev/branches/realtime_search/solr/src/test/org/apache/solr/spelling/SpellPossibilityIteratorTest.java (original)
+++ lucene/dev/branches/realtime_search/solr/src/test/org/apache/solr/spelling/SpellPossibilityIteratorTest.java Tue Feb 22 01:00:39 2011
@@ -29,7 +29,8 @@ public class SpellPossibilityIteratorTes
 
 	private static Map<Token, LinkedHashMap<String, Integer>> suggestions = new LinkedHashMap<Token, LinkedHashMap<String, Integer>>();
 
-	@Before
+	@Override
+  @Before
 	public void setUp() throws Exception {
 	  super.setUp();
 		suggestions.clear();

Modified: lucene/dev/branches/realtime_search/solr/src/test/org/apache/solr/update/AutoCommitTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/realtime_search/solr/src/test/org/apache/solr/update/AutoCommitTest.java?rev=1073192&r1=1073191&r2=1073192&view=diff
==============================================================================
--- lucene/dev/branches/realtime_search/solr/src/test/org/apache/solr/update/AutoCommitTest.java (original)
+++ lucene/dev/branches/realtime_search/solr/src/test/org/apache/solr/update/AutoCommitTest.java Tue Feb 22 01:00:39 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/realtime_search/solr/src/test/org/apache/solr/update/DirectUpdateHandlerOptimizeTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/realtime_search/solr/src/test/org/apache/solr/update/DirectUpdateHandlerOptimizeTest.java?rev=1073192&r1=1073191&r2=1073192&view=diff
==============================================================================
--- lucene/dev/branches/realtime_search/solr/src/test/org/apache/solr/update/DirectUpdateHandlerOptimizeTest.java (original)
+++ lucene/dev/branches/realtime_search/solr/src/test/org/apache/solr/update/DirectUpdateHandlerOptimizeTest.java Tue Feb 22 01:00:39 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/realtime_search/solr/src/test/org/apache/solr/update/DirectUpdateHandlerTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/realtime_search/solr/src/test/org/apache/solr/update/DirectUpdateHandlerTest.java?rev=1073192&r1=1073191&r2=1073192&view=diff
==============================================================================
--- lucene/dev/branches/realtime_search/solr/src/test/org/apache/solr/update/DirectUpdateHandlerTest.java (original)
+++ lucene/dev/branches/realtime_search/solr/src/test/org/apache/solr/update/DirectUpdateHandlerTest.java Tue Feb 22 01:00:39 2011
@@ -42,6 +42,7 @@ public class DirectUpdateHandlerTest ext
     initCore("solrconfig.xml", "schema12.xml");
   }
 
+  @Override
   @Before
   public void setUp() throws Exception {
     super.setUp();

Modified: lucene/dev/branches/realtime_search/solr/src/test/org/apache/solr/update/TestIndexingPerformance.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/realtime_search/solr/src/test/org/apache/solr/update/TestIndexingPerformance.java?rev=1073192&r1=1073191&r2=1073192&view=diff
==============================================================================
--- lucene/dev/branches/realtime_search/solr/src/test/org/apache/solr/update/TestIndexingPerformance.java (original)
+++ lucene/dev/branches/realtime_search/solr/src/test/org/apache/solr/update/TestIndexingPerformance.java Tue Feb 22 01:00:39 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/realtime_search/solr/src/test/org/apache/solr/update/processor/SignatureUpdateProcessorFactoryTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/realtime_search/solr/src/test/org/apache/solr/update/processor/SignatureUpdateProcessorFactoryTest.java?rev=1073192&r1=1073191&r2=1073192&view=diff
==============================================================================
--- lucene/dev/branches/realtime_search/solr/src/test/org/apache/solr/update/processor/SignatureUpdateProcessorFactoryTest.java (original)
+++ lucene/dev/branches/realtime_search/solr/src/test/org/apache/solr/update/processor/SignatureUpdateProcessorFactoryTest.java Tue Feb 22 01:00:39 2011
@@ -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",

Modified: lucene/dev/branches/realtime_search/solr/src/test/org/apache/solr/util/AbstractSolrTestCase.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/realtime_search/solr/src/test/org/apache/solr/util/AbstractSolrTestCase.java?rev=1073192&r1=1073191&r2=1073192&view=diff
==============================================================================
--- lucene/dev/branches/realtime_search/solr/src/test/org/apache/solr/util/AbstractSolrTestCase.java (original)
+++ lucene/dev/branches/realtime_search/solr/src/test/org/apache/solr/util/AbstractSolrTestCase.java Tue Feb 22 01:00:39 2011
@@ -111,6 +111,7 @@ public abstract class AbstractSolrTestCa
   public static Logger log = LoggerFactory.getLogger(AbstractSolrTestCase.class);
 
   private String factoryProp;
+  @Override
   public void setUp() throws Exception {
     super.setUp();
     log.info("####SETUP_START " + getName());
@@ -170,6 +171,7 @@ public abstract class AbstractSolrTestCa
    * to delete dataDir, unless the system property "solr.test.leavedatadir"
    * is set.
    */
+  @Override
   public void tearDown() throws Exception {
     log.info("####TEARDOWN_START " + getName());
     if (factoryProp == null) {
@@ -403,6 +405,7 @@ public abstract class AbstractSolrTestCa
   /** Neccessary to make method signatures un-ambiguous */
   public static class Doc {
     public String xml;
+    @Override
     public String toString() { return xml; }
   }
 

Modified: lucene/dev/branches/realtime_search/solr/src/test/org/apache/solr/util/TestNumberUtils.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/realtime_search/solr/src/test/org/apache/solr/util/TestNumberUtils.java?rev=1073192&r1=1073191&r2=1073192&view=diff
==============================================================================
--- lucene/dev/branches/realtime_search/solr/src/test/org/apache/solr/util/TestNumberUtils.java (original)
+++ lucene/dev/branches/realtime_search/solr/src/test/org/apache/solr/util/TestNumberUtils.java Tue Feb 22 01:00:39 2011
@@ -182,72 +182,88 @@ abstract class Converter {
 }
 
 class Int2Int extends Converter {
+  @Override
   public String toInternal(String val) {
     return Integer.toString(Integer.parseInt(val));
   }
+  @Override
   public String toExternal(String val) {
     return Integer.toString(Integer.parseInt(val));
   }
 }
 
 class SortInt extends Converter {
+  @Override
   public String toInternal(String val) {
     return NumberUtils.int2sortableStr(val);
   }
+  @Override
   public String toExternal(String val) {
     return NumberUtils.SortableStr2int(val);
   }
 }
 
 class SortLong extends Converter {
+  @Override
   public String toInternal(String val) {
     return NumberUtils.long2sortableStr(val);
   }
+  @Override
   public String toExternal(String val) {
     return NumberUtils.SortableStr2long(val);
   }
 }
 
 class Float2Float extends Converter {
+  @Override
   public String toInternal(String val) {
     return Float.toString(Float.parseFloat(val));
   }
+  @Override
   public String toExternal(String val) {
     return Float.toString(Float.parseFloat(val));
   }
 }
 
 class SortFloat extends Converter {
+  @Override
   public String toInternal(String val) {
     return NumberUtils.float2sortableStr(val);
   }
+  @Override
   public String toExternal(String val) {
     return NumberUtils.SortableStr2floatStr(val);
   }
 }
 
 class SortDouble extends Converter {
+  @Override
   public String toInternal(String val) {
     return NumberUtils.double2sortableStr(val);
   }
+  @Override
   public String toExternal(String val) {
     return NumberUtils.SortableStr2doubleStr(val);
   }
 }
 
 class Base100S extends Converter {
+  @Override
   public String toInternal(String val) {
     return BCDUtils.base10toBase100SortableInt(val);
   }
+  @Override
   public String toExternal(String val) {
     return BCDUtils.base100SortableIntToBase10(val);
   }
 }
 
 class Base10kS extends Converter {
+  @Override
   public String toInternal(String val) {
     return BCDUtils.base10toBase10kSortableInt(val);
   }
+  @Override
   public String toExternal(String val) {
     return BCDUtils.base10kSortableIntToBase10(val);
   }

Modified: lucene/dev/branches/realtime_search/solr/src/test/org/apache/solr/velocity/VelocityResponseWriterTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/realtime_search/solr/src/test/org/apache/solr/velocity/VelocityResponseWriterTest.java?rev=1073192&r1=1073191&r2=1073192&view=diff
==============================================================================
--- lucene/dev/branches/realtime_search/solr/src/test/org/apache/solr/velocity/VelocityResponseWriterTest.java (original)
+++ lucene/dev/branches/realtime_search/solr/src/test/org/apache/solr/velocity/VelocityResponseWriterTest.java Tue Feb 22 01:00:39 2011
@@ -1,3 +1,20 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
 package org.apache.solr.velocity;
 
 import org.apache.solr.response.SolrQueryResponse;
@@ -9,7 +26,9 @@ import java.io.StringWriter;
 import java.io.IOException;
 
 public class VelocityResponseWriterTest extends AbstractSolrTestCase {
+  @Override
   public String getSchemaFile() { return "schema.xml"; }
+  @Override
   public String getSolrConfigFile() { return "solrconfig.xml"; }