<?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.
-->

<config>
  <jmx />

  <luceneMatchVersion>${tests.luceneMatchVersion:LUCENE_CURRENT}</luceneMatchVersion>

  <schemaFactory class="ManagedIndexSchemaFactory">
    <bool name="mutable">false</bool>
    <str name="managedSchemaResourceName">managed-schema</str>
  </schemaFactory>

  <directoryFactory name="DirectoryFactory" class="${solr.directoryFactory:solr.RAMDirectoryFactory}">
    <!-- used to keep RAM reqs down for HdfsDirectoryFactory -->
    <int name="solr.hdfs.blockcache.blocksperbank">${solr.hdfs.blockcache.blocksperbank:1024}</int>
  </directoryFactory>

  <dataDir>${solr.data.dir:}</dataDir>

  <indexConfig>
    <lockType>${solr.lock.type:native}</lockType>
    <useCompoundFile>${useCompoundFile:false}</useCompoundFile>
  </indexConfig>

  <!-- an update processor the explicitly excludes distrib to test
       clean errors when people attempt atomic updates w/o it
  -->
  <updateRequestProcessorChain name="nodistrib" >
    <processor class="solr.NoOpDistributingUpdateProcessorFactory" />
    <processor class="solr.RunUpdateProcessorFactory" />
  </updateRequestProcessorChain>

  <requestHandler name="standard" class="solr.StandardRequestHandler">
  </requestHandler>

  <requestHandler name="/get" class="solr.RealTimeGetHandler">
    <lst name="defaults">
      <str name="omitHeader">true</str>
    </lst>
  </requestHandler>

  <requestHandler name="/replication" class="solr.ReplicationHandler" startup="lazy" />

  <requestHandler name="/update" class="solr.UpdateRequestHandler"  />

  <updateHandler class="solr.DirectUpdateHandler2">
    <updateLog>
      <str name="dir">${solr.ulog.dir:}</str>
    </updateLog>
  </updateHandler>

  <requestHandler name="/admin/" class="org.apache.solr.handler.admin.AdminHandlers" />

  <updateRequestProcessorChain name="distrib-dup-test-chain-explicit">
    <!-- explicit test using processors before and after distrib -->
    <processor class="solr.RegexReplaceProcessorFactory">
      <str name="fieldName">regex_dup_A_s</str>
      <str name="pattern">x</str>
      <str name="replacement">x_x</str>
    </processor>
    <processor class="solr.DistributedUpdateProcessorFactory" />
    <processor class="solr.RegexReplaceProcessorFactory">
      <str name="fieldName">regex_dup_B_s</str>
      <str name="pattern">x</str>
      <str name="replacement">x_x</str>
    </processor>
    <processor class="solr.RunUpdateProcessorFactory" />
  </updateRequestProcessorChain>

  <updateRequestProcessorChain name="distrib-dup-test-chain-implicit">
    <!-- implicit test w/o distrib declared-->
    <processor class="solr.RegexReplaceProcessorFactory">
      <str name="fieldName">regex_dup_A_s</str>
      <str name="pattern">x</str>
      <str name="replacement">x_x</str>
    </processor>
    <processor class="solr.RegexReplaceProcessorFactory">
      <str name="fieldName">regex_dup_B_s</str>
      <str name="pattern">x</str>
      <str name="replacement">x_x</str>
    </processor>
    <processor class="solr.RunUpdateProcessorFactory" />
  </updateRequestProcessorChain>

</config>
