|
|
|
|
|
|
|
|
|
|
|
<!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="MessageDataGenerator.java"/>
|
|
|
|
<suppress id="dontUseSystemExit"
|
|
|
|
files="MessageGenerator.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).java"/>
|
|
|
|
<suppress checks="ClassFanOutComplexity"
|
|
|
|
files="(SaslServerAuthenticator|SaslAuthenticatorTest).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"
|
KAFKA-7862 & KIP-345 part-one: Add static membership logic to JoinGroup protocol (#6177)
This is the first diff for the implementation of JoinGroup logic for static membership. The goal of this diff contains:
* Add group.instance.id to be unique identifier for consumer instances, provided by end user;
Modify group coordinator to accept JoinGroupRequest with/without static membership, refactor the logic for readability and code reusability.
* Add client side support for incorporating static membership changes, including new config for group.instance.id, apply stream thread client id by default, and new join group exception handling.
* Increase max session timeout to 30 min for more user flexibility if they are inclined to tolerate partial unavailability than burdening rebalance.
* Unit tests for each module changes, especially on the group coordinator logic. Crossing the possibilities like:
6.1 Dynamic/Static member
6.2 Known/Unknown member id
6.3 Group stable/unstable
6.4 Leader/Follower
The rest of the 345 change will be broken down to 4 separate diffs:
* Avoid kicking out members through rebalance.timeout, only do the kick out through session timeout.
* Changes around LeaveGroup logic, including version bumping, broker logic, client logic, etc.
* Admin client changes to add ability to batch remove static members
* Deprecate group.initial.rebalance.delay
Reviewers: Liquan Pei <liquanpei@gmail.com>, Stanislav Kozlovski <familyguyuser192@windowslive.com>, Jason Gustafson <jason@confluent.io>, Guozhang Wang <wangguoz@gmail.com>
6 years ago
|
|
|
files="KerberosLogin.java|RequestResponseTest.java|ConnectMetricsRegistry.java|KafkaConsumer.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"
|
KAFKA-7862 & KIP-345 part-one: Add static membership logic to JoinGroup protocol (#6177)
This is the first diff for the implementation of JoinGroup logic for static membership. The goal of this diff contains:
* Add group.instance.id to be unique identifier for consumer instances, provided by end user;
Modify group coordinator to accept JoinGroupRequest with/without static membership, refactor the logic for readability and code reusability.
* Add client side support for incorporating static membership changes, including new config for group.instance.id, apply stream thread client id by default, and new join group exception handling.
* Increase max session timeout to 30 min for more user flexibility if they are inclined to tolerate partial unavailability than burdening rebalance.
* Unit tests for each module changes, especially on the group coordinator logic. Crossing the possibilities like:
6.1 Dynamic/Static member
6.2 Known/Unknown member id
6.3 Group stable/unstable
6.4 Leader/Follower
The rest of the 345 change will be broken down to 4 separate diffs:
* Avoid kicking out members through rebalance.timeout, only do the kick out through session timeout.
* Changes around LeaveGroup logic, including version bumping, broker logic, client logic, etc.
* Admin client changes to add ability to batch remove static members
* Deprecate group.initial.rebalance.delay
Reviewers: Liquan Pei <liquanpei@gmail.com>, Stanislav Kozlovski <familyguyuser192@windowslive.com>, Jason Gustafson <jason@confluent.io>, Guozhang Wang <wangguoz@gmail.com>
6 years ago
|
|
|
files="(Utils|Topic|KafkaLZ4BlockOutputStream|AclData|JoinGroupRequest).java"/>
|
|
|
|
|
|
|
|
<suppress checks="CyclomaticComplexity"
|
|
|
|
files="(ConsumerCoordinator|Fetcher|Sender|KafkaProducer|BufferPool|ConfigDef|RecordAccumulator|KerberosLogin|AbstractRequest|AbstractResponse|Selector|SslFactory|SslTransportLayer|SaslClientAuthenticator|SaslClientCallbackHandler|SaslServerAuthenticator|AbstractCoordinator|TransactionManager|AbstractStickyAssignor|DefaultSslEngineFactory).java"/>
|
|
|
|
|
|
|
|
<suppress checks="JavaNCSS"
|
|
|
|
files="(AbstractRequest|AbstractResponse|KerberosLogin|WorkerSinkTaskTest|TransactionManagerTest|SenderTest|KafkaAdminClient|ConsumerCoordinatorTest|KafkaAdminClientTest).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).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"/>
|
|
|
|
|
|
|
|
<!-- 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|TestSslUtils"/>
|
|
|
|
|
|
|
|
<suppress checks="(WhitespaceAround|LocalVariableName|ImportControl|AvoidStarImport)"
|
|
|
|
files="Murmur3Test.java"/>
|
|
|
|
|
|
|
|
<!-- Connect -->
|
|
|
|
<suppress checks="ClassFanOutComplexity"
|
|
|
|
files="(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"/>
|
KAFKA-5142: Add Connect support for message headers (KIP-145)
**[KIP-145](https://cwiki.apache.org/confluence/display/KAFKA/KIP-145+-+Expose+Record+Headers+in+Kafka+Connect) has been accepted, and this PR implements KIP-145 except without the SMTs.**
Changed the Connect API and runtime to support message headers as described in [KIP-145](https://cwiki.apache.org/confluence/display/KAFKA/KIP-145+-+Expose+Record+Headers+in+Kafka+Connect).
The new `Header` interface defines an immutable representation of a Kafka header (key-value pair) with support for the Connect value types and schemas. This interface provides methods for easily converting between many of the built-in primitive, structured, and logical data types.
The new `Headers` interface defines an ordered collection of headers and is used to track all headers associated with a `ConnectRecord` (and thus `SourceRecord` and `SinkRecord`). This does allow multiple headers with the same key. The `Headers` contains methods for adding, removing, finding, and modifying headers. Convenience methods allow connectors and transforms to easily use and modify the headers for a record.
A new `HeaderConverter` interface is also defined to enable the Connect runtime framework to be able to serialize and deserialize headers between the in-memory representation and Kafka’s byte[] representation. A new `SimpleHeaderConverter` implementation has been added, and this serializes to strings and deserializes by inferring the schemas (`Struct` header values are serialized without the schemas, so they can only be deserialized as `Map` instances without a schema.) The `StringConverter`, `JsonConverter`, and `ByteArrayConverter` have all been extended to also be `HeaderConverter` implementations. Each connector can be configured with a different header converter, although by default the `SimpleHeaderConverter` is used to serialize header values as strings without schemas.
Unit and integration tests are added for `ConnectHeader` and `ConnectHeaders`, the two implementation classes for headers. Additional test methods are added for the methods added to the `Converter` implementations. Finally, the `ConnectRecord` object is already used heavily, so only limited tests need to be added while quite a few of the existing tests already cover the changes.
Author: Randall Hauch <rhauch@gmail.com>
Reviewers: Arjun Satish <arjun@confluent.io>, Ted Yu <yuzhihong@gmail.com>, Magesh Nandakumar <magesh.n.kumar@gmail.com>, Konstantine Karantasis <konstantine@confluent.io>, Ewen Cheslack-Postava <ewen@confluent.io>
Closes #4319 from rhauch/kafka-5142-b
7 years ago
|
|
|
<suppress checks="CyclomaticComplexity"
|
|
|
|
files="(ConnectRecord|JsonConverter|Values|ConnectHeader|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)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"/>
|
|
|
|
|
|
|
|
<!-- Streams -->
|
|
|
|
<suppress checks="ClassFanOutComplexity"
|
|
|
|
files="(KafkaStreams|KStreamImpl|KTableImpl).java"/>
|
|
|
|
|
|
|
|
<suppress checks="MethodLength"
|
|
|
|
files="KTableImpl.java"/>
|
|
|
|
|
|
|
|
<suppress checks="ParameterNumber"
|
|
|
|
files="StreamThread.java"/>
|
|
|
|
|
|
|
|
<suppress checks="ClassDataAbstractionCoupling"
|
|
|
|
files="(KStreamImpl|KTableImpl).java"/>
|
|
|
|
|
|
|
|
<suppress checks="CyclomaticComplexity"
|
|
|
|
files="(StreamsPartitionAssignor|StreamThread|TaskManager).java"/>
|
|
|
|
|
|
|
|
<suppress checks="StaticVariableName"
|
|
|
|
files="StreamsMetricsImpl.java"/>
|
|
|
|
|
|
|
|
<suppress checks="NPathComplexity"
|
|
|
|
files="(KafkaStreams|StreamsPartitionAssignor|StreamThread|TaskManager|GlobalStateManagerImpl).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)"
|
KAFKA-8868: Generate SubscriptionInfo protocol message (#7248)
Rather than maintain hand coded protocol serialization code, Streams could use the same code-generation framework as Clients/Core.
There isn't a perfect match, since the code generation framework includes an assumption that you're generating "protocol messages", rather than just arbitrary blobs, but I think it's close enough to justify using it, and improving it over time.
Using the code generation allows us to drop a lot of detail-oriented, brittle, and hard-to-maintain serialization logic in favor of a schema spec.
Reviewers: Colin P. McCabe <cmccabe@apache.org>, Boyang Chen <boyang@confluent.io>, Bill Bejeck <bill@confluent.io>, Guozhang Wang <wangguoz@gmail.com>
5 years ago
|
|
|
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$"/>
|
KAFKA-8868: Generate SubscriptionInfo protocol message (#7248)
Rather than maintain hand coded protocol serialization code, Streams could use the same code-generation framework as Clients/Core.
There isn't a perfect match, since the code generation framework includes an assumption that you're generating "protocol messages", rather than just arbitrary blobs, but I think it's close enough to justify using it, and improving it over time.
Using the code generation allows us to drop a lot of detail-oriented, brittle, and hard-to-maintain serialization logic in favor of a schema spec.
Reviewers: Colin P. McCabe <cmccabe@apache.org>, Boyang Chen <boyang@confluent.io>, Bill Bejeck <bill@confluent.io>, Guozhang Wang <wangguoz@gmail.com>
5 years ago
|
|
|
|
|
|
|
<suppress checks="ImportControl" files="FetchResponseData.java"/>
|
|
|
|
<suppress checks="ImportControl" files="RecordsSerdeTest.java"/>
|
|
|
|
|
|
|
|
<!-- Streams tests -->
|
|
|
|
<suppress checks="ClassFanOutComplexity"
|
|
|
|
files="(StreamThreadTest|StreamTaskTest|TopologyTestDriverTest).java"/>
|
|
|
|
|
|
|
|
<suppress checks="MethodLength"
|
|
|
|
files="(EosBetaUpgradeIntegrationTest|KStreamKStreamJoinTest|RocksDBWindowStoreTest).java"/>
|
|
|
|
|
|
|
|
<suppress checks="ClassDataAbstractionCoupling"
|
|
|
|
files=".*[/\\]streams[/\\].*test[/\\].*.java"/>
|
|
|
|
|
|
|
|
<suppress checks="CyclomaticComplexity"
|
|
|
|
files="(EosBetaUpgradeIntegrationTest|KStreamKStreamJoinTest|KTableKTableForeignKeyJoinIntegrationTest|RocksDBGenericOptionsToDbOptionsColumnFamilyOptionsAdapterTest|RelationalSmokeTest).java"/>
|
|
|
|
|
|
|
|
<suppress checks="JavaNCSS"
|
|
|
|
files="(EosBetaUpgradeIntegrationTest|KStreamKStreamJoinTest|TaskManagerTest).java"/>
|
|
|
|
|
|
|
|
<suppress checks="NPathComplexity"
|
|
|
|
files="(EosBetaUpgradeIntegrationTest|EosTestDriver|KStreamKStreamJoinTest|KTableKTableForeignKeyJoinIntegrationTest|RelationalSmokeTest).java"/>
|
|
|
|
|
|
|
|
<suppress checks="(FinalLocalVariable|WhitespaceAround|LocalVariableName|ImportControl|AvoidStarImport)"
|
|
|
|
files="Murmur3Test.java"/>
|
|
|
|
|
|
|
|
<suppress checks="MethodLength"
|
|
|
|
files="KStreamSlidingWindowAggregateTest.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="SustainedConnectionSpec.java"/>
|
|
|
|
<suppress id="dontUseSystemExit"
|
|
|
|
files="VerifiableConsumer.java"/>
|
|
|
|
<suppress id="dontUseSystemExit"
|
|
|
|
files="VerifiableProducer.java"/>
|
|
|
|
|
|
|
|
<!-- Log4J-Appender -->
|
|
|
|
<suppress checks="CyclomaticComplexity"
|
|
|
|
files="KafkaLog4jAppender.java"/>
|
|
|
|
|
|
|
|
<suppress checks="NPathComplexity"
|
|
|
|
files="KafkaLog4jAppender.java"/>
|
|
|
|
<suppress checks="JavaNCSS"
|
|
|
|
files="RequestResponseTest.java"/>
|
|
|
|
|
|
|
|
</suppressions>
|