<?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.    
-->
<fileset-config file-format-version="1.2.0" simple-config="false">
    <local-check-config name="Ivy Checkstyle Config" location="src/etc/checkstyle/checkstyle-config" type="project" description="">
        <property name="checkstyle.src.dir" value="${basedir}/src/etc/checkstyle"/>
        <additional-data name="protect-config-file" value="true"/>
    </local-check-config>
    <fileset name="Ivy Checkstyle config" enabled="true" check-config-name="Ivy Checkstyle Config" local="true">
        <file-match-pattern match-pattern="^src.java.*.java$" include-pattern="true"/>
        <file-match-pattern match-pattern="^src.example.*.java$" include-pattern="true"/>
        <file-match-pattern match-pattern="^test.java.*.java$" include-pattern="true"/>
    </fileset>
</fileset-config>
