<?xml version="1.0"?>
<!DOCTYPE suppressions PUBLIC
    "-//Puppy Crawl//DTD Suppressions 1.0//EN"
    "http://www.puppycrawl.com/dtds/suppressions_1_0.dtd">
<!--
  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.
-->
<suppressions>
    <suppress checks=".*"
              files=".+[\\\/]generated-sources[\\\/].+\.java"
              />
    <suppress checks=".*"
              files=".+[\\\/]build[\\\/]src[\\\/].+\.java"
              />

    <suppress checks=".*"
              files=".+[\\\/]contrib[\\\/].+\.java"
              />

    <suppress checks=".*"
              files=".+log4j.properties"
              />
</suppressions>
