|
|
|
|
|
|
|
|
|
|
|
<!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).java"/>
|
|
|
|
<suppress checks="JavaNCSS"
|
|
|
|
files="(ApiMessageType).java|MessageDataGenerator.java"/>
|
|
|
|
<suppress checks="MethodLength"
|
|
|
|
files="MessageDataGenerator.java"/>
|
|
|
|
|
|
|
|
<!-- Clients -->
|
|
|
|
<suppress checks="ClassFanOutComplexity"
|
|
|
|
files="(Fetcher|Sender|SenderTest|ConsumerCoordinator|KafkaConsumer|KafkaProducer|Utils|TransactionManager|TransactionManagerTest|KafkaAdminClient|NetworkClient|Admin).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.java|FieldSpec.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"
|
KAFKA-8820: kafka-reassign-partitions.sh should support the KIP-455 API (#8244)
Rewrite ReassignPartitionsCommand to use the KIP-455 API when possible, rather
than direct communication with ZooKeeper. Direct ZK access is still supported,
but deprecated, as described in KIP-455.
As specified in KIP-455, the tool has several new flags. --cancel stops
an assignment which is in progress. --preserve-throttle causes the
--verify and --cancel commands to leave the throttles alone.
--additional allows users to execute another partition assignment even
if there is already one in progress. Finally, --show displays all of
the current partition reassignments.
Reorganize the reassignment code and tests somewhat to rely more on unit
testing using the MockAdminClient and less on integration testing. Each
integration test where we bring up a cluster seems to take about 5 seconds, so
it's good when we can get similar coverage from unit tests. To enable this,
MockAdminClient now supports incrementalAlterConfigs, alterReplicaLogDirs,
describeReplicaLogDirs, and some other APIs. MockAdminClient is also now
thread-safe, to match the real AdminClient implementation.
In DeleteTopicTest, use the KIP-455 API rather than invoking the reassignment
command.
5 years ago
|
|
|
files="(KafkaConsumer|ConsumerCoordinator|Fetcher|KafkaProducer|AbstractRequest|AbstractResponse|TransactionManager|Admin|KafkaAdminClient|MockAdminClient).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).java"/>
|
|
|
|
|
|
|
|
<suppress checks="JavaNCSS"
|
|
|
|
files="(AbstractRequest|AbstractResponse|KerberosLogin|WorkerSinkTaskTest|TransactionManagerTest|SenderTest|KafkaAdminClient|ConsumerCoordinatorTest).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).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)"
|
|
|
|
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"/>
|
|
|
|
|
|
|
|
<suppress checks="NPathComplexity"
|
|
|
|
files="MemoryRecordsTest|MetricsTest"/>
|
|
|
|
|
|
|
|
<suppress checks="(WhitespaceAround|LocalVariableName|ImportControl|AvoidStarImport)"
|
|
|
|
files="Murmur3Test.java"/>
|
|
|
|
|
|
|
|
<!-- Connect -->
|
|
|
|
<suppress checks="ClassFanOutComplexity"
|
|
|
|
files="(DistributedHerder|Worker).java"/>
|
|
|
|
|
|
|
|
<suppress checks="MethodLength"
|
|
|
|
files="(KafkaConfigBackingStore|Values).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="(TopologyBuilder|KafkaStreams|KStreamImpl|KTableImpl|StreamThread|StreamTask).java"/>
|
|
|
|
|
|
|
|
<suppress checks="MethodLength"
|
|
|
|
files="(KTableImpl|StreamsPartitionAssignor|EosBetaUpgradeIntegrationTest).java"/>
|
|
|
|
|
|
|
|
<suppress checks="ParameterNumber"
|
|
|
|
files="StreamTask.java"/>
|
|
|
|
<suppress checks="ParameterNumber"
|
|
|
|
files="StreamThread.java"/>
|
|
|
|
<suppress checks="ParameterNumber"
|
|
|
|
files="RocksDBWindowStoreSupplier.java"/>
|
|
|
|
|
|
|
|
<suppress checks="ClassDataAbstractionCoupling"
|
|
|
|
files="(TopologyBuilder|KStreamImpl|StreamsPartitionAssignor|KafkaStreams|KTableImpl).java"/>
|
|
|
|
|
|
|
|
<suppress checks="CyclomaticComplexity"
|
|
|
|
files="TopologyBuilder.java"/>
|
|
|
|
<suppress checks="CyclomaticComplexity"
|
|
|
|
files="StreamsPartitionAssignor.java"/>
|
|
|
|
<suppress checks="CyclomaticComplexity"
|
|
|
|
files="StreamThread.java"/>
|
|
|
|
<suppress checks="CyclomaticComplexity"
|
|
|
|
files="TaskManager.java"/>
|
|
|
|
<suppress checks="CyclomaticComplexity"
|
|
|
|
files="EosBetaUpgradeIntegrationTest.java"/>
|
|
|
|
|
|
|
|
<suppress checks="JavaNCSS"
|
|
|
|
files="StreamsPartitionAssignor.java"/>
|
|
|
|
<suppress checks="JavaNCSS"
|
|
|
|
files="EosBetaUpgradeIntegrationTest.java"/>
|
|
|
|
<suppress checks="StaticVariableName"
|
|
|
|
files="StreamsMetricsImpl.java"/>
|
|
|
|
|
|
|
|
<suppress checks="NPathComplexity"
|
|
|
|
files="(AssignorConfiguration|EosBetaUpgradeIntegrationTest|InternalTopologyBuilder|KafkaStreams|ProcessorStateManager|StreamsPartitionAssignor|StreamThread|TaskManager).java"/>
|
|
|
|
|
|
|
|
<suppress checks="(FinalLocalVariable|UnnecessaryParentheses|BooleanExpressionComplexity|CyclomaticComplexity|WhitespaceAfter|LocalVariableName)"
|
|
|
|
files="Murmur3.java"/>
|
|
|
|
|
|
|
|
<!-- suppress FinalLocalVariable outside of the streams package. -->
|
|
|
|
<suppress checks="FinalLocalVariable"
|
|
|
|
files="^(?!.*[\\/]org[\\/]apache[\\/]kafka[\\/]streams[\\/].*$)"/>
|
|
|
|
|
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
|
|
|
<!-- generated code -->
|
|
|
|
<suppress checks="(NPathComplexity|ClassFanOutComplexity|CyclomaticComplexity|ClassDataAbstractionCoupling|FinalLocalVariable|LocalVariableName|MemberName|ParameterName|MethodLength|JavaNCSS)"
|
|
|
|
files="streams[\\/]src[\\/](generated|generated-test)[\\/].+.java$"/>
|
|
|
|
|
|
|
|
|
|
|
|
<!-- Streams tests -->
|
|
|
|
<suppress checks="ClassFanOutComplexity"
|
|
|
|
files="(StreamThreadTest|StreamTaskTest|ProcessorTopologyTestDriver).java"/>
|
|
|
|
|
|
|
|
<suppress checks="MethodLength"
|
|
|
|
files="KStreamKTableJoinIntegrationTest.java"/>
|
|
|
|
<suppress checks="MethodLength"
|
|
|
|
files="KStreamKStreamJoinTest.java"/>
|
|
|
|
<suppress checks="MethodLength"
|
|
|
|
files="KStreamWindowAggregateTest.java"/>
|
|
|
|
<suppress checks="MethodLength"
|
|
|
|
files="RocksDBWindowStoreTest.java"/>
|
|
|
|
|
|
|
|
<suppress checks="ClassDataAbstractionCoupling"
|
|
|
|
files=".*[/\\]streams[/\\].*test[/\\].*.java"/>
|
|
|
|
|
|
|
|
<suppress checks="BooleanExpressionComplexity"
|
|
|
|
files="SmokeTestDriver.java"/>
|
|
|
|
|
|
|
|
<suppress checks="CyclomaticComplexity"
|
|
|
|
files="KStreamKStreamJoinTest.java|KTableKTableForeignKeyJoinIntegrationTest.java"/>
|
|
|
|
<suppress checks="CyclomaticComplexity"
|
|
|
|
files="RelationalSmokeTest.java|SmokeTestDriver.java"/>
|
|
|
|
<suppress checks="CyclomaticComplexity"
|
|
|
|
files="RocksDBGenericOptionsToDbOptionsColumnFamilyOptionsAdapterTest.java"/>
|
|
|
|
|
|
|
|
<suppress checks="JavaNCSS"
|
|
|
|
files="KStreamKStreamJoinTest.java"/>
|
|
|
|
<suppress checks="JavaNCSS"
|
|
|
|
files="SmokeTestDriver.java"/>
|
|
|
|
|
|
|
|
<suppress checks="NPathComplexity"
|
|
|
|
files="EosTestDriver|KStreamKStreamJoinTest.java|RelationalSmokeTest.java|SmokeTestDriver.java|KStreamKStreamLeftJoinTest.java|KTableKTableForeignKeyJoinIntegrationTest.java"/>
|
|
|
|
|
|
|
|
<suppress checks="(FinalLocalVariable|WhitespaceAround|LocalVariableName|ImportControl|AvoidStarImport)"
|
|
|
|
files="Murmur3Test.java"/>
|
|
|
|
|
|
|
|
|
|
|
|
<!-- Streams Test-Utils -->
|
|
|
|
<suppress checks="ClassFanOutComplexity"
|
|
|
|
files="TopologyTestDriver.java"/>
|
|
|
|
<suppress checks="ClassDataAbstractionCoupling"
|
|
|
|
files="TopologyTestDriver.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"/>
|
|
|
|
|
|
|
|
<!-- Log4J-Appender -->
|
|
|
|
<suppress checks="CyclomaticComplexity"
|
|
|
|
files="KafkaLog4jAppender.java"/>
|
|
|
|
|
|
|
|
<suppress checks="NPathComplexity"
|
|
|
|
files="KafkaLog4jAppender.java"/>
|
|
|
|
<suppress checks="JavaNCSS"
|
|
|
|
files="RequestResponseTest.java"/>
|
|
|
|
|
|
|
|
</suppressions>
|