

<!DOCTYPE suppressions PUBLIC
        "-//Puppy Crawl//DTD Suppressions 1.1//EN"
        "http://www.puppycrawl.com/dtds/suppressions_1_1.dtd">

<suppressions>

    <!-- Note that [/\\] must be used as the path separator for cross-platform support -->

    <!-- Generator -->
    <suppress checks="CyclomaticComplexity|BooleanExpressionComplexity"
              files="(SchemaGenerator|MessageDataGenerator|FieldSpec).java"/>
    <suppress checks="NPathComplexity"
              files="(MessageDataGenerator|FieldSpec|WorkerSinkTask).java"/>
    <suppress checks="JavaNCSS"
              files="(ApiMessageType|FieldSpec|MessageDataGenerator).java"/>
    <suppress checks="MethodLength"
              files="(FieldSpec|MessageDataGenerator).java"/>
    <suppress id="dontUseSystemExit"
              files="MessageGenerator.java"/>

    <!-- core -->
    <suppress checks="(NPathComplexity|ClassFanOutComplexity|CyclomaticComplexity|ClassDataAbstractionCoupling|FinalLocalVariable|LocalVariableName|MemberName|ParameterName|MethodLength|JavaNCSS|AvoidStarImport)"
              files="core[\\/]src[\\/](generated|generated-test)[\\/].+.java$"/>
    <suppress checks="NPathComplexity" files="ClusterTestExtensions.java"/>

    <!-- Clients -->
    <suppress id="dontUseSystemExit"
              files="Exit.java"/>
    <suppress checks="ClassFanOutComplexity"
              files="(Fetcher|Sender|SenderTest|ConsumerCoordinator|KafkaConsumer|KafkaProducer|Utils|TransactionManager|TransactionManagerTest|KafkaAdminClient|NetworkClient|Admin|KafkaRaftClient|KafkaRaftClientTest|RaftClientTestContext).java"/>
    <suppress checks="ClassFanOutComplexity"
              files="(SaslServerAuthenticator|SaslAuthenticatorTest).java"/>
    <suppress checks="NPath"
              files="SaslServerAuthenticator.java"/>
    <suppress checks="ClassFanOutComplexity"
              files="Errors.java"/>
    <suppress checks="ClassFanOutComplexity"
              files="Utils.java"/>
    <suppress checks="ClassFanOutComplexity"
              files="AbstractRequest.java"/>
    <suppress checks="ClassFanOutComplexity"
              files="AbstractResponse.java"/>

    <suppress checks="MethodLength"
              files="(KerberosLogin|RequestResponseTest|ConnectMetricsRegistry|KafkaConsumer|AbstractStickyAssignor).java"/>

    <suppress checks="ParameterNumber"
              files="(NetworkClient|FieldSpec|KafkaRaftClient).java"/>
    <suppress checks="ParameterNumber"
              files="KafkaConsumer.java"/>
    <suppress checks="ParameterNumber"
              files="Fetcher.java"/>
    <suppress checks="ParameterNumber"
              files="Sender.java"/>
    <suppress checks="ParameterNumber"
              files="ConfigDef.java"/>
    <suppress checks="ParameterNumber"
              files="DefaultRecordBatch.java"/>
    <suppress checks="ParameterNumber"
              files="Sender.java"/>

    <suppress checks="ClassDataAbstractionCoupling"
              files="(KafkaConsumer|ConsumerCoordinator|Fetcher|KafkaProducer|AbstractRequest|AbstractResponse|TransactionManager|Admin|KafkaAdminClient|MockAdminClient|KafkaRaftClient|KafkaRaftClientTest).java"/>
    <suppress checks="ClassDataAbstractionCoupling"
              files="(Errors|SaslAuthenticatorTest|AgentTest|CoordinatorTest).java"/>

    <suppress checks="BooleanExpressionComplexity"
              files="(Utils|Topic|KafkaLZ4BlockOutputStream|AclData|JoinGroupRequest).java"/>

    <suppress checks="CyclomaticComplexity"
              files="(ConsumerCoordinator|Fetcher|KafkaProducer|ConfigDef|KerberosLogin|AbstractRequest|AbstractResponse|Selector|SslFactory|SslTransportLayer|SaslClientAuthenticator|SaslClientCallbackHandler|SaslServerAuthenticator|AbstractCoordinator|TransactionManager|AbstractStickyAssignor|DefaultSslEngineFactory|Authorizer|RecordAccumulator).java"/>

    <suppress checks="JavaNCSS"
              files="(AbstractRequest|AbstractResponse|KerberosLogin|WorkerSinkTaskTest|TransactionManagerTest|SenderTest|KafkaAdminClient|ConsumerCoordinatorTest|KafkaAdminClientTest|KafkaRaftClientTest).java"/>

    <suppress checks="NPathComplexity"
              files="(ConsumerCoordinator|BufferPool|Fetcher|MetricName|Node|ConfigDef|RecordBatch|SslFactory|SslTransportLayer|MetadataResponse|KerberosLogin|Selector|Sender|Serdes|TokenInformation|Agent|Values|PluginUtils|MiniTrogdorCluster|TasksRequest|KafkaProducer|AbstractStickyAssignor|KafkaRaftClient|Authorizer).java"/>

    <suppress checks="(JavaNCSS|CyclomaticComplexity|MethodLength)"
              files="CoordinatorClient.java"/>
    <suppress checks="(UnnecessaryParentheses|BooleanExpressionComplexity|CyclomaticComplexity|WhitespaceAfter|LocalVariableName)"
              files="Murmur3.java"/>

    <suppress checks="(NPathComplexity|ClassFanOutComplexity|CyclomaticComplexity|ClassDataAbstractionCoupling|LocalVariableName|MemberName|ParameterName|MethodLength|JavaNCSS|AvoidStarImport)"
            files="clients[\\/]src[\\/](generated|generated-test)[\\/].+.java$"/>

    <suppress checks="NPathComplexity"
            files="MessageTest.java|OffsetFetchRequest.java"/>

    <!-- Clients tests -->
    <suppress checks="ClassDataAbstractionCoupling"
              files="(Sender|Fetcher|KafkaConsumer|Metrics|RequestResponse|TransactionManager|KafkaAdminClient|Message|KafkaProducer)Test.java"/>

    <suppress checks="ClassFanOutComplexity"
              files="(ConsumerCoordinator|KafkaConsumer|RequestResponse|Fetcher|KafkaAdminClient|Message|KafkaProducer)Test.java"/>

    <suppress checks="ClassFanOutComplexity"
              files="MockAdminClient.java"/>

    <suppress checks="JavaNCSS"
              files="RequestResponseTest.java|FetcherTest.java|KafkaAdminClientTest.java"/>

    <suppress checks="NPathComplexity"
              files="MemoryRecordsTest|MetricsTest|RequestResponseTest|TestSslUtils|AclAuthorizerBenchmark"/>

    <suppress checks="(WhitespaceAround|LocalVariableName|ImportControl|AvoidStarImport)"
              files="Murmur3Test.java"/>

    <!-- Connect -->
    <suppress checks="ClassFanOutComplexity"
              files="(AbstractHerder|DistributedHerder|Worker).java"/>
    <suppress checks="ClassFanOutComplexity"
              files="Worker(|Test).java"/>
    <suppress checks="MethodLength"
              files="(KafkaConfigBackingStore|Values|IncrementalCooperativeAssignor).java"/>
    <suppress checks="ParameterNumber"
              files="Worker(SinkTask|SourceTask|Coordinator).java"/>
    <suppress checks="ParameterNumber"
              files="ConfigKeyInfo.java"/>

    <suppress checks="ClassDataAbstractionCoupling"
              files="(RestServer|AbstractHerder|DistributedHerder).java"/>

    <suppress checks="BooleanExpressionComplexity"
              files="JsonConverter.java"/>

    <suppress checks="CyclomaticComplexity"
              files="(FileStreamSourceTask|DistributedHerder|KafkaConfigBackingStore).java"/>
    <suppress checks="CyclomaticComplexity"
              files="(JsonConverter|Values|ConnectHeaders).java"/>

    <suppress checks="JavaNCSS"
              files="(KafkaConfigBackingStore|Values).java"/>

    <suppress checks="NPathComplexity"
              files="(DistributedHerder|RestClient|RestServer|JsonConverter|KafkaConfigBackingStore|FileStreamSourceTask|TopicAdmin).java"/>

    <!-- connect tests-->
    <suppress checks="ClassDataAbstractionCoupling"
              files="(DistributedHerder|KafkaBasedLog|WorkerSourceTaskWithTopicCreation|WorkerSourceTask)Test.java"/>

    <suppress checks="ClassFanOutComplexity"
              files="(WorkerSink|WorkerSource|ErrorHandling)Task(|WithTopicCreation)Test.java"/>
    <suppress checks="ClassFanOutComplexity"
              files="DistributedHerderTest.java"/>

    <suppress checks="MethodLength"
              files="(RequestResponse|WorkerSinkTask)Test.java"/>

    <suppress checks="JavaNCSS"
              files="DistributedHerderTest.java"/>

    <!-- Raft -->
    <suppress checks="NPathComplexity"
              files="RecordsIterator.java"/>

    <!-- Streams -->
    <suppress checks="ClassFanOutComplexity"
              files="(KafkaStreams|KStreamImpl|KTableImpl|StreamsPartitionAssignor).java"/>

    <suppress checks="MethodLength"
              files="KTableImpl.java"/>

    <suppress checks="ParameterNumber"
              files="StreamThread.java"/>

    <suppress checks="ClassDataAbstractionCoupling"
              files="(KafkaStreams|KStreamImpl|KTableImpl).java"/>

    <suppress checks="CyclomaticComplexity"
              files="(StreamsPartitionAssignor|StreamThread|TaskManager|PartitionGroup).java"/>

    <suppress checks="StaticVariableName"
              files="StreamsMetricsImpl.java"/>

    <suppress checks="NPathComplexity"
              files="(KafkaStreams|StreamsPartitionAssignor|StreamThread|TaskManager|GlobalStateManagerImpl|KStreamImplJoin).java"/>

    <suppress checks="(FinalLocalVariable|UnnecessaryParentheses|BooleanExpressionComplexity|CyclomaticComplexity|WhitespaceAfter|LocalVariableName)"
              files="Murmur3.java"/>

    <suppress checks="(NPathComplexity|CyclomaticComplexity)"
              files="KStreamSlidingWindowAggregate.java"/>

    <!-- suppress FinalLocalVariable outside of the streams package. -->
    <suppress checks="FinalLocalVariable"
              files="^(?!.*[\\/]org[\\/]apache[\\/]kafka[\\/]streams[\\/].*$)"/>

    <!-- Generated code -->
    <suppress checks="(NPathComplexity|ClassFanOutComplexity|CyclomaticComplexity|ClassDataAbstractionCoupling|FinalLocalVariable|LocalVariableName|MemberName|ParameterName|MethodLength|JavaNCSS|AvoidStarImport)"
              files="streams[\\/]src[\\/](generated|generated-test)[\\/].+.java$"/>
    <suppress checks="(NPathComplexity|ClassFanOutComplexity|CyclomaticComplexity|ClassDataAbstractionCoupling|FinalLocalVariable|LocalVariableName|MemberName|ParameterName|MethodLength|JavaNCSS|AvoidStarImport)"
              files="raft[\\/]src[\\/](generated|generated-test)[\\/].+.java$"/>
    <suppress checks="(NPathComplexity|ClassFanOutComplexity|CyclomaticComplexity|ClassDataAbstractionCoupling|FinalLocalVariable|LocalVariableName|MemberName|ParameterName|MethodLength|JavaNCSS|AvoidStarImport)"
              files="storage[\\/]src[\\/](generated|generated-test)[\\/].+.java$"/>

    <suppress checks="ImportControl" files="FetchResponseData.java"/>
    <suppress checks="ImportControl" files="RecordsSerdeTest.java"/>

    <!-- Streams tests -->
    <suppress checks="ClassFanOutComplexity"
              files="(StreamsPartitionAssignorTest|StreamThreadTest|StreamTaskTest|TaskManagerTest|TopologyTestDriverTest).java"/>

    <suppress checks="MethodLength"
              files="(EosIntegrationTest|EosV2UpgradeIntegrationTest|KStreamKStreamJoinTest|RocksDBWindowStoreTest).java"/>

    <suppress checks="ClassDataAbstractionCoupling"
              files=".*[/\\]streams[/\\].*test[/\\].*.java"/>

    <suppress checks="CyclomaticComplexity"
              files="(EosV2UpgradeIntegrationTest|KStreamKStreamJoinTest|KTableKTableForeignKeyJoinIntegrationTest|RocksDBGenericOptionsToDbOptionsColumnFamilyOptionsAdapterTest|RelationalSmokeTest|MockProcessorContextStateStoreTest).java"/>

    <suppress checks="JavaNCSS"
              files="(EosV2UpgradeIntegrationTest|KStreamKStreamJoinTest|TaskManagerTest).java"/>

    <suppress checks="NPathComplexity"
              files="(EosV2UpgradeIntegrationTest|EosTestDriver|KStreamKStreamJoinTest|KTableKTableForeignKeyJoinIntegrationTest|RelationalSmokeTest|MockProcessorContextStateStoreTest).java"/>

    <suppress checks="(FinalLocalVariable|WhitespaceAround|LocalVariableName|ImportControl|AvoidStarImport)"
              files="Murmur3Test.java"/>

    <suppress checks="MethodLength"
              files="(KStreamSlidingWindowAggregateTest|KStreamKStreamLeftJoinTest|KStreamKStreamOuterJoinTest).java"/>

    <suppress checks="ClassFanOutComplexity"
              files="StreamTaskTest.java"/>

    <!-- Streams test-utils -->
    <suppress checks="ClassFanOutComplexity"
              files="TopologyTestDriver.java"/>
    <suppress checks="ClassDataAbstractionCoupling"
              files="TopologyTestDriver.java"/>

    <!-- Streams examples -->
    <suppress id="dontUseSystemExit"
              files="PageViewTypedDemo.java|PipeDemo.java|TemperatureDemo.java|WordCountDemo.java|WordCountProcessorDemo.java|WordCountTransformerDemo.java"/>

    <!-- Tools -->
    <suppress checks="ClassDataAbstractionCoupling"
              files="VerifiableConsumer.java"/>
    <suppress checks="CyclomaticComplexity"
              files="(StreamsResetter|ProducerPerformance|Agent).java"/>
    <suppress checks="BooleanExpressionComplexity"
              files="StreamsResetter.java"/>
    <suppress checks="NPathComplexity"
              files="(ProducerPerformance|StreamsResetter|Agent|TransactionalMessageCopier).java"/>
    <suppress checks="ImportControl"
              files="SignalLogger.java"/>
    <suppress checks="IllegalImport"
              files="SignalLogger.java"/>
    <suppress checks="ParameterNumber"
              files="ProduceBenchSpec.java"/>
    <suppress checks="ParameterNumber"
              files="ConsumeBenchSpec.java"/>
    <suppress checks="ParameterNumber"
              files="SustainedConnectionSpec.java"/>
    <suppress id="dontUseSystemExit"
              files="VerifiableConsumer.java"/>
    <suppress id="dontUseSystemExit"
              files="VerifiableProducer.java"/>

    <!-- Shell -->
    <suppress checks="CyclomaticComplexity"
              files="(GlobComponent).java"/>

    <!-- Log4J-Appender -->
    <suppress checks="CyclomaticComplexity"
              files="KafkaLog4jAppender.java"/>

    <suppress checks="NPathComplexity"
              files="KafkaLog4jAppender.java"/>
    <suppress checks="JavaNCSS"
              files="RequestResponseTest.java"/>

    <!-- metadata -->
    <suppress checks="ClassDataAbstractionCoupling"
              files="(QuorumControllerTest|ReplicationControlManager|ReplicationControlManagerTest).java"/>
    <suppress checks="ClassFanOutComplexity"
              files="(QuorumController|ReplicationControlManager|ReplicationControlManagerTest).java"/>
    <suppress checks="ParameterNumber"
              files="(QuorumController).java"/>
    <suppress checks="CyclomaticComplexity"
              files="(ClientQuotasImage|ReplicationControlManager).java"/>
    <suppress checks="NPathComplexity"
              files="(ClientQuotasImage|KafkaEventQueue|ReplicationControlManager).java"/>
    <suppress checks="(NPathComplexity|ClassFanOutComplexity|CyclomaticComplexity|ClassDataAbstractionCoupling|LocalVariableName|MemberName|ParameterName|MethodLength|JavaNCSS|AvoidStarImport)"
            files="metadata[\\/]src[\\/](generated|generated-test)[\\/].+.java$"/>

    <!-- Storage -->
    <suppress checks="(CyclomaticComplexity|ParameterNumber)"
              files="(RemoteLogManagerConfig).java"/>

</suppressions>
