<?xml version="1.0" encoding="ISO-8859-1" ?>
<!--
   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.
-->
<!-- Test configuration definition file that demonstrates complex initialization -->
<configuration>
  <header>
    <result delimiterParsingDisabled="true" forceReloadCheck="true" loggerName="TestLogger"
            config-class="org.apache.commons.configuration2.DynamicCombinedConfiguration"
            keyPattern="$${sys:Id}">
      <nodeCombiner config-class="org.apache.commons.configuration2.tree.MergeCombiner"/>
      <expressionEngine
          config-class="org.apache.commons.configuration2.tree.xpath.XPathExpressionEngine"/>
    </result>
    <fileSystem config-class="org.apache.commons.configuration2.VFSFileSystem"/>
    <entity-resolver catalogFiles="catalog.xml"/>
    <providers>
      <provider config-tag="multifile"
         config-class="org.apache.commons.configuration2.DefaultConfigurationBuilder$FileConfigurationProvider"
         configurationClass="org.apache.commons.configuration2.MultiFileHierarchicalConfiguration"/>
    </providers>
  </header>
  <override>
    <multifile filePattern="testwrite/testMultiConfiguration_$$${sys:Id}.xml"
               config-name="clientConfig" delimiterParsingDisabled="true" schemaValidation="true">
       <expressionEngine
          config-class="org.apache.commons.configuration2.tree.xpath.XPathExpressionEngine"/>
       <reloadingStrategy refreshDelay="500"
          config-class="org.apache.commons.configuration2.reloading.VFSFileChangedReloadingStrategy"/>
    </multifile>
    <xml fileName="testMultiConfiguration_default.xml"
         config-name="defaultConfig" delimiterParsingDisabled="true" schemaValidation="true">
      <expressionEngine
          config-class="org.apache.commons.configuration2.tree.xpath.XPathExpressionEngine"/>
      <reloadingStrategy refreshDelay="500"
          config-class="org.apache.commons.configuration2.reloading.VFSFileChangedReloadingStrategy"/>
    </xml>
  </override>
</configuration>