<?xml version="1.0" encoding="UTF-8" ?>
<!--
 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.
-->


<!--
 All (relative) paths are relative to the installation path
-->
<solr>

  <str name="shareSchema">${shareSchema:false}</str>
  <str name="configSetBaseDir">${configSetBaseDir:configsets}</str>
  <str name="coreRootDirectory">${coreRootDirectory:.}</str>

  <shardHandlerFactory name="shardHandlerFactory" class="HttpShardHandlerFactory">
    <str name="urlScheme">${urlScheme:}</str>
    <int name="socketTimeout">${socketTimeout:90000}</int>
    <int name="connTimeout">${connTimeout:15000}</int>
    <str name="shardsWhitelist">${solr.tests.shardsWhitelist:}</str>
  </shardHandlerFactory>

  <solrcloud>
    <str name="host">127.0.0.1</str>
    <int name="hostPort">${hostPort:8983}</int>
    <str name="hostContext">${hostContext:solr}</str>
    <int name="zkClientTimeout">${solr.zkclienttimeout:30000}</int>
    <bool name="genericCoreNodeNames">${genericCoreNodeNames:true}</bool>
    <int name="leaderVoteWait">0</int>
    <int name="distribUpdateConnTimeout">${distribUpdateConnTimeout:45000}</int>
    <int name="distribUpdateSoTimeout">${distribUpdateSoTimeout:340000}</int>
  </solrcloud>

</solr>
