<?xml version="1.0"?>

<!--
  ~ 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.
  -->

<!DOCTYPE suppressions PUBLIC
    "-//Checkstyle//DTD SuppressionFilter Configuration 1.2//EN"
    "https://checkstyle.org/dtds/suppressions_1_2.dtd">

<suppressions>
  <!-- See http://checkstyle.sourceforge.net/config_filters.html#SuppressionFilter for examples -->

  <!-- Code copied from TestNG to apply a bugfix -->
  <suppress checks="AvoidStaticImport" files="[\\/]org[\\/]testng[\\/]" />

  <suppress checks="Header" files="[\\/]target[\\/]generated-test-sources[\\/]" />
  <suppress checks="NeedBraces" files="[\\/]target[\\/]generated-test-sources[\\/]" />
  <suppress checks="UnusedImports" files="[\\/]target[\\/]generated-test-sources[\\/]" />
  <suppress checks="AvoidStarImport" files="[\\/]target[\\/]generated-test-sources[\\/]" />
  <suppress checks="FileTabCharacter" files="[\\/]target[\\/]generated-test-sources[\\/]" />

  <suppress checks="WhitespaceAfter" files="[\\/]target[\\/]generated-test-sources[\\/]" />
  <suppress checks="WhitespaceAround" files="[\\/]target[\\/]generated-test-sources[\\/]" />
  <suppress checks="ParenPad" files="[\\/]target[\\/]generated-test-sources[\\/]" />
  <suppress checks="SingleSpaceSeparator" files="[\\/]target[\\/]generated-test-sources[\\/]" />
  <suppress checks="NoWhitespaceBefore" files="[\\/]target[\\/]generated-test-sources[\\/]" />
  <suppress checks="NoWhitespaceAfter" files="[\\/]target[\\/]generated-test-sources[\\/]" />

  <suppress checks="LeftCurly" files="[\\/]target[\\/]generated-test-sources[\\/]" />
  <suppress checks="RightCurly" files="[\\/]target[\\/]generated-test-sources[\\/]" />

  <suppress checks="Indentation" files="[\\/]target[\\/]generated-test-sources[\\/]" />
  <suppress checks="Indentation" files="ProtoTestEventWrapper.java" />
  <suppress checks="Regexp" id="argumentLineBreaking" files="ProtoTestEventWrapper.java" />
  <suppress checks="ConstantName" files="ProtoTestEventWrapper.java" />
  <suppress checks="ConstantName" files="MySubRecord.java" />
  <suppress checks="ConstantName" files="SomeAvroDatum.java" />
  <suppress checks="ConstantName" files="MyFixed.java" />
  <suppress checks="ConstantName" files="MyEnum.java" />
  <suppress checks="ConstantName" files="Author" />
  <suppress checks="ConstantName" files="Book" />

  <suppress checks="OneStatementPerLine" files="[\\/]target[\\/]generated-test-sources[\\/]" />

  <!-- extendedset is a fork of Alessandro Colantonio's CONCISE (COmpressed 'N' Composable Integer SEt) repository
       and licensed to ASF under a CLA is not true. -->
  <suppress checks="Header" files="[\\/]extendedset[\\/]" />

  <suppress checks="Regexp" id="duplicateLine" files="[\\/]src[\\/]test[\\/]" />

  <!-- See https://github.com/checkstyle/checkstyle/issues/5510 and the ImportOrder definition in checkstyle.xml -->
  <suppress checks="ImportOrder" message="^'java\..*'.*" />

  <suppress checks="ImportOrder" files="[\\/]target[\\/]generated-test-sources[\\/]" />
  <suppress checks="EmptyLineSeparator" files="[\\/]target[\\/]generated-test-sources[\\/]" />
</suppressions>
