test: migrate extension-core google kafka and lookup tests to JUnit 5 - #19878
Conversation
FrankChen021
left a comment
There was a problem hiding this comment.
| Severity | Findings |
|---|---|
| P0 | 0 |
| P1 | 1 |
| P2 | 0 |
| P3 | 0 |
| Total | 1 |
| Severity | Findings |
|---|---|
| P0 | 0 |
| P1 | 1 |
| P2 | 0 |
| P3 | 0 |
| Total | 1 |
Reviewed 52 of 52 changed files.
This is an automated review by Codex GPT-5.6-Sol
FrankChen021
left a comment
There was a problem hiding this comment.
I have reviewed the updated code for correctness, edge cases, concurrency, and integration risks; no issues found.
Reviewed 52 of 52 changed files. The prior test-discovery finding is resolved: all 70 KafkaSupervisorTest methods again have Jupiter @Test annotations.
This is an automated review by Codex GPT-5.6-Sol
There was a problem hiding this comment.
CodeQL found more than 20 potential problems in the proposed changes. Check the Files changed tab for more details.
There was a problem hiding this comment.
Pull request overview
This PR migrates unit tests in the extensions-core/google-extensions, extensions-core/kafka-indexing-service, and extensions-core/lookups-cached-global modules from JUnit 4 to JUnit 5 (Jupiter), updating lifecycle hooks, parameterized tests, exception assertions, and temp-directory handling while preserving existing test behavior (including Derby-backed JDBC lookup coverage).
Changes:
- Convert JUnit 4 annotations/rules/runners (e.g.,
@Before/@After,TemporaryFolder,@RunWith(Parameterized.class),ExpectedException) to JUnit 5 equivalents (@BeforeEach/@AfterEach,@TempDir,@ParameterizedTest+@MethodSource,assertThrows,@Timeout). - Adjust test fixtures to work under Jupiter (e.g., custom Derby extension, temp-dir helpers using
FileUtils.createTempDirInLocation). - Update module POMs to depend on JUnit Jupiter artifacts needed by migrated tests.
Reviewed changes
Copilot reviewed 52 out of 52 changed files in this pull request and generated 2 comments.
Show a summary per file
| File | Description |
|---|---|
| extensions-core/lookups-cached-global/src/test/java/org/apache/druid/server/lookup/namespace/UriCacheGeneratorTest.java | Migrate parameterized/cache generator tests to JUnit 5 with @TempDir, @ParameterizedTest, and @Timeout. |
| extensions-core/lookups-cached-global/src/test/java/org/apache/druid/server/lookup/namespace/StaticMapCacheGeneratorTest.java | Convert assertions and expected-exception test to assertThrows under Jupiter. |
| extensions-core/lookups-cached-global/src/test/java/org/apache/druid/server/lookup/namespace/NamespacedExtractorModuleTest.java | Replace TemporaryFolder with @TempDir and update assertions to Jupiter. |
| extensions-core/lookups-cached-global/src/test/java/org/apache/druid/server/lookup/namespace/JdbcCacheGeneratorTest.java | Migrate ExpectedException usage to assertThrows + message checks. |
| extensions-core/lookups-cached-global/src/test/java/org/apache/druid/server/lookup/namespace/cache/OnHeapNamespaceExtractionCacheManagerTest.java | Switch to Jupiter assertions (including Assertions.assertThrows). |
| extensions-core/lookups-cached-global/src/test/java/org/apache/druid/server/lookup/namespace/cache/OffHeapNamespaceExtractionCacheManagerTest.java | Switch to Jupiter assertions. |
| extensions-core/lookups-cached-global/src/test/java/org/apache/druid/server/lookup/namespace/cache/NamespaceExtractionCacheManagersTest.java | Convert parameterized cache-manager tests to @ParameterizedTest + @MethodSource with Jupiter timeouts. |
| extensions-core/lookups-cached-global/src/test/java/org/apache/druid/server/lookup/namespace/cache/JdbcExtractionNamespaceTest.java | Migrate Derby-backed JDBC namespace tests to Jupiter; introduce a per-test Derby extension and Jupiter parameterization. |
| extensions-core/lookups-cached-global/src/test/java/org/apache/druid/server/lookup/namespace/cache/CacheSchedulerTest.java | Convert cache scheduler parameterized tests to JUnit 5 with @TempDir and @ParameterizedTest. |
| extensions-core/lookups-cached-global/src/test/java/org/apache/druid/query/lookup/NamespaceLookupExtractorFactoryTest.java | Convert temp-folder use to @TempDir and migrate assertions/expected exceptions to Jupiter. |
| extensions-core/lookups-cached-global/src/test/java/org/apache/druid/query/lookup/namespace/UriExtractionNamespaceTest.java | Convert expected-exception tests to assertThrows and update assertions to Jupiter. |
| extensions-core/lookups-cached-global/src/test/java/org/apache/druid/query/lookup/namespace/StaticMapExtractionNamespaceTest.java | Replace @BeforeClass with @BeforeAll and migrate assertions to Jupiter. |
| extensions-core/lookups-cached-global/src/test/java/org/apache/druid/query/lookup/namespace/JSONFlatDataParserTest.java | Replace TemporaryFolder/ExpectedException with @TempDir + assertThrows and migrate assertions. |
| extensions-core/lookups-cached-global/src/test/java/org/apache/druid/query/lookup/namespace/JdbcExtractionNamespaceUrlCheckTest.java | Convert nested rule-based tests to Jupiter @Nested classes and assertThrows. |
| extensions-core/lookups-cached-global/src/test/java/org/apache/druid/query/lookup/LookupUtilsTest.java | Update lifecycle annotation and assertions to Jupiter. |
| extensions-core/lookups-cached-global/src/test/java/org/apache/druid/data/input/MapPopulatorTest.java | Switch assertions to Jupiter. |
| extensions-core/lookups-cached-global/pom.xml | Replace JUnit 4 dependency with JUnit Jupiter test dependencies. |
| extensions-core/kafka-indexing-service/src/test/java/org/apache/druid/indexing/kafka/supervisor/KafkaSupervisorTuningConfigTest.java | Migrate assertions to Jupiter. |
| extensions-core/kafka-indexing-service/src/test/java/org/apache/druid/indexing/kafka/supervisor/KafkaSupervisorSpecTest.java | Switch to Jupiter assertions while keeping Hamcrest assertThat; migrate assertThrows. |
| extensions-core/kafka-indexing-service/src/test/java/org/apache/druid/indexing/kafka/KafkaSeekableStreamStartSequenceNumbersTest.java | Migrate assertions to Jupiter and preserve serde/back-compat checks. |
| extensions-core/kafka-indexing-service/src/test/java/org/apache/druid/indexing/kafka/KafkaSeekableStreamEndSequenceNumbersTest.java | Migrate assertions to Jupiter and preserve serde/back-compat checks. |
| extensions-core/kafka-indexing-service/src/test/java/org/apache/druid/indexing/kafka/KafkaSamplerSpecTest.java | Convert class lifecycle annotations to @BeforeAll/@AfterAll and replace ExpectedException with assertThrows. |
| extensions-core/kafka-indexing-service/src/test/java/org/apache/druid/indexing/kafka/KafkaRecordSupplierTest.java | Convert lifecycle hooks to Jupiter and migrate exception tests to assertThrows. |
| extensions-core/kafka-indexing-service/src/test/java/org/apache/druid/indexing/kafka/KafkaIOConfigTest.java | Replace ExpectedException with a Jupiter helper around JsonMappingException assertions. |
| extensions-core/kafka-indexing-service/src/test/java/org/apache/druid/indexing/kafka/KafkaIndexTaskTuningConfigTest.java | Migrate assertions to Jupiter and preserve serde behavior coverage. |
| extensions-core/kafka-indexing-service/src/test/java/org/apache/druid/indexing/kafka/KafkaCheckpointDataSourceMetadataSerdeTest.java | Convert @Before to @BeforeEach and migrate assertions to Jupiter. |
| extensions-core/kafka-indexing-service/src/test/java/org/apache/druid/data/input/kafkainput/KafkaStringHeaderFormatTest.java | Migrate assertions to Jupiter. |
| extensions-core/kafka-indexing-service/src/test/java/org/apache/druid/data/input/kafkainput/KafkaInputFormatTest.java | Convert setup to @BeforeEach and migrate assertions/throws checks to Jupiter. |
| extensions-core/kafka-indexing-service/src/test/java/org/apache/druid/data/input/kafka/KafkaTopicPartitionTest.java | Convert setup to @BeforeEach and migrate assertions to Jupiter. |
| extensions-core/kafka-indexing-service/pom.xml | Add JUnit Jupiter dependencies and drop Vintage engine for this module. |
| extensions-core/google-extensions/src/test/java/org/apache/druid/storage/google/output/GoogleStorageConnectorTest.java | Migrate to Jupiter and replace TemporaryFolder with @TempDir + helper folder creation. |
| extensions-core/google-extensions/src/test/java/org/apache/druid/storage/google/output/GoogleStorageConnectorProviderTest.java | Migrate assertions and expected exceptions to Jupiter. |
| extensions-core/google-extensions/src/test/java/org/apache/druid/storage/google/output/GoogleOutputConfigTest.java | Replace TemporaryFolder rule with @TempDir and migrate assertThrows usage to Jupiter. |
| extensions-core/google-extensions/src/test/java/org/apache/druid/storage/google/output/GoogleInputRangeTest.java | Switch to Jupiter @Test. |
| extensions-core/google-extensions/src/test/java/org/apache/druid/storage/google/output/GoogleExportStorageProviderTest.java | Migrate assertions and exception checks to Jupiter. |
| extensions-core/google-extensions/src/test/java/org/apache/druid/storage/google/ObjectStorageIteratorTest.java | Migrate assertions to Jupiter. |
| extensions-core/google-extensions/src/test/java/org/apache/druid/storage/google/GoogleUtilsTest.java | Migrate retryability assertions to Jupiter. |
| extensions-core/google-extensions/src/test/java/org/apache/druid/storage/google/GoogleTimestampVersionedDataFinderTest.java | Migrate assertions to Jupiter. |
| extensions-core/google-extensions/src/test/java/org/apache/druid/storage/google/GoogleTaskLogsTest.java | Convert setup to @BeforeEach and migrate assertions to Jupiter. |
| extensions-core/google-extensions/src/test/java/org/apache/druid/storage/google/GoogleStorageTest.java | Convert setup to @BeforeEach and migrate assertions/static imports to Jupiter. |
| extensions-core/google-extensions/src/test/java/org/apache/druid/storage/google/GoogleStorageDruidModuleTest.java | Migrate assertions to Jupiter. |
| extensions-core/google-extensions/src/test/java/org/apache/druid/storage/google/GoogleDataSegmentPusherTest.java | Replace TemporaryFolder rule with @TempDir and migrate assertions to Jupiter. |
| extensions-core/google-extensions/src/test/java/org/apache/druid/storage/google/GoogleDataSegmentPullerTest.java | Convert expected-exception style to assertThrows and migrate assertions to Jupiter. |
| extensions-core/google-extensions/src/test/java/org/apache/druid/storage/google/GoogleDataSegmentKillerTest.java | Convert setup to @BeforeEach and migrate exception assertions to Jupiter. |
| extensions-core/google-extensions/src/test/java/org/apache/druid/storage/google/GoogleByteSourceTest.java | Convert expected-exception test to assertThrows under Jupiter. |
| extensions-core/google-extensions/src/test/java/org/apache/druid/data/input/google/GoogleCloudStorageInputSourceTest.java | Replace ExpectedException rule with assertThrows and migrate assertions to Jupiter. |
| extensions-core/google-extensions/src/test/java/org/apache/druid/data/input/google/GoogleCloudStorageInputSourceFactoryTest.java | Convert expected-exception test to assertThrows and migrate assertions to Jupiter. |
| extensions-core/google-extensions/pom.xml | Replace JUnit 4 dependency with JUnit Jupiter test dependencies. |
Suppressed comments (1)
extensions-core/lookups-cached-global/src/test/java/org/apache/druid/server/lookup/namespace/JdbcCacheGeneratorTest.java:105
- Code style: AGENTS.md requires using
finalfor locals that are not reassigned. These new locals can befinalto match the project convention.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Description
Migrates the Google extensions, Kafka indexing service, and cached-global lookup extension tests from JUnit 4 to JUnit 5.
This is part of #13948 and follows #19875, #19876, and #19877.
The migration preserves parameterized-test setup and per-test lifecycle behavior, including the Derby-backed JDBC lookup tests and temporary-file fixtures.
Modules
extensions-core/google-extensionsextensions-core/kafka-indexing-serviceextensions-core/lookups-cached-globalTransitional dependency
The migrated Kafka test class is Jupiter-only. Its module temporarily retains
junit:junitbecause the sharedindexing-servicetest-jar superclass still exposes JUnit 4TemporaryFolderand Derby rule types. That shared stream-ingestion fixture will be removed in the coordinated Kinesis/Kafka follow-up.Testing
mvn -ntp -pl extensions-core/kafka-indexing-service -am -DskipTests -Dweb.console.skip=true -Pskip-static-checks -T1C test-compile:BUILD SUCCESS.KafkaIndexTaskTest#testKafkaTaskContainsAllTaskDimensions: 2 parameterized invocations passed after restoring the sharedCliPeonTestfixture.FileTaskLogspayload-provisioning error. A subsequent full rerun was blocked locally because Testcontainers could not find Docker.git diff --checkpassed.