Skip to content

test: migrate second extensions-contrib batch to JUnit 5 - #19915

Open
FrankChen021 wants to merge 4 commits into
apache:masterfrom
FrankChen021:codex/junit5-migrate-contrib-batch-2
Open

test: migrate second extensions-contrib batch to JUnit 5#19915
FrankChen021 wants to merge 4 commits into
apache:masterfrom
FrankChen021:codex/junit5-migrate-contrib-batch-2

Conversation

@FrankChen021

Copy link
Copy Markdown
Member

Part of #13948.

Summary

This PR migrates the second independent extensions-contrib batch from JUnit 4 to JUnit 5:

  • moving-average-query
  • aliyun-oss-extensions
  • rabbit-stream-indexing-service
  • opentsdb-emitter

The module POMs remove JUnit 4 and Hamcrest test dependencies, and the test sources use Jupiter annotations, assertions, and parameterization. MovingAverageQueryTest now owns its small no-op scheduler fixture instead of loading the JUnit-4-based QueryStackTests class.

This branch is based directly on master; it does not stack on #19908 and contains no shared SQL/processing fixture changes. It can be merged independently. The shared fixtures are intentionally owned only by #19908.

Related migration PRs: #19908, #19875, #19876, #19877, #19878, #19879, #19880, #19881, and #19882.

Validation

  • test-compile passed for all four modules and their required reactor dependencies.
  • Focused tests passed: moving-average (65), Aliyun OSS (68), Rabbit stream (39), and OpenTSDB (11).
  • Checkstyle passed with 0 violations for all four modules.
  • SpotBugs passed with 0 bugs/errors for all four modules.
  • No JUnit 4 or Hamcrest source imports or direct POM dependencies remain in these modules.
  • git diff --check passed.

Comment on lines +163 to +178
mover.move(new DataSegment(
"test",
Intervals.of("2013-01-01/2013-01-02"),
"1",
ImmutableMap.of(
"key",
"baseKey/test/2013-01-01T00:00:00.000Z_2013-01-02T00:00:00.000Z/1/0/index.zip",
"bucket",
"DOES NOT EXIST"
),
ImmutableList.of("dim1", "dim1"),
ImmutableList.of("metric1", "metric2"),
NoneShardSpec.instance(),
0,
1
), ImmutableMap.of("bucket", "DOES NOT EXIST", "baseKey", "baseKey2"));

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for flagging this. This call predates the JUnit 5 migration; the PR only moved it into an assertThrows lambda. Migrating the deprecated DataSegment constructor to a builder is outside this PR’s scope, so I’m intentionally leaving it unchanged.

Assertions.assertEquals(150000, config.getMaxRowsInMemory());
Assertions.assertEquals(5_000_000, config.getMaxRowsPerSegment().intValue());
Assertions.assertEquals(new Period("PT10M"), config.getIntermediatePersistPeriod());
Assertions.assertEquals(0, config.getMaxPendingPersists());

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for flagging this. This call predates the JUnit 5 migration; this PR only changes Assert to Assertions here. Deprecated API cleanup is outside this PR’s scope, so I’m intentionally leaving it unchanged.

Assertions.assertEquals(100, config.getMaxRowsInMemory());
Assertions.assertEquals(100, config.getMaxRowsPerSegment().intValue());
Assertions.assertEquals(new Period("PT1H"), config.getIntermediatePersistPeriod());
Assertions.assertEquals(100, config.getMaxPendingPersists());

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for flagging this. This call predates the JUnit 5 migration; this PR only changes Assert to Assertions here. Deprecated API cleanup is outside this PR’s scope, so I’m intentionally leaving it unchanged.

Assertions.assertEquals(150000, config.getMaxRowsInMemory());
Assertions.assertEquals(5_000_000, config.getMaxRowsPerSegment().intValue());
Assertions.assertEquals(new Period("PT10M"), config.getIntermediatePersistPeriod());
Assertions.assertEquals(0, config.getMaxPendingPersists());

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for flagging this. This call predates the JUnit 5 migration; this PR only changes Assert to Assertions here. Deprecated API cleanup is outside this PR’s scope, so I’m intentionally leaving it unchanged.

Assertions.assertEquals(100, config.getMaxRowsInMemory());
Assertions.assertEquals(100, config.getMaxRowsPerSegment().intValue());
Assertions.assertEquals(new Period("PT1H"), config.getIntermediatePersistPeriod());
Assertions.assertEquals(100, config.getMaxPendingPersists());

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for flagging this. This call predates the JUnit 5 migration; this PR only changes Assert to Assertions here. Deprecated API cleanup is outside this PR’s scope, so I’m intentionally leaving it unchanged.

@FrankChen021
FrankChen021 marked this pull request as ready for review August 7, 2026 14:05
Copilot AI lite review requested due to automatic review settings August 7, 2026 14:05

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR continues the extensions-contrib JUnit 4 → JUnit 5 migration (part of #13948) by updating tests and module POMs in moving-average-query, aliyun-oss-extensions, rabbit-stream-indexing-service, and opentsdb-emitter to use JUnit Jupiter APIs and removing direct JUnit 4/Hamcrest dependencies from those modules.

Changes:

  • Migrated JUnit 4 annotations/assertions/runners/rules to JUnit Jupiter equivalents across the four contrib modules.
  • Updated module POMs to depend on JUnit Jupiter artifacts and removed direct junit:junit / Hamcrest dependencies where no longer needed.
  • Refactored MovingAverageQueryTest to use JUnit 5 parameterized tests and to avoid loading the JUnit-4-based QueryStackTests fixture.

Reviewed changes

Copilot reviewed 53 out of 53 changed files in this pull request and generated 3 comments.

Show a summary per file
File Description
extensions-contrib/rabbit-stream-indexing-service/src/test/java/org/apache/druid/indexing/rabbitstream/supervisor/RabbitStreamSupervisorTuningConfigTest.java Switch assertions to Jupiter and remove JUnit4 rule usage.
extensions-contrib/rabbit-stream-indexing-service/src/test/java/org/apache/druid/indexing/rabbitstream/supervisor/RabbitStreamSupervisorTest.java Migrate lifecycle annotations and assertions to JUnit 5.
extensions-contrib/rabbit-stream-indexing-service/src/test/java/org/apache/druid/indexing/rabbitstream/supervisor/RabbitStreamSupervisorIOConfigTest.java Replace ExpectedException rule + Hamcrest matchers with assertThrows/Jupiter assertions.
extensions-contrib/rabbit-stream-indexing-service/src/test/java/org/apache/druid/indexing/rabbitstream/RabbitStreamRecordSupplierTest.java Replace JUnit4 lifecycle/Assert APIs with Jupiter equivalents.
extensions-contrib/rabbit-stream-indexing-service/src/test/java/org/apache/druid/indexing/rabbitstream/RabbitStreamIndexTaskTuningConfigTest.java Remove JUnit4 ExpectedException rule and migrate to Jupiter assertions.
extensions-contrib/rabbit-stream-indexing-service/src/test/java/org/apache/druid/indexing/rabbitstream/RabbitStreamIndexTaskIOConfigTest.java Migrate JUnit 4 assertions to Jupiter assertions.
extensions-contrib/rabbit-stream-indexing-service/pom.xml Add Jupiter deps; remove direct JUnit4 + Hamcrest test deps.
extensions-contrib/opentsdb-emitter/src/test/java/org/apache/druid/emitter/opentsdb/OpentsdbSenderTest.java Migrate to Jupiter assertions.
extensions-contrib/opentsdb-emitter/src/test/java/org/apache/druid/emitter/opentsdb/OpentsdbEventTest.java Migrate lifecycle + assertions to JUnit 5.
extensions-contrib/opentsdb-emitter/src/test/java/org/apache/druid/emitter/opentsdb/OpentsdbEmitterConfigTest.java Migrate lifecycle + assertions to JUnit 5.
extensions-contrib/opentsdb-emitter/src/test/java/org/apache/druid/emitter/opentsdb/EventConverterTest.java Migrate lifecycle + assertions to JUnit 5.
extensions-contrib/opentsdb-emitter/pom.xml Add Jupiter deps; remove direct JUnit4 dependency.
extensions-contrib/moving-average-query/src/test/java/org/apache/druid/query/movingaverage/RowBucketIterableTest.java Migrate JUnit4 annotations/assertions to Jupiter equivalents.
extensions-contrib/moving-average-query/src/test/java/org/apache/druid/query/movingaverage/PostAveragerAggregatorCalculatorTest.java Migrate lifecycle + assertions to Jupiter equivalents.
extensions-contrib/moving-average-query/src/test/java/org/apache/druid/query/movingaverage/MovingAverageQueryTest.java Replace JUnit4 parameterized runner with JUnit 5 parameterized test + local noop scheduler fixture.
extensions-contrib/moving-average-query/src/test/java/org/apache/druid/query/movingaverage/MovingAverageIterableTest.java Remove Hamcrest usage and switch to Jupiter assertions.
extensions-contrib/moving-average-query/src/test/java/org/apache/druid/query/movingaverage/averagers/LongSumAveragerTest.java Migrate JUnit4 asserts to Jupiter.
extensions-contrib/moving-average-query/src/test/java/org/apache/druid/query/movingaverage/averagers/LongSumAveragerFactoryTest.java Replace Hamcrest type assertion with Assertions.assertInstanceOf.
extensions-contrib/moving-average-query/src/test/java/org/apache/druid/query/movingaverage/averagers/LongMinAveragerTest.java Migrate JUnit4 asserts to Jupiter.
extensions-contrib/moving-average-query/src/test/java/org/apache/druid/query/movingaverage/averagers/LongMinAveragerFactoryTest.java Replace Hamcrest type assertion with Assertions.assertInstanceOf.
extensions-contrib/moving-average-query/src/test/java/org/apache/druid/query/movingaverage/averagers/LongMeanNoNullAveragerTest.java Migrate JUnit4 asserts to Jupiter.
extensions-contrib/moving-average-query/src/test/java/org/apache/druid/query/movingaverage/averagers/LongMeanNoNullAveragerFactoryTest.java Replace Hamcrest type assertion with Assertions.assertInstanceOf.
extensions-contrib/moving-average-query/src/test/java/org/apache/druid/query/movingaverage/averagers/LongMeanAveragerTest.java Migrate JUnit4 asserts to Jupiter.
extensions-contrib/moving-average-query/src/test/java/org/apache/druid/query/movingaverage/averagers/LongMeanAveragerFactoryTest.java Replace Hamcrest type assertion with Assertions.assertInstanceOf.
extensions-contrib/moving-average-query/src/test/java/org/apache/druid/query/movingaverage/averagers/LongMaxAveragerTest.java Migrate JUnit4 asserts to Jupiter.
extensions-contrib/moving-average-query/src/test/java/org/apache/druid/query/movingaverage/averagers/LongMaxAveragerFactoryTest.java Replace Hamcrest type assertion with Assertions.assertInstanceOf.
extensions-contrib/moving-average-query/src/test/java/org/apache/druid/query/movingaverage/averagers/DoubleSumAveragerTest.java Migrate JUnit4 asserts to Jupiter.
extensions-contrib/moving-average-query/src/test/java/org/apache/druid/query/movingaverage/averagers/DoubleSumAveragerFactoryTest.java Replace Hamcrest type assertion with Assertions.assertInstanceOf.
extensions-contrib/moving-average-query/src/test/java/org/apache/druid/query/movingaverage/averagers/DoubleMinAveragerTest.java Migrate JUnit4 asserts to Jupiter.
extensions-contrib/moving-average-query/src/test/java/org/apache/druid/query/movingaverage/averagers/DoubleMinAveragerFactoryTest.java Replace Hamcrest type assertion with Assertions.assertInstanceOf.
extensions-contrib/moving-average-query/src/test/java/org/apache/druid/query/movingaverage/averagers/DoubleMeanNoNullAveragerTest.java Migrate JUnit4 asserts to Jupiter.
extensions-contrib/moving-average-query/src/test/java/org/apache/druid/query/movingaverage/averagers/DoubleMeanNoNullAveragerFactoryTest.java Replace Hamcrest type assertion with Assertions.assertInstanceOf.
extensions-contrib/moving-average-query/src/test/java/org/apache/druid/query/movingaverage/averagers/DoubleMeanAveragerWithPeriodTest.java Migrate JUnit4 asserts to Jupiter.
extensions-contrib/moving-average-query/src/test/java/org/apache/druid/query/movingaverage/averagers/DoubleMeanAveragerTest.java Migrate JUnit4 asserts to Jupiter.
extensions-contrib/moving-average-query/src/test/java/org/apache/druid/query/movingaverage/averagers/DoubleMeanAveragerFactoryTest.java Replace Hamcrest type assertion with Assertions.assertInstanceOf.
extensions-contrib/moving-average-query/src/test/java/org/apache/druid/query/movingaverage/averagers/DoubleMaxAveragerTest.java Migrate JUnit4 asserts to Jupiter.
extensions-contrib/moving-average-query/src/test/java/org/apache/druid/query/movingaverage/averagers/DoubleMaxAveragerFactoryTest.java Replace Hamcrest type assertion with Assertions.assertInstanceOf.
extensions-contrib/moving-average-query/src/test/java/org/apache/druid/query/movingaverage/averagers/BaseAveragerTest.java Migrate JUnit4 asserts to Jupiter.
extensions-contrib/moving-average-query/src/test/java/org/apache/druid/query/movingaverage/averagers/BaseAveragerFactoryTest.java Migrate lifecycle + asserts to Jupiter.
extensions-contrib/moving-average-query/src/test/java/org/apache/druid/query/movingaverage/averagers/AveragerFactoryWrapperTest.java Migrate JUnit4 asserts to Jupiter.
extensions-contrib/moving-average-query/pom.xml Add Jupiter deps; remove direct JUnit4 + Hamcrest test deps.
extensions-contrib/aliyun-oss-extensions/src/test/java/org/apache/druid/storage/aliyun/OssTimestampVersionedDataFinderTest.java Replace JUnit4 asserts with Jupiter asserts.
extensions-contrib/aliyun-oss-extensions/src/test/java/org/apache/druid/storage/aliyun/OssTaskLogsTest.java Migrate off TemporaryFolder rule to @TempDir and switch to Jupiter assertions; migrate EasyMock runner to extension.
extensions-contrib/aliyun-oss-extensions/src/test/java/org/apache/druid/storage/aliyun/OssStorageDruidModuleTest.java Migrate JUnit4 assertions to Jupiter.
extensions-contrib/aliyun-oss-extensions/src/test/java/org/apache/druid/storage/aliyun/OssObjectSummaryIteratorTest.java Migrate JUnit4 assertions to Jupiter.
extensions-contrib/aliyun-oss-extensions/src/test/java/org/apache/druid/storage/aliyun/OssDataSegmentPusherTest.java Replace TemporaryFolder rule with @TempDir and migrate assertions to Jupiter.
extensions-contrib/aliyun-oss-extensions/src/test/java/org/apache/druid/storage/aliyun/OssDataSegmentPusherConfigTest.java Migrate JUnit4 assertions to Jupiter.
extensions-contrib/aliyun-oss-extensions/src/test/java/org/apache/druid/storage/aliyun/OssDataSegmentPullerTest.java Replace TemporaryFolder rule with @TempDir and migrate assertions to Jupiter.
extensions-contrib/aliyun-oss-extensions/src/test/java/org/apache/druid/storage/aliyun/OssDataSegmentMoverTest.java Replace expected= JUnit4 tests with assertThrows and migrate assertions to Jupiter.
extensions-contrib/aliyun-oss-extensions/src/test/java/org/apache/druid/storage/aliyun/OssDataSegmentKillerTest.java Migrate EasyMock runner to JUnit 5 extension and convert assertions to Jupiter.
extensions-contrib/aliyun-oss-extensions/src/test/java/org/apache/druid/storage/aliyun/OssDataSegmentArchiverTest.java Migrate lifecycle + assertions to Jupiter.
extensions-contrib/aliyun-oss-extensions/src/test/java/org/apache/druid/data/input/aliyun/OssInputSourceTest.java Replace TemporaryFolder/ExpectedException rules with @TempDir + assertThrows, migrate assertions to Jupiter, and add a small folder helper.
extensions-contrib/aliyun-oss-extensions/pom.xml Add Jupiter deps; remove direct JUnit4 + Hamcrest deps.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@FrankChen021 FrankChen021 left a comment

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I have reviewed the code for correctness, edge cases, concurrency, and integration risks; no issues found.

Reviewed 53 of 53 changed files.


This is an automated review by Codex GPT-5.6-Luna(max)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants