sjhajharia opened a new pull request, #22350: URL: https://github.com/apache/kafka/pull/22350
### Description: `GroupMetadataManagerTest.java` had grown to **27,879 lines / 406 `@Test` methods**, testing four distinct group types (Classic, Consumer/KIP-848, Share/KIP-932, Streams/KIP-1071) plus cross-cutting concerns in a single file. This made the file slow to navigate, prone to merge conflicts between teams, and left contributors with no clear rule for where new tests should land. ### What changed The file is split, by group type, into five files in the same package: - `GroupMetadataManagerTest` (residual) | 39 tests | Group-type-agnostic: list/describe, metadata-image plumbing, dynamic config wiring, cross-type rejection - `GroupMetadataManagerConsumerGroupTest` | 127 tests | KIP-848 consumer-group heartbeat/reconciliation/regex/replay, classic↔consumer migration paths - `GroupMetadataManagerClassicGroupTest` | 130 tests | Classic protocol join/sync/heartbeat/leave, static membership, rebalance/session timeouts - `GroupMetadataManagerShareGroupTest` | 41 tests | KIP-932 share-group heartbeat, init/delete, offset deletion, replay - `GroupMetadataManagerStreamsGroupTest` | 69 tests | KIP-1071 streams-group heartbeat, topology, task assignment, replay Each new class has a Javadoc stating its scope so future contributors can pick a destination by reading one sentence: **a test goes into the file matching the group type whose operation it exercises**; genuinely cross-cutting tests go in the residual `GroupMetadataManagerTest`. The shared `GroupMetadataManagerTestContext` is unchanged. No production code is changed. No tests are renamed, deleted, or modified — every `@Test` is moved byte-identically into its new home. Helpers that were only used by a single bucket move with their callers; nothing required promotion to `TestContext` (verified via call-site analysis). `checkstyle/suppressions.xml` was updated to add the four new file names alongside the existing `GroupMetadataManagerTest` entry (the new files inherit the same `NPathComplexity`, `MethodLength`, `ClassFanOutComplexity`, `ClassDataAbstractionCoupling`, `JavaNCSS` suppressions the original already had). -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
