<?xml version="1.0"?>
<!--
    ============LICENSE_START=======================================================
    Copyright (C) 2020 Nokia. All rights reserved.
    ================================================================================
    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.
    SPDX-License-Identifier: Apache-2.0
    ============LICENSE_END=========================================================
-->

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

<suppressions>
    <suppress checks="javadoc" files="\.java"/>
    <suppress checks="LineLength" files="\.java"/>
    <suppress checks="HiddenField" files="\.java"/>
    <suppress checks="FinalParameters" files="\.java"/>
    <suppress checks="DesignForExtension" files="\.java"/>
    <suppress checks="CustomImportOrder" files="\.java"/>
    <suppress checks="Indentation" files="\.java"/>
    <suppress checks="HideUtilityClassConstructor" files="CertServiceApplication.java"/>
</suppressions>
