lucene-solr-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From no...@apache.org
Subject svn commit: r817650 - in /lucene/solr/trunk: ./ example/solr/conf/ src/java/org/apache/solr/core/ src/java/org/apache/solr/update/ src/java/org/apache/solr/util/ src/test/org/apache/solr/core/ src/test/test-files/solr/conf/
Date Tue, 22 Sep 2009 13:14:37 GMT
Author: noble
Date: Tue Sep 22 13:14:35 2009
New Revision: 817650

URL: http://svn.apache.org/viewvc?rev=817650&view=rev
Log:
SOLR-1447

Added:
    lucene/solr/trunk/src/test/org/apache/solr/core/TestPropInject.java
    lucene/solr/trunk/src/test/test-files/solr/conf/solrconfig-propinject.xml
Modified:
    lucene/solr/trunk/CHANGES.txt
    lucene/solr/trunk/example/solr/conf/solrconfig.xml
    lucene/solr/trunk/src/java/org/apache/solr/core/SolrConfig.java
    lucene/solr/trunk/src/java/org/apache/solr/core/SolrResourceLoader.java
    lucene/solr/trunk/src/java/org/apache/solr/update/SolrIndexConfig.java
    lucene/solr/trunk/src/java/org/apache/solr/update/SolrIndexWriter.java
    lucene/solr/trunk/src/java/org/apache/solr/util/SolrPluginUtils.java
    lucene/solr/trunk/src/test/org/apache/solr/core/TestConfig.java
    lucene/solr/trunk/src/test/test-files/solr/conf/solrconfig-SOLR-749.xml
    lucene/solr/trunk/src/test/test-files/solr/conf/solrconfig-altdirectory.xml
    lucene/solr/trunk/src/test/test-files/solr/conf/solrconfig-delpolicy1.xml
    lucene/solr/trunk/src/test/test-files/solr/conf/solrconfig-delpolicy2.xml
    lucene/solr/trunk/src/test/test-files/solr/conf/solrconfig-duh-optimize.xml
    lucene/solr/trunk/src/test/test-files/solr/conf/solrconfig-elevate.xml
    lucene/solr/trunk/src/test/test-files/solr/conf/solrconfig-facet-sort.xml
    lucene/solr/trunk/src/test/test-files/solr/conf/solrconfig-highlight.xml
    lucene/solr/trunk/src/test/test-files/solr/conf/solrconfig-master.xml
    lucene/solr/trunk/src/test/test-files/solr/conf/solrconfig-master1.xml
    lucene/solr/trunk/src/test/test-files/solr/conf/solrconfig-master2.xml
    lucene/solr/trunk/src/test/test-files/solr/conf/solrconfig-termindex.xml
    lucene/solr/trunk/src/test/test-files/solr/conf/solrconfig.xml
    lucene/solr/trunk/src/test/test-files/solr/conf/solrconfig_perf.xml

Modified: lucene/solr/trunk/CHANGES.txt
URL: http://svn.apache.org/viewvc/lucene/solr/trunk/CHANGES.txt?rev=817650&r1=817649&r2=817650&view=diff
==============================================================================
--- lucene/solr/trunk/CHANGES.txt (original)
+++ lucene/solr/trunk/CHANGES.txt Tue Sep 22 13:14:35 2009
@@ -317,6 +317,8 @@
 
 79. SOLR-1326 : New interface PluginInfoInitialized for all types of plugin (noble)
 
+80. SOLR-1447 : Simple property injection. <mergePolicy> & <mergeSceduler> syntaxes are deprecated ( Jason rutherglen noble)
+
 Optimizations
 ----------------------
  1. SOLR-374: Use IndexReader.reopen to save resources by re-using parts of the

Modified: lucene/solr/trunk/example/solr/conf/solrconfig.xml
URL: http://svn.apache.org/viewvc/lucene/solr/trunk/example/solr/conf/solrconfig.xml?rev=817650&r1=817649&r2=817650&view=diff
==============================================================================
--- lucene/solr/trunk/example/solr/conf/solrconfig.xml (original)
+++ lucene/solr/trunk/example/solr/conf/solrconfig.xml Tue Sep 22 13:14:35 2009
@@ -70,7 +70,7 @@
 
      Other implementations of MergePolicy must have a no-argument constructor
      -->
-    <!--<mergePolicy>org.apache.lucene.index.LogByteSizeMergePolicy</mergePolicy>-->
+    <!--<mergePolicy class="org.apache.lucene.index.LogByteSizeMergePolicy"/>-->
 
     <!--
      Expert:
@@ -79,7 +79,7 @@
      background using separate threads.  The SerialMergeScheduler (Lucene 2.2
      default) does not.
      -->
-    <!--<mergeScheduler>org.apache.lucene.index.ConcurrentMergeScheduler</mergeScheduler>-->
+    <!--<mergeScheduler class="org.apache.lucene.index.ConcurrentMergeScheduler"/>-->
 
     <!--  To aid in advanced debugging, you may turn on IndexWriter debug logging.
      Uncommenting this and setting to true will set the file that the underlying

Modified: lucene/solr/trunk/src/java/org/apache/solr/core/SolrConfig.java
URL: http://svn.apache.org/viewvc/lucene/solr/trunk/src/java/org/apache/solr/core/SolrConfig.java?rev=817650&r1=817649&r2=817650&view=diff
==============================================================================
--- lucene/solr/trunk/src/java/org/apache/solr/core/SolrConfig.java (original)
+++ lucene/solr/trunk/src/java/org/apache/solr/core/SolrConfig.java Tue Sep 22 13:14:35 2009
@@ -205,13 +205,18 @@
   }
 
   private void loadPluginInfo(Class clazz, String tag, boolean requireName, boolean requireClass) {
+    List<PluginInfo> result = readPluginInfos(tag, requireName, requireClass);
+    if(!result.isEmpty()) pluginStore.put(clazz.getName(),result);
+  }
+
+  public List<PluginInfo> readPluginInfos(String tag, boolean requireName, boolean requireClass) {
     ArrayList<PluginInfo> result = new ArrayList<PluginInfo>();
     NodeList nodes = (NodeList) evaluate(tag, XPathConstants.NODESET);
-     for (int i=0; i<nodes.getLength(); i++) {
-       PluginInfo pluginInfo = new PluginInfo(nodes.item(i), "[solrconfig.xml] " + tag, requireName, requireClass);
-       if(pluginInfo.isEnabled()) result.add(pluginInfo);
-     }
-    if(!result.isEmpty()) pluginStore.put(clazz.getName(),result);
+    for (int i=0; i<nodes.getLength(); i++) {
+      PluginInfo pluginInfo = new PluginInfo(nodes.item(i), "[solrconfig.xml] " + tag, requireName, requireClass);
+      if(pluginInfo.isEnabled()) result.add(pluginInfo);
+    }
+    return result;
   }
 
   /* The set of materialized parameters: */

Modified: lucene/solr/trunk/src/java/org/apache/solr/core/SolrResourceLoader.java
URL: http://svn.apache.org/viewvc/lucene/solr/trunk/src/java/org/apache/solr/core/SolrResourceLoader.java?rev=817650&r1=817649&r2=817650&view=diff
==============================================================================
--- lucene/solr/trunk/src/java/org/apache/solr/core/SolrResourceLoader.java (original)
+++ lucene/solr/trunk/src/java/org/apache/solr/core/SolrResourceLoader.java Tue Sep 22 13:14:35 2009
@@ -276,7 +276,7 @@
    * @return the loaded class. An exception is thrown if it fails
    */
   public Class findClass(String cname, String... subpackages) {
-    if (subpackages.length == 0 || subpackages == packages) {
+    if (subpackages == null || subpackages.length == 0 || subpackages == packages) {
       subpackages = packages;
       String  c = classNameCache.get(cname);
       if(c != null) {

Modified: lucene/solr/trunk/src/java/org/apache/solr/update/SolrIndexConfig.java
URL: http://svn.apache.org/viewvc/lucene/solr/trunk/src/java/org/apache/solr/update/SolrIndexConfig.java?rev=817650&r1=817649&r2=817650&view=diff
==============================================================================
--- lucene/solr/trunk/src/java/org/apache/solr/update/SolrIndexConfig.java (original)
+++ lucene/solr/trunk/src/java/org/apache/solr/update/SolrIndexConfig.java Tue Sep 22 13:14:35 2009
@@ -18,12 +18,17 @@
 package org.apache.solr.update;
 
 import org.apache.solr.core.SolrConfig;
+import org.apache.solr.core.PluginInfo;
 import org.apache.lucene.index.LogByteSizeMergePolicy;
 import org.apache.lucene.index.ConcurrentMergeScheduler;
 import org.apache.lucene.index.IndexWriter;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
+import java.util.List;
+import java.util.Map;
+import java.util.HashMap;
+
 //
 // For performance reasons, we don't want to re-read
 // config params each time an index writer is created.
@@ -51,10 +56,10 @@
     writeLockTimeout = -1;
     commitLockTimeout = -1;
     lockType = null;
-    mergePolicyClassName = DEFAULT_MERGE_POLICY_CLASSNAME;
-    mergeSchedulerClassname = DEFAULT_MERGE_SCHEDULER_CLASSNAME;
     luceneAutoCommit = false;
     termIndexInterval = IndexWriter.DEFAULT_TERM_INDEX_INTERVAL;
+    mergePolicyInfo = null;
+    mergeSchedulerInfo = null;
   }
   
   public final boolean useCompoundFile;
@@ -68,8 +73,8 @@
   public final int writeLockTimeout;
   public final int commitLockTimeout;
   public final String lockType;
-  public final String mergePolicyClassName;
-  public final String mergeSchedulerClassname;
+  public final PluginInfo mergePolicyInfo;
+  public final PluginInfo mergeSchedulerInfo;
   public final boolean luceneAutoCommit;
   public final int termIndexInterval;
   
@@ -90,8 +95,30 @@
     writeLockTimeout=solrConfig.getInt(prefix+"/writeLockTimeout", def.writeLockTimeout);
     commitLockTimeout=solrConfig.getInt(prefix+"/commitLockTimeout", def.commitLockTimeout);
     lockType=solrConfig.get(prefix+"/lockType", def.lockType);
-    mergePolicyClassName = solrConfig.get(prefix + "/mergePolicy", def.mergePolicyClassName);
-    mergeSchedulerClassname = solrConfig.get(prefix + "/mergeScheduler", def.mergeSchedulerClassname);
+
+    String str =  solrConfig.get(prefix+"/mergeScheduler/text()",null);
+    if(str != null && str.trim().length() >0){
+      //legacy handling <mergeScheduler>[classname]</mergeScheduler>
+      //remove in Solr2.0
+      log.warn("deprecated syntax : <mergeScheduler>[classname]</mergeScheduler>");
+      Map<String,String> atrs = new HashMap<String, String>();
+      atrs.put("class",str.trim());
+      mergeSchedulerInfo = new PluginInfo("mergeScheduler",atrs,null,null);
+    } else {
+      mergeSchedulerInfo = getPluginInfo(prefix + "/mergeScheduler", solrConfig);
+    }
+    str =  solrConfig.get(prefix+"/mergePolicy/text()",null);
+    if(str != null && str.trim().length() >0){
+      //legacy handling  <mergePolicy>[classname]</mergePolicy>
+      //remove in Solr2.0
+      log.warn("deprecated syntax : <mergePolicy>[classname]</mergePolicy>");
+      Map<String,String> atrs = new HashMap<String, String>();
+      atrs.put("class",str.trim());
+      mergePolicyInfo = new PluginInfo("mergePolicy",atrs,null,null);
+    } else {
+      mergePolicyInfo = getPluginInfo(prefix + "/mergePolicy", solrConfig);
+    }
+    
     luceneAutoCommit = solrConfig.getBool(prefix + "/luceneAutoCommit", def.luceneAutoCommit);
     termIndexInterval = solrConfig.getInt(prefix + "/termIndexInterval", def.termIndexInterval);
     
@@ -102,4 +129,9 @@
     }
 
   }
+
+  private PluginInfo getPluginInfo(String path, SolrConfig solrConfig){
+    List<PluginInfo> l = solrConfig.readPluginInfos(path, false, true);
+    return l.isEmpty() ? null : l.get(0);
+  }
 }

Modified: lucene/solr/trunk/src/java/org/apache/solr/update/SolrIndexWriter.java
URL: http://svn.apache.org/viewvc/lucene/solr/trunk/src/java/org/apache/solr/update/SolrIndexWriter.java?rev=817650&r1=817649&r2=817650&view=diff
==============================================================================
--- lucene/solr/trunk/src/java/org/apache/solr/update/SolrIndexWriter.java (original)
+++ lucene/solr/trunk/src/java/org/apache/solr/update/SolrIndexWriter.java Tue Sep 22 13:14:35 2009
@@ -23,7 +23,9 @@
 import org.apache.solr.common.util.NamedList;
 import org.apache.solr.core.DirectoryFactory;
 import org.apache.solr.core.StandardDirectoryFactory;
+import org.apache.solr.core.SolrCore;
 import org.apache.solr.schema.IndexSchema;
+import org.apache.solr.util.SolrPluginUtils;
 
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -75,20 +77,19 @@
       }
       if (config.maxMergeDocs != -1) setMaxMergeDocs(config.maxMergeDocs);
       if (config.maxFieldLength != -1) setMaxFieldLength(config.maxFieldLength);
-      if (config.mergePolicyClassName != null && SolrIndexConfig.DEFAULT_MERGE_POLICY_CLASSNAME.equals(config.mergePolicyClassName) == false) {
-        MergePolicy policy = null;
-
-        policy = (MergePolicy) schema.getResourceLoader().newInstance(config.mergePolicyClassName, new String[]{}, new Class[]{IndexWriter.class}, new Object[] { this });
-
-        setMergePolicy(policy);///hmm, is this really the best way to get a newInstance?
-      }
-      if (config.mergeFactor != -1 && getMergePolicy() instanceof LogMergePolicy) {
-        setMergeFactor(config.mergeFactor);
-      }
-      if (config.mergeSchedulerClassname != null && SolrIndexConfig.DEFAULT_MERGE_SCHEDULER_CLASSNAME.equals(config.mergeSchedulerClassname) == false) {
-        MergeScheduler scheduler = (MergeScheduler) schema.getResourceLoader().newInstance(config.mergeSchedulerClassname);
-        setMergeScheduler(scheduler);
-      }
+      String className = config.mergePolicyInfo == null ? SolrIndexConfig.DEFAULT_MERGE_POLICY_CLASSNAME: config.mergePolicyInfo.className;
+      MergePolicy  policy = null;
+      try {
+        policy = (MergePolicy) schema.getResourceLoader().newInstance(className, null, new Class[]{IndexWriter.class}, new Object[] { this });
+      } catch (Exception e) {
+        policy = (MergePolicy) schema.getResourceLoader().newInstance(className);
+      }
+      if(config.mergePolicyInfo != null) SolrPluginUtils.invokeSetters(policy,config.mergePolicyInfo.initArgs);
+      setMergePolicy(policy);
+      className = config.mergeSchedulerInfo == null ? SolrIndexConfig.DEFAULT_MERGE_SCHEDULER_CLASSNAME: config.mergeSchedulerInfo.className;
+      MergeScheduler scheduler = (MergeScheduler) schema.getResourceLoader().newInstance(className);
+      if(config.mergeSchedulerInfo != null) SolrPluginUtils.invokeSetters(scheduler,config.mergeSchedulerInfo.initArgs);
+      setMergeScheduler(scheduler);
 
       String infoStreamFile = config.infoStreamFile;
       if (infoStreamFile != null) {

Modified: lucene/solr/trunk/src/java/org/apache/solr/util/SolrPluginUtils.java
URL: http://svn.apache.org/viewvc/lucene/solr/trunk/src/java/org/apache/solr/util/SolrPluginUtils.java?rev=817650&r1=817649&r2=817650&view=diff
==============================================================================
--- lucene/solr/trunk/src/java/org/apache/solr/util/SolrPluginUtils.java (original)
+++ lucene/solr/trunk/src/java/org/apache/solr/util/SolrPluginUtils.java Tue Sep 22 13:14:35 2009
@@ -22,6 +22,7 @@
 import org.apache.lucene.queryParser.QueryParser;
 import org.apache.lucene.search.*;
 import org.apache.lucene.search.BooleanClause.Occur;
+import org.apache.lucene.index.LogByteSizeMergePolicy;
 import org.apache.solr.common.SolrDocument;
 import org.apache.solr.common.SolrDocumentList;
 import org.apache.solr.common.SolrException;
@@ -45,7 +46,9 @@
 import java.io.IOException;
 import java.util.*;
 import java.util.regex.Pattern;
-    
+import java.lang.reflect.Method;
+import java.lang.reflect.InvocationTargetException;
+
 /**
  * <p>Utilities that may be of use to RequestHandlers.</p>
  *
@@ -960,6 +963,36 @@
       vals.add( "response", docs );
     }
   }
+  
+  public static void invokeSetters(Object bean, NamedList initArgs) {
+    Class clazz = bean.getClass();
+    Method[] methods = clazz.getMethods();
+    Iterator<Map.Entry<String, Object>> iterator = initArgs.iterator();
+    while (iterator.hasNext()) {
+      Map.Entry<String, Object> entry = iterator.next();
+      String key = entry.getKey();
+      String setterName = "set" + String.valueOf(Character.toUpperCase(key.charAt(0))) + key.substring(1);
+      Method method = null;
+      try {
+        for (Method m : methods) {
+          if (m.getName().equals(setterName) && m.getParameterTypes().length == 1) { 
+            method = m;
+            break;
+          }
+        }
+        if (method == null) {
+          throw new RuntimeException("no setter corrresponding to '" + key + "' in " + clazz.getName());
+        }
+        Class pClazz = method.getParameterTypes()[0];
+        Object val = entry.getValue();
+        method.invoke(bean, val);
+      } catch (InvocationTargetException e1) {
+        throw new RuntimeException("Error invoking setter " + setterName + "on class : " + clazz.getName(), e1);
+      } catch (IllegalAccessException e1) {
+        throw new RuntimeException("Error invoking setter " + setterName + "on class : " + clazz.getName(), e1);
+      }
+    }
+  }
 }
 
 

Modified: lucene/solr/trunk/src/test/org/apache/solr/core/TestConfig.java
URL: http://svn.apache.org/viewvc/lucene/solr/trunk/src/test/org/apache/solr/core/TestConfig.java?rev=817650&r1=817649&r2=817650&view=diff
==============================================================================
--- lucene/solr/trunk/src/test/org/apache/solr/core/TestConfig.java (original)
+++ lucene/solr/trunk/src/test/org/apache/solr/core/TestConfig.java Tue Sep 22 13:14:35 2009
@@ -68,9 +68,9 @@
   public void testLucene23Upgrades() throws Exception {
     double bufferSize = solrConfig.getDouble("indexDefaults/ramBufferSizeMB");
     assertTrue(bufferSize + " does not equal: " + 32, bufferSize == 32);
-    String mergePolicy = solrConfig.get("indexDefaults/mergePolicy");
+    String mergePolicy = solrConfig.get("indexDefaults/mergePolicy/@class");
     assertTrue(mergePolicy + " is not equal to " + SolrIndexConfig.DEFAULT_MERGE_POLICY_CLASSNAME, mergePolicy.equals(SolrIndexConfig.DEFAULT_MERGE_POLICY_CLASSNAME) == true);
-    String mergeSched = solrConfig.get("indexDefaults/mergeScheduler");
+    String mergeSched = solrConfig.get("indexDefaults/mergeScheduler/@class");
     assertTrue(mergeSched + " is not equal to " + SolrIndexConfig.DEFAULT_MERGE_SCHEDULER_CLASSNAME, mergeSched.equals(SolrIndexConfig.DEFAULT_MERGE_SCHEDULER_CLASSNAME) == true);
     boolean luceneAutoCommit = solrConfig.getBool("indexDefaults/luceneAutoCommit");
     assertTrue(luceneAutoCommit + " does not equal: " + false, luceneAutoCommit == false);

Added: lucene/solr/trunk/src/test/org/apache/solr/core/TestPropInject.java
URL: http://svn.apache.org/viewvc/lucene/solr/trunk/src/test/org/apache/solr/core/TestPropInject.java?rev=817650&view=auto
==============================================================================
--- lucene/solr/trunk/src/test/org/apache/solr/core/TestPropInject.java (added)
+++ lucene/solr/trunk/src/test/org/apache/solr/core/TestPropInject.java Tue Sep 22 13:14:35 2009
@@ -0,0 +1,42 @@
+package org.apache.solr.core;
+
+import java.io.IOException;
+
+import org.apache.lucene.index.ConcurrentMergeScheduler;
+import org.apache.lucene.index.IndexWriter;
+import org.apache.lucene.index.LogByteSizeMergePolicy;
+import org.apache.solr.update.DirectUpdateHandler2;
+import org.apache.solr.util.AbstractSolrTestCase;
+
+public class TestPropInject extends AbstractSolrTestCase {
+  public String getSchemaFile() {
+    return "schema.xml";
+  }
+
+  public String getSolrConfigFile() {
+    return "solrconfig-propinject.xml";
+  }
+  
+  class ExposeWriterHandler extends DirectUpdateHandler2 {
+    public ExposeWriterHandler() throws IOException {
+      super(h.getCore());
+    }
+
+    public IndexWriter getWriter() throws IOException {
+      forceOpenWriter();
+      return writer;
+    }
+  }
+  
+  public void testMergePolicy() throws Exception {
+    IndexWriter writer = new ExposeWriterHandler().getWriter();
+    LogByteSizeMergePolicy mp = (LogByteSizeMergePolicy)writer.getMergePolicy();
+    assertEquals(64.0, mp.getMaxMergeMB());
+  }
+  
+  public void testProps() throws Exception {
+    IndexWriter writer = new ExposeWriterHandler().getWriter();
+    ConcurrentMergeScheduler cms = (ConcurrentMergeScheduler)writer.getMergeScheduler();
+    assertEquals(2, cms.getMaxThreadCount());
+  }
+}

Modified: lucene/solr/trunk/src/test/test-files/solr/conf/solrconfig-SOLR-749.xml
URL: http://svn.apache.org/viewvc/lucene/solr/trunk/src/test/test-files/solr/conf/solrconfig-SOLR-749.xml?rev=817650&r1=817649&r2=817650&view=diff
==============================================================================
--- lucene/solr/trunk/src/test/test-files/solr/conf/solrconfig-SOLR-749.xml (original)
+++ lucene/solr/trunk/src/test/test-files/solr/conf/solrconfig-SOLR-749.xml Tue Sep 22 13:14:35 2009
@@ -70,14 +70,14 @@
 
      Other implementations of MergePolicy must have a no-argument constructor
      -->
-    <mergePolicy>org.apache.lucene.index.LogByteSizeMergePolicy</mergePolicy>
+    <mergePolicy class="org.apache.lucene.index.LogByteSizeMergePolicy"/>
 
     <!--
      Expert:
      The Merge Scheduler in Lucene controls how merges are performed.  The ConcurrentMergeScheduler (Lucene 2.3 default)
       can perform merges in the background using separate threads.  The SerialMergeScheduler (Lucene 2.2 default) does not.
      -->
-    <mergeScheduler>org.apache.lucene.index.ConcurrentMergeScheduler</mergeScheduler>
+    <mergeScheduler class="org.apache.lucene.index.ConcurrentMergeScheduler"/>
     <!-- these are global... can't currently override per index -->
     <writeLockTimeout>1000</writeLockTimeout>
     <commitLockTimeout>10000</commitLockTimeout>

Modified: lucene/solr/trunk/src/test/test-files/solr/conf/solrconfig-altdirectory.xml
URL: http://svn.apache.org/viewvc/lucene/solr/trunk/src/test/test-files/solr/conf/solrconfig-altdirectory.xml?rev=817650&r1=817649&r2=817650&view=diff
==============================================================================
--- lucene/solr/trunk/src/test/test-files/solr/conf/solrconfig-altdirectory.xml (original)
+++ lucene/solr/trunk/src/test/test-files/solr/conf/solrconfig-altdirectory.xml Tue Sep 22 13:14:35 2009
@@ -70,14 +70,14 @@
 
      Other implementations of MergePolicy must have a no-argument constructor
      -->
-    <mergePolicy>org.apache.lucene.index.LogByteSizeMergePolicy</mergePolicy>
+    <mergePolicy class="org.apache.lucene.index.LogByteSizeMergePolicy"/>
 
     <!--
      Expert:
      The Merge Scheduler in Lucene controls how merges are performed.  The ConcurrentMergeScheduler (Lucene 2.3 default)
       can perform merges in the background using separate threads.  The SerialMergeScheduler (Lucene 2.2 default) does not.
      -->
-    <mergeScheduler>org.apache.lucene.index.ConcurrentMergeScheduler</mergeScheduler>
+    <mergeScheduler class="org.apache.lucene.index.ConcurrentMergeScheduler"/>
     <!-- these are global... can't currently override per index -->
     <writeLockTimeout>1000</writeLockTimeout>
     <commitLockTimeout>10000</commitLockTimeout>

Modified: lucene/solr/trunk/src/test/test-files/solr/conf/solrconfig-delpolicy1.xml
URL: http://svn.apache.org/viewvc/lucene/solr/trunk/src/test/test-files/solr/conf/solrconfig-delpolicy1.xml?rev=817650&r1=817649&r2=817650&view=diff
==============================================================================
--- lucene/solr/trunk/src/test/test-files/solr/conf/solrconfig-delpolicy1.xml (original)
+++ lucene/solr/trunk/src/test/test-files/solr/conf/solrconfig-delpolicy1.xml Tue Sep 22 13:14:35 2009
@@ -70,14 +70,14 @@
 
      Other implementations of MergePolicy must have a no-argument constructor
      -->
-    <mergePolicy>org.apache.lucene.index.LogByteSizeMergePolicy</mergePolicy>
+    <mergePolicy class="org.apache.lucene.index.LogByteSizeMergePolicy"/>
 
     <!--
      Expert:
      The Merge Scheduler in Lucene controls how merges are performed.  The ConcurrentMergeScheduler (Lucene 2.3 default)
       can perform merges in the background using separate threads.  The SerialMergeScheduler (Lucene 2.2 default) does not.
      -->
-    <mergeScheduler>org.apache.lucene.index.ConcurrentMergeScheduler</mergeScheduler>
+    <mergeScheduler class="org.apache.lucene.index.ConcurrentMergeScheduler"/>
     <!-- these are global... can't currently override per index -->
     <writeLockTimeout>1000</writeLockTimeout>
     <commitLockTimeout>10000</commitLockTimeout>

Modified: lucene/solr/trunk/src/test/test-files/solr/conf/solrconfig-delpolicy2.xml
URL: http://svn.apache.org/viewvc/lucene/solr/trunk/src/test/test-files/solr/conf/solrconfig-delpolicy2.xml?rev=817650&r1=817649&r2=817650&view=diff
==============================================================================
--- lucene/solr/trunk/src/test/test-files/solr/conf/solrconfig-delpolicy2.xml (original)
+++ lucene/solr/trunk/src/test/test-files/solr/conf/solrconfig-delpolicy2.xml Tue Sep 22 13:14:35 2009
@@ -70,14 +70,14 @@
 
      Other implementations of MergePolicy must have a no-argument constructor
      -->
-    <mergePolicy>org.apache.lucene.index.LogByteSizeMergePolicy</mergePolicy>
+    <mergePolicy class="org.apache.lucene.index.LogByteSizeMergePolicy"/>
 
     <!--
      Expert:
      The Merge Scheduler in Lucene controls how merges are performed.  The ConcurrentMergeScheduler (Lucene 2.3 default)
       can perform merges in the background using separate threads.  The SerialMergeScheduler (Lucene 2.2 default) does not.
      -->
-    <mergeScheduler>org.apache.lucene.index.ConcurrentMergeScheduler</mergeScheduler>
+    <mergeScheduler class="org.apache.lucene.index.ConcurrentMergeScheduler"/>
     <!-- these are global... can't currently override per index -->
     <writeLockTimeout>1000</writeLockTimeout>
     <commitLockTimeout>10000</commitLockTimeout>

Modified: lucene/solr/trunk/src/test/test-files/solr/conf/solrconfig-duh-optimize.xml
URL: http://svn.apache.org/viewvc/lucene/solr/trunk/src/test/test-files/solr/conf/solrconfig-duh-optimize.xml?rev=817650&r1=817649&r2=817650&view=diff
==============================================================================
--- lucene/solr/trunk/src/test/test-files/solr/conf/solrconfig-duh-optimize.xml (original)
+++ lucene/solr/trunk/src/test/test-files/solr/conf/solrconfig-duh-optimize.xml Tue Sep 22 13:14:35 2009
@@ -70,14 +70,14 @@
 
      Other implementations of MergePolicy must have a no-argument constructor
      -->
-    <mergePolicy>org.apache.lucene.index.LogByteSizeMergePolicy</mergePolicy>
+    <mergePolicy class="org.apache.lucene.index.LogByteSizeMergePolicy"/>
 
     <!--
      Expert:
      The Merge Scheduler in Lucene controls how merges are performed.  The ConcurrentMergeScheduler (Lucene 2.3 default)
       can perform merges in the background using separate threads.  The SerialMergeScheduler (Lucene 2.2 default) does not.
      -->
-    <mergeScheduler>org.apache.lucene.index.ConcurrentMergeScheduler</mergeScheduler>
+    <mergeScheduler class="org.apache.lucene.index.ConcurrentMergeScheduler"/>
     <!-- these are global... can't currently override per index -->
     <writeLockTimeout>1000</writeLockTimeout>
     <commitLockTimeout>10000</commitLockTimeout>

Modified: lucene/solr/trunk/src/test/test-files/solr/conf/solrconfig-elevate.xml
URL: http://svn.apache.org/viewvc/lucene/solr/trunk/src/test/test-files/solr/conf/solrconfig-elevate.xml?rev=817650&r1=817649&r2=817650&view=diff
==============================================================================
--- lucene/solr/trunk/src/test/test-files/solr/conf/solrconfig-elevate.xml (original)
+++ lucene/solr/trunk/src/test/test-files/solr/conf/solrconfig-elevate.xml Tue Sep 22 13:14:35 2009
@@ -70,14 +70,14 @@
 
      Other implementations of MergePolicy must have a no-argument constructor
      -->
-    <mergePolicy>org.apache.lucene.index.LogByteSizeMergePolicy</mergePolicy>
+    <mergePolicy class="org.apache.lucene.index.LogByteSizeMergePolicy"/>
 
     <!--
      Expert:
      The Merge Scheduler in Lucene controls how merges are performed.  The ConcurrentMergeScheduler (Lucene 2.3 default)
       can perform merges in the background using separate threads.  The SerialMergeScheduler (Lucene 2.2 default) does not.
      -->
-    <mergeScheduler>org.apache.lucene.index.ConcurrentMergeScheduler</mergeScheduler>
+    <mergeScheduler class="org.apache.lucene.index.ConcurrentMergeScheduler"/>
     <!-- these are global... can't currently override per index -->
     <writeLockTimeout>1000</writeLockTimeout>
     <commitLockTimeout>10000</commitLockTimeout>
@@ -95,7 +95,7 @@
     <maxBufferedDocs>10</maxBufferedDocs>
     <maxMergeDocs>2147483647</maxMergeDocs>
     <maxFieldLength>10000</maxFieldLength>
-    <mergePolicy>org.apache.lucene.index.LogDocMergePolicy</mergePolicy>
+    <mergePolicy class="org.apache.lucene.index.LogDocMergePolicy"/>
 
     <unlockOnStartup>true</unlockOnStartup>
   </mainIndex>

Modified: lucene/solr/trunk/src/test/test-files/solr/conf/solrconfig-facet-sort.xml
URL: http://svn.apache.org/viewvc/lucene/solr/trunk/src/test/test-files/solr/conf/solrconfig-facet-sort.xml?rev=817650&r1=817649&r2=817650&view=diff
==============================================================================
--- lucene/solr/trunk/src/test/test-files/solr/conf/solrconfig-facet-sort.xml (original)
+++ lucene/solr/trunk/src/test/test-files/solr/conf/solrconfig-facet-sort.xml Tue Sep 22 13:14:35 2009
@@ -70,14 +70,14 @@
 
      Other implementations of MergePolicy must have a no-argument constructor
      -->
-    <mergePolicy>org.apache.lucene.index.LogByteSizeMergePolicy</mergePolicy>
+    <mergePolicy class="org.apache.lucene.index.LogByteSizeMergePolicy"/>
 
     <!--
      Expert:
      The Merge Scheduler in Lucene controls how merges are performed.  The ConcurrentMergeScheduler (Lucene 2.3 default)
       can perform merges in the background using separate threads.  The SerialMergeScheduler (Lucene 2.2 default) does not.
      -->
-    <mergeScheduler>org.apache.lucene.index.ConcurrentMergeScheduler</mergeScheduler>
+    <mergeScheduler class="org.apache.lucene.index.ConcurrentMergeScheduler"/>
     <!-- these are global... can't currently override per index -->
     <writeLockTimeout>1000</writeLockTimeout>
     <commitLockTimeout>10000</commitLockTimeout>

Modified: lucene/solr/trunk/src/test/test-files/solr/conf/solrconfig-highlight.xml
URL: http://svn.apache.org/viewvc/lucene/solr/trunk/src/test/test-files/solr/conf/solrconfig-highlight.xml?rev=817650&r1=817649&r2=817650&view=diff
==============================================================================
--- lucene/solr/trunk/src/test/test-files/solr/conf/solrconfig-highlight.xml (original)
+++ lucene/solr/trunk/src/test/test-files/solr/conf/solrconfig-highlight.xml Tue Sep 22 13:14:35 2009
@@ -68,14 +68,14 @@
 
      Other implementations of MergePolicy must have a no-argument constructor
      -->
-    <mergePolicy>org.apache.lucene.index.LogByteSizeMergePolicy</mergePolicy>
+    <mergePolicy class="org.apache.lucene.index.LogByteSizeMergePolicy"/>
 
     <!--
      Expert:
      The Merge Scheduler in Lucene controls how merges are performed.  The ConcurrentMergeScheduler (Lucene 2.3 default)
       can perform merges in the background using separate threads.  The SerialMergeScheduler (Lucene 2.2 default) does not.
      -->
-    <mergeScheduler>org.apache.lucene.index.ConcurrentMergeScheduler</mergeScheduler>
+    <mergeScheduler class="org.apache.lucene.index.ConcurrentMergeScheduler"/>
     <!-- these are global... can't currently override per index -->
     <writeLockTimeout>1000</writeLockTimeout>
     <commitLockTimeout>10000</commitLockTimeout>

Modified: lucene/solr/trunk/src/test/test-files/solr/conf/solrconfig-master.xml
URL: http://svn.apache.org/viewvc/lucene/solr/trunk/src/test/test-files/solr/conf/solrconfig-master.xml?rev=817650&r1=817649&r2=817650&view=diff
==============================================================================
--- lucene/solr/trunk/src/test/test-files/solr/conf/solrconfig-master.xml (original)
+++ lucene/solr/trunk/src/test/test-files/solr/conf/solrconfig-master.xml Tue Sep 22 13:14:35 2009
@@ -36,7 +36,7 @@
     <commitLockTimeout>10000</commitLockTimeout>
     <luceneAutoCommit>false</luceneAutoCommit>
 
-    <mergeScheduler>org.apache.lucene.index.ConcurrentMergeScheduler</mergeScheduler>
+    <mergeScheduler class="org.apache.lucene.index.ConcurrentMergeScheduler"/>
     <writeLockTimeout>1000</writeLockTimeout>
     <commitLockTimeout>10000</commitLockTimeout>
 
@@ -95,4 +95,4 @@
     </httpCaching>
   </requestDispatcher>
 
-</config>
\ No newline at end of file
+</config>

Modified: lucene/solr/trunk/src/test/test-files/solr/conf/solrconfig-master1.xml
URL: http://svn.apache.org/viewvc/lucene/solr/trunk/src/test/test-files/solr/conf/solrconfig-master1.xml?rev=817650&r1=817649&r2=817650&view=diff
==============================================================================
--- lucene/solr/trunk/src/test/test-files/solr/conf/solrconfig-master1.xml (original)
+++ lucene/solr/trunk/src/test/test-files/solr/conf/solrconfig-master1.xml Tue Sep 22 13:14:35 2009
@@ -36,7 +36,7 @@
     <commitLockTimeout>10000</commitLockTimeout>
     <luceneAutoCommit>false</luceneAutoCommit>
 
-    <mergeScheduler>org.apache.lucene.index.ConcurrentMergeScheduler</mergeScheduler>
+    <mergeScheduler class="org.apache.lucene.index.ConcurrentMergeScheduler"/>
     <writeLockTimeout>1000</writeLockTimeout>
     <commitLockTimeout>10000</commitLockTimeout>
 

Modified: lucene/solr/trunk/src/test/test-files/solr/conf/solrconfig-master2.xml
URL: http://svn.apache.org/viewvc/lucene/solr/trunk/src/test/test-files/solr/conf/solrconfig-master2.xml?rev=817650&r1=817649&r2=817650&view=diff
==============================================================================
--- lucene/solr/trunk/src/test/test-files/solr/conf/solrconfig-master2.xml (original)
+++ lucene/solr/trunk/src/test/test-files/solr/conf/solrconfig-master2.xml Tue Sep 22 13:14:35 2009
@@ -36,7 +36,7 @@
     <commitLockTimeout>10000</commitLockTimeout>
     <luceneAutoCommit>false</luceneAutoCommit>
 
-    <mergeScheduler>org.apache.lucene.index.ConcurrentMergeScheduler</mergeScheduler>
+    <mergeScheduler class="org.apache.lucene.index.ConcurrentMergeScheduler"/>
     <writeLockTimeout>1000</writeLockTimeout>
     <commitLockTimeout>10000</commitLockTimeout>
 

Added: lucene/solr/trunk/src/test/test-files/solr/conf/solrconfig-propinject.xml
URL: http://svn.apache.org/viewvc/lucene/solr/trunk/src/test/test-files/solr/conf/solrconfig-propinject.xml?rev=817650&view=auto
==============================================================================
--- lucene/solr/trunk/src/test/test-files/solr/conf/solrconfig-propinject.xml (added)
+++ lucene/solr/trunk/src/test/test-files/solr/conf/solrconfig-propinject.xml Tue Sep 22 13:14:35 2009
@@ -0,0 +1,463 @@
+<?xml version="1.0" ?>
+
+<!--
+ 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.
+-->
+
+<!-- $Id: solrconfig.xml 382610 2006-03-03 01:43:03Z yonik $
+     $Source$
+     $Name$
+
+
+
+     This is a "kitchen sink" config file that tests can use.
+     When writting a new test, feel free to add *new* items (plugins,
+     config options, etc...) as long as they don't break any existing
+     tests.  if you need to test something esoteric please add a new
+     "solrconfig-your-esoteric-purpose.xml" config file.
+
+     Note in particular that this test is used by MinimalSchemaTest so 
+     Anything added to this file needs to work correctly even if there
+     is now uniqueKey or defaultSearch Field.
+
+
+  -->
+
+<config>
+
+  <jmx />
+
+  <!-- Used to specify an alternate directory to hold all index data.
+       It defaults to "index" if not present, and should probably
+       not be changed if replication is in use. -->
+  <dataDir>${solr.data.dir:./solr/data}</dataDir>
+
+  <indexDefaults>
+   <!-- Values here affect all index writers and act as a default
+   unless overridden. -->
+    <!-- Values here affect all index writers and act as a default unless overridden. -->
+    <useCompoundFile>false</useCompoundFile>
+    <mergeFactor>10</mergeFactor>
+    <!-- If both ramBufferSizeMB and maxBufferedDocs is set, then Lucene will flush based on whichever limit is hit first.
+     -->
+    <!--<maxBufferedDocs>1000</maxBufferedDocs>-->
+    <!-- Tell Lucene when to flush documents to disk.
+    Giving Lucene more memory for indexing means faster indexing at the cost of more RAM
+
+    If both ramBufferSizeMB and maxBufferedDocs is set, then Lucene will flush based on whichever limit is hit first.
+
+    -->
+    <ramBufferSizeMB>32</ramBufferSizeMB>
+    <maxMergeDocs>2147483647</maxMergeDocs>
+    <maxFieldLength>10000</maxFieldLength>
+    <writeLockTimeout>1000</writeLockTimeout>
+    <commitLockTimeout>10000</commitLockTimeout>
+
+    <!-- 
+     Expert: Turn on Lucene's auto commit capability.
+
+     NOTE: Despite the name, this value does not have any relation to Solr's autoCommit functionality
+
+     -->
+    <luceneAutoCommit>false</luceneAutoCommit>
+
+    <!--
+     Expert:
+     The Merge Policy in Lucene controls how merging is handled by Lucene.  The default in 2.3 is the LogByteSizeMergePolicy, previous
+     versions used LogDocMergePolicy.
+
+     LogByteSizeMergePolicy chooses segments to merge based on their size.  The Lucene 2.2 default, LogDocMergePolicy chose when
+     to merge based on number of documents
+
+     Other implementations of MergePolicy must have a no-argument constructor
+     -->
+    <mergePolicy class="org.apache.lucene.index.LogByteSizeMergePolicy">
+      <double name="maxMergeMB">64.0</double>
+    </mergePolicy>
+
+    <!--
+     Expert:
+     The Merge Scheduler in Lucene controls how merges are performed.  The ConcurrentMergeScheduler (Lucene 2.3 default)
+      can perform merges in the background using separate threads.  The SerialMergeScheduler (Lucene 2.2 default) does not.
+     -->
+    <mergeScheduler class="org.apache.lucene.index.ConcurrentMergeScheduler">
+      <int name="maxThreadCount">2</int>
+    </mergeScheduler>
+    <!-- these are global... can't currently override per index -->
+    <writeLockTimeout>1000</writeLockTimeout>
+    <commitLockTimeout>10000</commitLockTimeout>
+
+    <lockType>single</lockType>
+  </indexDefaults>
+
+  <mainIndex>
+    <!-- lucene options specific to the main on-disk lucene index -->
+    <useCompoundFile>false</useCompoundFile>
+    <mergeFactor>10</mergeFactor>
+    <!-- for better multi-segment testing, we are using slower
+    indexing properties of maxBufferedDocs=10 and LogDocMergePolicy.
+    -->
+    <maxBufferedDocs>10</maxBufferedDocs>
+    <maxMergeDocs>2147483647</maxMergeDocs>
+    <maxFieldLength>10000</maxFieldLength>
+    
+    <mergePolicy class="org.apache.lucene.index.LogByteSizeMergePolicy">
+      <double name="maxMergeMB">64.0</double>
+    </mergePolicy>
+    
+    <mergeScheduler class="org.apache.lucene.index.ConcurrentMergeScheduler">
+      <int name="maxThreadCount">2</int>
+    </mergeScheduler>
+    <unlockOnStartup>true</unlockOnStartup>
+  </mainIndex>
+
+  <updateHandler class="solr.DirectUpdateHandler2">
+
+    <!-- autocommit pending docs if certain criteria are met 
+    <autoCommit> 
+      <maxDocs>10000</maxDocs>
+      <maxTime>3600000</maxTime> 
+    </autoCommit>
+    -->
+    <!-- represents a lower bound on the frequency that commits may
+    occur (in seconds). NOTE: not yet implemented
+    
+    <commitIntervalLowerBound>0</commitIntervalLowerBound>
+    -->
+
+    <!-- The RunExecutableListener executes an external command.
+         exe - the name of the executable to run
+         dir - dir to use as the current working directory. default="."
+         wait - the calling thread waits until the executable returns. default="true"
+         args - the arguments to pass to the program.  default=nothing
+         env - environment variables to set.  default=nothing
+      -->
+    <!-- A postCommit event is fired after every commit
+    <listener event="postCommit" class="solr.RunExecutableListener">
+      <str name="exe">/var/opt/resin3/__PORT__/scripts/solr/snapshooter</str>
+      <str name="dir">/var/opt/resin3/__PORT__</str>
+      <bool name="wait">true</bool>
+      <arr name="args"> <str>arg1</str> <str>arg2</str> </arr>
+      <arr name="env"> <str>MYVAR=val1</str> </arr>
+    </listener>
+    -->
+
+
+  </updateHandler>
+
+
+  <query>
+    <!-- Maximum number of clauses in a boolean query... can affect
+        range or wildcard queries that expand to big boolean
+        queries.  An exception is thrown if exceeded.
+    -->
+    <maxBooleanClauses>1024</maxBooleanClauses>
+
+
+    <!-- Cache specification for Filters or DocSets - unordered set of *all* documents
+         that match a particular query.
+      -->
+    <filterCache
+      class="solr.search.FastLRUCache"
+      size="512"
+      initialSize="512"
+      autowarmCount="256"/>
+
+    <queryResultCache
+      class="solr.search.LRUCache"
+      size="512"
+      initialSize="512"
+      autowarmCount="1024"/>
+
+    <documentCache
+      class="solr.search.LRUCache"
+      size="512"
+      initialSize="512"
+      autowarmCount="0"/>
+
+    <!-- If true, stored fields that are not requested will be loaded lazily.
+    -->
+    <enableLazyFieldLoading>true</enableLazyFieldLoading>
+
+    <!--
+
+    <cache name="myUserCache"
+      class="solr.search.LRUCache"
+      size="4096"
+      initialSize="1024"
+      autowarmCount="1024"
+      regenerator="MyRegenerator"
+      />
+    -->
+
+
+    <!--
+    <useFilterForSortedQuery>true</useFilterForSortedQuery>
+    -->
+
+    <queryResultWindowSize>10</queryResultWindowSize>
+
+    <!-- set maxSize artificially low to exercise both types of sets -->
+    <HashDocSet maxSize="3" loadFactor="0.75"/>
+
+
+    <!-- boolToFilterOptimizer converts boolean clauses with zero boost
+         into cached filters if the number of docs selected by the clause exceeds
+         the threshold (represented as a fraction of the total index)
+    -->
+    <boolTofilterOptimizer enabled="false" cacheSize="32" threshold=".05"/>
+
+
+    <!-- a newSearcher event is fired whenever a new searcher is being prepared
+         and there is a current searcher handling requests (aka registered). -->
+    <!-- QuerySenderListener takes an array of NamedList and executes a
+         local query request for each NamedList in sequence. -->
+    <!--
+    <listener event="newSearcher" class="solr.QuerySenderListener">
+      <arr name="queries">
+        <lst> <str name="q">solr</str> <str name="start">0</str> <str name="rows">10</str> </lst>
+        <lst> <str name="q">rocks</str> <str name="start">0</str> <str name="rows">10</str> </lst>
+      </arr>
+    </listener>
+    -->
+
+    <!-- a firstSearcher event is fired whenever a new searcher is being
+         prepared but there is no current registered searcher to handle
+         requests or to gain prewarming data from. -->
+    <!--
+    <listener event="firstSearcher" class="solr.QuerySenderListener">
+      <arr name="queries">
+        <lst> <str name="q">fast_warm</str> <str name="start">0</str> <str name="rows">10</str> </lst>
+      </arr>
+    </listener>
+    -->
+
+
+  </query>
+
+
+  <!-- An alternate set representation that uses an integer hash to store filters (sets of docids).
+       If the set cardinality <= maxSize elements, then HashDocSet will be used instead of the bitset
+       based HashBitset. -->
+
+  <!-- requestHandler plugins... incoming queries will be dispatched to the
+     correct handler based on the qt (query type) param matching the
+     name of registered handlers.
+      The "standard" request handler is the default and will be used if qt
+     is not specified in the request.
+  -->
+  <requestHandler name="standard" class="solr.StandardRequestHandler">
+  	<bool name="httpCaching">true</bool>
+  </requestHandler>
+  <requestHandler name="dismaxOldStyleDefaults"
+                  class="solr.DisMaxRequestHandler" >
+     <!-- for historic reasons, DisMaxRequestHandler will use all of
+          it's init params as "defaults" if there is no "defaults" list
+          specified
+     -->
+     <str name="q.alt">*:*</str>
+     <float name="tie">0.01</float>
+     <str name="qf">
+        text^0.5 features_t^1.0 subject^1.4 title_stemmed^2.0
+     </str>
+     <str name="pf">
+        text^0.2 features_t^1.1 subject^1.4 title_stemmed^2.0 title^1.5
+     </str>
+     <str name="bf">
+        ord(weight)^0.5 recip(rord(iind),1,1000,1000)^0.3
+     </str>
+     <str name="mm">
+        3&lt;-1 5&lt;-2 6&lt;90%
+     </str>
+     <int name="ps">100</int>
+  </requestHandler>
+  <requestHandler name="dismax" class="solr.DisMaxRequestHandler" >
+    <lst name="defaults">
+     <str name="q.alt">*:*</str>
+     <float name="tie">0.01</float>
+     <str name="qf">
+        text^0.5 features_t^1.0 subject^1.4 title_stemmed^2.0
+     </str>
+     <str name="pf">
+        text^0.2 features_t^1.1 subject^1.4 title_stemmed^2.0 title^1.5
+     </str>
+     <str name="bf">
+        ord(weight)^0.5 recip(rord(iind),1,1000,1000)^0.3
+     </str>
+     <str name="mm">
+        3&lt;-1 5&lt;-2 6&lt;90%
+     </str>
+     <int name="ps">100</int>
+    </lst>
+  </requestHandler>
+  <requestHandler name="old" class="solr.tst.OldRequestHandler" >
+    <int name="myparam">1000</int>
+    <float name="ratio">1.4142135</float>
+    <arr name="myarr"><int>1</int><int>2</int></arr>
+    <str>foo</str>
+  </requestHandler>
+  <requestHandler name="oldagain" class="solr.tst.OldRequestHandler" >
+    <lst name="lst1"> <str name="op">sqrt</str> <int name="val">2</int> </lst>
+    <lst name="lst2"> <str name="op">log</str> <float name="val">10</float> </lst>
+  </requestHandler>
+
+  <requestHandler name="/admin/" class="org.apache.solr.handler.admin.AdminHandlers" />
+
+  <requestHandler name="test" class="solr.tst.TestRequestHandler" />
+
+  <!-- test query parameter defaults -->
+  <requestHandler name="defaults" class="solr.StandardRequestHandler">
+    <lst name="defaults">
+      <int name="rows">4</int>
+      <bool name="hl">true</bool>
+      <str name="hl.fl">text,name,subject,title,whitetok</str>
+    </lst>
+  </requestHandler>
+
+  <!-- test query parameter defaults -->
+  <requestHandler name="lazy" class="solr.StandardRequestHandler" startup="lazy">
+    <lst name="defaults">
+      <int name="rows">4</int>
+      <bool name="hl">true</bool>
+      <str name="hl.fl">text,name,subject,title,whitetok</str>
+    </lst>
+  </requestHandler>
+
+  <requestHandler name="/update"     class="solr.XmlUpdateRequestHandler"          />
+  <requestHandler name="/update/csv" class="solr.CSVRequestHandler" startup="lazy">
+  	<bool name="httpCaching">false</bool>
+  </requestHandler>
+
+  <searchComponent name="spellcheck" class="org.apache.solr.handler.component.SpellCheckComponent">
+    <str name="queryAnalyzerFieldType">lowerfilt</str>
+
+    <lst name="spellchecker">
+      <str name="name">default</str>
+      <str name="field">lowerfilt</str>
+      <str name="spellcheckIndexDir">spellchecker1</str>
+      <str name="buildOnCommit">true</str>
+    </lst>
+    <!-- Example of using different distance measure -->
+    <lst name="spellchecker">
+      <str name="name">jarowinkler</str>
+      <str name="field">lowerfilt</str>
+      <!-- Use a different Distance Measure -->
+      <str name="distanceMeasure">org.apache.lucene.search.spell.JaroWinklerDistance</str>
+      <str name="spellcheckIndexDir">spellchecker2</str>
+
+    </lst>
+    <lst name="spellchecker">
+      <str name="classname">solr.FileBasedSpellChecker</str>
+      <str name="name">external</str>
+      <str name="sourceLocation">spellings.txt</str>
+      <str name="characterEncoding">UTF-8</str>
+      <str name="spellcheckIndexDir">spellchecker3</str>
+    </lst>
+  </searchComponent>
+
+  <searchComponent name="termsComp" class="org.apache.solr.handler.component.TermsComponent"/>
+
+  <requestHandler name="/terms" class="org.apache.solr.handler.component.SearchHandler">
+    <arr name="components">
+      <str>termsComp</str>
+    </arr>
+  </requestHandler>
+  <!--
+  The SpellingQueryConverter to convert raw (CommonParams.Q) queries into tokens.  Uses a simple regular expression
+   to strip off field markup, boosts, ranges, etc. but it is not guaranteed to match an exact parse from the query parser.
+   -->
+  <queryConverter name="queryConverter" class="org.apache.solr.spelling.SpellingQueryConverter"/>
+
+  <requestHandler name="spellCheckCompRH" class="org.apache.solr.handler.component.SearchHandler">
+    <lst name="defaults">
+      <!-- omp = Only More Popular -->
+      <str name="spellcheck.onlyMorePopular">false</str>
+      <!-- exr = Extended Results -->
+      <str name="spellcheck.extendedResults">false</str>
+      <!--  The number of suggestions to return -->
+      <str name="spellcheck.count">1</str>
+    </lst>
+    <arr name="last-components">
+      <str>spellcheck</str>
+    </arr>
+  </requestHandler>
+
+  
+  <searchComponent name="tvComponent" class="org.apache.solr.handler.component.TermVectorComponent"/>
+
+  <requestHandler name="tvrh" class="org.apache.solr.handler.component.SearchHandler">
+    <lst name="defaults">
+
+    </lst>
+    <arr name="last-components">
+      <str>tvComponent</str>
+    </arr>
+  </requestHandler>
+
+  <highlighting>
+   <!-- Configure the standard fragmenter -->
+   <fragmenter name="gap" class="org.apache.solr.highlight.GapFragmenter" default="true">
+    <lst name="defaults">
+     <int name="hl.fragsize">100</int>
+    </lst>
+   </fragmenter>
+
+   <fragmenter name="regex" class="org.apache.solr.highlight.RegexFragmenter">
+    <lst name="defaults">
+     <int name="hl.fragsize">70</int>
+    </lst>
+   </fragmenter>
+
+   <!-- Configure the standard formatter -->
+   <formatter name="html" class="org.apache.solr.highlight.HtmlFormatter" default="true">
+    <lst name="defaults">
+     <str name="hl.simple.pre"><![CDATA[<em>]]></str>
+     <str name="hl.simple.post"><![CDATA[</em>]]></str>
+    </lst>
+   </formatter>
+  </highlighting>
+
+
+  <!-- enable streaming for testing... -->
+  <requestDispatcher handleSelect="true" >
+    <requestParsers enableRemoteStreaming="true" multipartUploadLimitInKB="2048" />
+    <httpCaching lastModifiedFrom="openTime" etagSeed="Solr" never304="false">
+      <cacheControl>max-age=30, public</cacheControl>
+    </httpCaching>
+  </requestDispatcher>
+
+  <admin>
+    <defaultQuery>solr</defaultQuery>
+    <gettableFiles>solrconfig.xml scheam.xml admin-extra.html</gettableFiles>
+  </admin>
+
+  <!-- test getting system property -->
+  <propTest attr1="${solr.test.sys.prop1}-$${literal}"
+            attr2="${non.existent.sys.prop:default-from-config}">prefix-${solr.test.sys.prop2}-suffix</propTest>
+
+  <queryParser name="foo" class="FooQParserPlugin"/>
+
+  <updateRequestProcessorChain name="dedupe">
+    <processor class="org.apache.solr.update.processor.SignatureUpdateProcessorFactory">
+      <bool name="enabled">false</bool>
+      <bool name="overwriteDupes">true</bool>
+      <str name="fields">v_t,t_field</str>
+      <str name="signatureClass">org.apache.solr.update.processor.TextProfileSignature</str>
+    </processor>
+    <processor class="solr.RunUpdateProcessorFactory" />
+  </updateRequestProcessorChain>
+
+</config>

Modified: lucene/solr/trunk/src/test/test-files/solr/conf/solrconfig-termindex.xml
URL: http://svn.apache.org/viewvc/lucene/solr/trunk/src/test/test-files/solr/conf/solrconfig-termindex.xml?rev=817650&r1=817649&r2=817650&view=diff
==============================================================================
--- lucene/solr/trunk/src/test/test-files/solr/conf/solrconfig-termindex.xml (original)
+++ lucene/solr/trunk/src/test/test-files/solr/conf/solrconfig-termindex.xml Tue Sep 22 13:14:35 2009
@@ -70,14 +70,14 @@
 
      Other implementations of MergePolicy must have a no-argument constructor
      -->
-    <mergePolicy>org.apache.lucene.index.LogByteSizeMergePolicy</mergePolicy>
+    <mergePolicy class="org.apache.lucene.index.LogByteSizeMergePolicy"/>
 
     <!--
      Expert:
      The Merge Scheduler in Lucene controls how merges are performed.  The ConcurrentMergeScheduler (Lucene 2.3 default)
       can perform merges in the background using separate threads.  The SerialMergeScheduler (Lucene 2.2 default) does not.
      -->
-    <mergeScheduler>org.apache.lucene.index.ConcurrentMergeScheduler</mergeScheduler>
+    <mergeScheduler class="org.apache.lucene.index.ConcurrentMergeScheduler"/>
     <!-- these are global... can't currently override per index -->
     <writeLockTimeout>1000</writeLockTimeout>
     <commitLockTimeout>10000</commitLockTimeout>
@@ -100,7 +100,7 @@
 
     <maxMergeDocs>2147483647</maxMergeDocs>
     <maxFieldLength>10000</maxFieldLength>
-    <mergePolicy>org.apache.lucene.index.LogDocMergePolicy</mergePolicy>
+    <mergePolicy class="org.apache.lucene.index.LogDocMergePolicy"/>
 
     <unlockOnStartup>true</unlockOnStartup>
   </mainIndex>

Modified: lucene/solr/trunk/src/test/test-files/solr/conf/solrconfig.xml
URL: http://svn.apache.org/viewvc/lucene/solr/trunk/src/test/test-files/solr/conf/solrconfig.xml?rev=817650&r1=817649&r2=817650&view=diff
==============================================================================
--- lucene/solr/trunk/src/test/test-files/solr/conf/solrconfig.xml (original)
+++ lucene/solr/trunk/src/test/test-files/solr/conf/solrconfig.xml Tue Sep 22 13:14:35 2009
@@ -84,14 +84,14 @@
 
      Other implementations of MergePolicy must have a no-argument constructor
      -->
-    <mergePolicy>org.apache.lucene.index.LogByteSizeMergePolicy</mergePolicy>
+    <mergePolicy class="org.apache.lucene.index.LogByteSizeMergePolicy"/>
 
     <!--
      Expert:
      The Merge Scheduler in Lucene controls how merges are performed.  The ConcurrentMergeScheduler (Lucene 2.3 default)
       can perform merges in the background using separate threads.  The SerialMergeScheduler (Lucene 2.2 default) does not.
      -->
-    <mergeScheduler>org.apache.lucene.index.ConcurrentMergeScheduler</mergeScheduler>
+    <mergeScheduler class="org.apache.lucene.index.ConcurrentMergeScheduler"/>
     <!-- these are global... can't currently override per index -->
     <writeLockTimeout>1000</writeLockTimeout>
     <commitLockTimeout>10000</commitLockTimeout>
@@ -109,7 +109,7 @@
     <maxBufferedDocs>10</maxBufferedDocs>
     <maxMergeDocs>2147483647</maxMergeDocs>
     <maxFieldLength>10000</maxFieldLength>
-    <mergePolicy>org.apache.lucene.index.LogDocMergePolicy</mergePolicy>
+    <mergePolicy class="org.apache.lucene.index.LogDocMergePolicy"/>
 
     <unlockOnStartup>true</unlockOnStartup>
   </mainIndex>

Modified: lucene/solr/trunk/src/test/test-files/solr/conf/solrconfig_perf.xml
URL: http://svn.apache.org/viewvc/lucene/solr/trunk/src/test/test-files/solr/conf/solrconfig_perf.xml?rev=817650&r1=817649&r2=817650&view=diff
==============================================================================
--- lucene/solr/trunk/src/test/test-files/solr/conf/solrconfig_perf.xml (original)
+++ lucene/solr/trunk/src/test/test-files/solr/conf/solrconfig_perf.xml Tue Sep 22 13:14:35 2009
@@ -50,37 +50,7 @@
     <writeLockTimeout>1000</writeLockTimeout>
     <commitLockTimeout>10000</commitLockTimeout>
 
-    <!--
-     Expert: Turn on Lucene's auto commit capability.  This causes intermediate
-     segment flushes to write a new lucene index descriptor, enabling it to be
-     opened by an external IndexReader.  This can greatly slow down indexing
-     speed.  NOTE: Despite the name, this value does not have any relation to
-     Solr's autoCommit functionality
-     -->
-    <!--<luceneAutoCommit>false</luceneAutoCommit>-->
-
-    <!--
-     Expert: The Merge Policy in Lucene controls how merging is handled by
-     Lucene.  The default in 2.3 is the LogByteSizeMergePolicy, previous
-     versions used LogDocMergePolicy.
-
-     LogByteSizeMergePolicy chooses segments to merge based on their size.  The
-     Lucene 2.2 default, LogDocMergePolicy chose when to merge based on number
-     of documents
-
-     Other implementations of MergePolicy must have a no-argument constructor
-     -->
-    <!--<mergePolicy>org.apache.lucene.index.LogByteSizeMergePolicy</mergePolicy>-->
-
-    <!--
-     Expert:
-     The Merge Scheduler in Lucene controls how merges are performed.  The
-     ConcurrentMergeScheduler (Lucene 2.3 default) can perform merges in the
-     background using separate threads.  The SerialMergeScheduler (Lucene 2.2
-     default) does not.
-     -->
-    <!--<mergeScheduler>org.apache.lucene.index.ConcurrentMergeScheduler</mergeScheduler>-->
-
+   
     <!--  To aid in advanced debugging, you may turn on IndexWriter debug logging.
      Uncommenting this and setting to true will set the file that the underlying
      Lucene IndexWriter will write its debug infostream to.  -->



Mime
View raw message