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

<!-- To be removed once all javadoc issues will be fixed. -->
<suppressions>
    <suppress files="[/\\]examples[/\\]" checks=".*" />
    <suppress files="[/\\]modules/cli[/\\]" checks=".*" />
    <suppress files="[/\\]modules/raft-client[/\\]" checks=".*" />
    <suppress files="[/\\]modules/network[/\\]" checks=".*" />
    <suppress files="[/\\]modules/network-api[/\\]" checks=".*" />
    <suppress files="[/\\]modules/rest[/\\]" checks=".*" />
    <suppress files="[/\\]modules/runner[/\\]" checks=".*" />
</suppressions>
