<?xml version="1.0"?>
<!--
  Licensed 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. See accompanying LICENSE file.
-->
<!DOCTYPE suppressions PUBLIC
        "-//Checkstyle//DTD SuppressionFilter Configuration 1.0//EN"
        "https://checkstyle.org/dtds/suppressions_1_0.dtd">
<suppressions>
    <!-- suppress all checks in the generated directories -->
    <suppress checks=".*" files=".+[\\/]classes[\\/].+\.java" />
    <suppress checks=".*" files=".+[\\/]generated[\\/].+\.java" />
    <suppress checks=".*" files=".+[\\/]generated-sources[\\/].+\.java" />
    <suppress checks=".*" files=".+[\\/]generated-test-sources[\\/].+\.java" />
    <suppress checks="LineLength" files=".+[\\/]jute[\\/].+\.java"/>

    <!-- TODO ZOOKEEPER-3508 -->
    <suppress checks="LineLength" files=".+[\\/]zookeeper-server[\\/].+\.java"/>

    <!-- TODO ZOOKEEPER-3507 -->
    <suppress checks=".*Name.*" files=".+[\\/]zookeeper-server[\\/].+\.java"/>

    <!-- TODO ZOOKEEPER-3469 -->
    <suppress checks="Javadoc.+" files=".+[\\/]zookeeper-server[\\/].+\.java"/>

    <suppress checks="OperatorWrap|ModifierOrder" files="zookeeper-server/src/test/java/org/apache/zookeeper/common/CertificatesToPlayWith\.java" />
</suppressions>
