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

       https://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.
-->
<!--
  A test configuration file for testing variable substitution across multiple
  configuration sources created by a DefaultConfigurationBuilder.
  This configuration definition file for a DefaultConfigurationBuilder
  references multiple sources which contain variable references.
-->
<configuration>
  <system/>
  <properties fileName="testInterpolation.properties"/>
  <xml fileName="${testXmlFile}" config-name="test">
    <expressionEngine config-class="org.apache.commons.configuration2.tree.xpath.XPathExpressionEngine"/>
  </xml>
</configuration>
