<?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 includes a builder for
     multiple configuration files. It collaborates with a
     DynamicCombinedConfiguration.
     $Id$
-->
<configuration>
  <header>
    <result loggerName="TestLogger"
            config-class="org.apache.commons.configuration2.DynamicCombinedConfiguration"
            keyPattern="$${sys:Id}">
      <nodeCombiner config-class="org.apache.commons.configuration2.tree.MergeCombiner"/>
    </result>
  </header>
  <override>
    <multiFile filePattern="testMultiConfiguration_$${sys:Id}.xml"
               config-name="clientConfig" schemaValidation="false"
               config-optional="true" config-forceCreate="true">
       <expressionEngine
          config-class="org.apache.commons.configuration2.tree.xpath.XPathExpressionEngine"/>
    </multiFile>
    <xml fileName="testMultiConfiguration_default.xml"
         config-name="defaultConfig">
      <expressionEngine
          config-class="org.apache.commons.configuration2.tree.xpath.XPathExpressionEngine"/>
    </xml>
  </override>
</configuration>