<?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
     "-//Puppy Crawl//DTD Suppressions 1.0//EN"
     "http://www.puppycrawl.com/dtds/suppressions_1_0.dtd">
 
<suppressions>
  <!-- Impossible to resolve checkstyle indentation violation because of checkstyle bug -->
  <suppress checks="indentation" files="HoodieLogFileCommand.java" lines="1-9999"/>
  <suppress checks="indentation" files="RealtimeUnmergedRecordReader.java" lines="1-9999" />
  <!-- Member Names expected to start with "_"  -->
  <suppress checks="naming" files="TestRecord.java" lines="1-9999"/>
  <suppress checks="IllegalImport" files="Option.java" />
  <!-- java.util.Optional part of DataSource V2 API signature -->
  <suppress checks="IllegalImport" files="DefaultSource.java" />
</suppressions>
