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

      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>
  <!-- Suppress autogenerated files by thrift compiler -->
  <suppress checks=".*" files="/common/request/.*.java"/>
  <suppress checks=".*" files="/common/response/ProcessingException.java"/>

  <!-- Suppress autogenerated parser files -->
  <suppress checks=".*" files="target/generated-sources"/>
  <suppress checks=".*" files="target/generated-test-sources"/>

  <!-- Suppress autogenerated test files by thrift compiler -->
  <suppress checks=".*" files="/thrift/ComplexTypes.java"/>
  <suppress checks=".*" files="/thrift/NestedType.java"/>
  <suppress checks=".*" files="/thrift/TestEnum.java"/>
  <suppress checks=".*" files="/thrift/ThriftSampleData.java"/>

  <!-- Suppress autogenerated test files by protobuf compiler -->
  <suppress checks=".*" files="/protobuf/ComplexTypes.java"/>
  <suppress checks=".*" files="/protobuf/Sample.java"/>
  <suppress checks=".*" files="/protobuf/CompositeTypes.java"/>

  <!-- Allow static imports in tests -->
  <suppress checks="AvoidStaticImport" files="[\\/]src[\\/]test[\\/].*" />
</suppressions>
