test: migrate extensions-contrib tests to JUnit 5 - #19908
Conversation
There was a problem hiding this comment.
Pull request overview
Warning
Copilot couldn't run its full agentic review because it didn't start before the timeout. Make sure your repository has a runner available, or add a copilot-code-review.yml file specifying one with the runs-on attribute. See the docs for more details.
Migrates remaining extensions-contrib test suites from JUnit 4 to JUnit 5 (Jupiter), updating test code and module POMs to remove legacy JUnit 4/Vintage/Hamcrest/JUnitParams usage where possible.
Changes:
- Updated Java test sources to use JUnit Jupiter annotations/assertions (including parameterized tests and exception assertions).
- Updated module POMs to add JUnit Jupiter dependencies and remove JUnit 4 / Vintage / JUnitParams / unnecessary Hamcrest dependencies.
- Introduced a small JUnit 5 helper (
DeltaAssertions) to replace Hamcrest-based DruidException matchers in Delta Lake tests.
Reviewed changes
Copilot reviewed 202 out of 202 changed files in this pull request and generated 2 comments.
Show a summary per file
| File | Description |
|---|---|
| extensions-contrib/virtual-columns/src/test/java/org/apache/druid/segment/MapVirtualColumnTopNTest.java | Migrates TopN tests from JUnit 4 rules to JUnit 5 assertions. |
| extensions-contrib/virtual-columns/src/test/java/org/apache/druid/segment/MapVirtualColumnGroupByTest.java | Migrates GroupBy tests from JUnit 4 lifecycle/assertions to JUnit 5. |
| extensions-contrib/virtual-columns/pom.xml | Adds JUnit Jupiter deps; removes JUnit 4 dependency. |
| extensions-contrib/time-min-max/src/test/java/org/apache/druid/query/aggregation/TimestampMinMaxAggregatorTest.java | Migrates parameterized tests from JUnit 4 runner to JUnit 5 @ParameterizedTest. |
| extensions-contrib/time-min-max/src/test/java/org/apache/druid/query/aggregation/TimestampMinMaxAggregatorFactoryTest.java | Migrates assertions/imports to JUnit 5. |
| extensions-contrib/time-min-max/pom.xml | Adds JUnit Jupiter deps; removes JUnit 4/Vintage-related deps. |
| extensions-contrib/thrift-extensions/src/test/java/org/apache/druid/data/input/thrift/ThriftInputFormatTest.java | Migrates lifecycle/assertions to JUnit 5. |
| extensions-contrib/thrift-extensions/pom.xml | Adds JUnit Jupiter deps; removes JUnit 4 + Hamcrest deps. |
| extensions-contrib/tdigestsketch/src/test/java/org/apache/druid/query/aggregation/tdigestsketch/TDigestSketchToQuantilesPostAggregatorTest.java | Migrates ExpectedException rule to JUnit 5 assertThrows. |
| extensions-contrib/tdigestsketch/src/test/java/org/apache/druid/query/aggregation/tdigestsketch/TDigestSketchToQuantilePostAggregatorTest.java | Migrates assertions/imports to JUnit 5. |
| extensions-contrib/tdigestsketch/src/test/java/org/apache/druid/query/aggregation/tdigestsketch/TDigestSketchObjectStrategyTest.java | Migrates assertions/imports to JUnit 5. |
| extensions-contrib/tdigestsketch/src/test/java/org/apache/druid/query/aggregation/tdigestsketch/TDigestSketchAggregatorFactoryTest.java | Migrates assertions/imports to JUnit 5. |
| extensions-contrib/tdigestsketch/pom.xml | Adds JUnit Jupiter deps; retains test Hamcrest for inherited Matcher signatures. |
| extensions-contrib/statsd-emitter/src/test/java/org/apache/druid/emitter/statsd/StatsDEmitterTest.java | Migrates assertions/imports to JUnit 5. |
| extensions-contrib/statsd-emitter/src/test/java/org/apache/druid/emitter/statsd/DimensionConverterTest.java | Migrates assertions/imports to JUnit 5 (JUnit 5 message arg order). |
| extensions-contrib/statsd-emitter/pom.xml | Adds JUnit Jupiter deps; removes JUnit 4 dependency. |
| extensions-contrib/sqlserver-metadata-storage/src/test/java/org/apache/druid/metadata/storage/sqlserver/SQLServerConnectorTest.java | Migrates assertions/imports to JUnit 5. |
| extensions-contrib/sqlserver-metadata-storage/src/test/java/org/apache/druid/metadata/storage/sqlserver/CustomStatementRewriterTest.java | Migrates lifecycle/assertions to JUnit 5; replaces junit.framework.Assert usage. |
| extensions-contrib/sqlserver-metadata-storage/pom.xml | Adds JUnit Jupiter deps; removes JUnit 4 dependency. |
| extensions-contrib/spectator-histogram/src/test/java/org/apache/druid/spectator/histogram/sql/SpectatorHistogramSqlAggregatorTest.java | Migrates assertions/imports to JUnit 5. |
| extensions-contrib/spectator-histogram/src/test/java/org/apache/druid/spectator/histogram/SpectatorHistogramIndexBasedComplexColumnTest.java | Migrates assertions/imports to JUnit 5. |
| extensions-contrib/spectator-histogram/pom.xml | Adds JUnit Jupiter deps + mockito-junit-jupiter; retains Hamcrest for inherited Matcher signatures. |
| extensions-contrib/redis-cache/src/test/java/org/apache/druid/client/cache/RedisClusterCacheTest.java | Migrates lifecycle/assertions to JUnit 5. |
| extensions-contrib/redis-cache/pom.xml | Adds JUnit Jupiter deps; removes JUnit 4/Hamcrest dependency declarations. |
| extensions-contrib/rabbit-stream-indexing-service/src/test/java/org/apache/druid/indexing/rabbitstream/RabbitStreamIndexTaskIOConfigTest.java | Migrates assertions/imports to JUnit 5. |
| extensions-contrib/rabbit-stream-indexing-service/pom.xml | Adds JUnit Jupiter deps; removes JUnit 4/Hamcrest deps. |
| extensions-contrib/prometheus-emitter/pom.xml | Adds JUnit Jupiter deps; removes JUnit 4 dependency. |
| extensions-contrib/opentsdb-emitter/src/test/java/org/apache/druid/emitter/opentsdb/OpentsdbSenderTest.java | Migrates assertions/imports to JUnit 5. |
| extensions-contrib/opentsdb-emitter/src/test/java/org/apache/druid/emitter/opentsdb/OpentsdbEventTest.java | Migrates lifecycle/assertions to JUnit 5. |
| extensions-contrib/opentsdb-emitter/src/test/java/org/apache/druid/emitter/opentsdb/OpentsdbEmitterConfigTest.java | Migrates lifecycle/assertions to JUnit 5. |
| extensions-contrib/opentsdb-emitter/pom.xml | Adds JUnit Jupiter deps; removes JUnit 4 dependency. |
| extensions-contrib/opentelemetry-emitter/src/test/java/org/apache/druid/emitter/opentelemetry/OpenTelemetryEmitterTest.java | Migrates lifecycle/assertions to JUnit 5. |
| extensions-contrib/opentelemetry-emitter/pom.xml | Adds JUnit Jupiter deps; removes JUnit 4 dependency. |
| extensions-contrib/moving-average-query/src/test/java/org/apache/druid/query/movingaverage/averagers/LongSumAveragerTest.java | Migrates assertions/imports to JUnit 5. |
| extensions-contrib/moving-average-query/src/test/java/org/apache/druid/query/movingaverage/averagers/LongSumAveragerFactoryTest.java | Replaces Hamcrest instance checks with JUnit 5 assertInstanceOf. |
| extensions-contrib/moving-average-query/src/test/java/org/apache/druid/query/movingaverage/averagers/LongMinAveragerTest.java | Migrates assertions/imports to JUnit 5. |
| extensions-contrib/moving-average-query/src/test/java/org/apache/druid/query/movingaverage/averagers/LongMinAveragerFactoryTest.java | Replaces Hamcrest instance checks with JUnit 5 assertInstanceOf. |
| extensions-contrib/moving-average-query/src/test/java/org/apache/druid/query/movingaverage/averagers/LongMeanNoNullAveragerTest.java | Migrates assertions/imports to JUnit 5. |
| extensions-contrib/moving-average-query/src/test/java/org/apache/druid/query/movingaverage/averagers/LongMeanNoNullAveragerFactoryTest.java | Replaces Hamcrest instance checks with JUnit 5 assertInstanceOf. |
| extensions-contrib/moving-average-query/src/test/java/org/apache/druid/query/movingaverage/averagers/LongMeanAveragerTest.java | Migrates assertions/imports to JUnit 5. |
| extensions-contrib/moving-average-query/src/test/java/org/apache/druid/query/movingaverage/averagers/LongMeanAveragerFactoryTest.java | Replaces Hamcrest instance checks with JUnit 5 assertInstanceOf. |
| extensions-contrib/moving-average-query/src/test/java/org/apache/druid/query/movingaverage/averagers/LongMaxAveragerTest.java | Migrates assertions/imports to JUnit 5. |
| extensions-contrib/moving-average-query/src/test/java/org/apache/druid/query/movingaverage/averagers/LongMaxAveragerFactoryTest.java | Replaces Hamcrest instance checks with JUnit 5 assertInstanceOf. |
| extensions-contrib/moving-average-query/src/test/java/org/apache/druid/query/movingaverage/averagers/DoubleSumAveragerTest.java | Migrates assertions/imports to JUnit 5. |
| extensions-contrib/moving-average-query/src/test/java/org/apache/druid/query/movingaverage/averagers/DoubleSumAveragerFactoryTest.java | Replaces Hamcrest instance checks with JUnit 5 assertInstanceOf. |
| extensions-contrib/moving-average-query/src/test/java/org/apache/druid/query/movingaverage/averagers/DoubleMinAveragerTest.java | Migrates assertions/imports to JUnit 5. |
| extensions-contrib/moving-average-query/src/test/java/org/apache/druid/query/movingaverage/averagers/DoubleMinAveragerFactoryTest.java | Replaces Hamcrest instance checks with JUnit 5 assertInstanceOf. |
| extensions-contrib/moving-average-query/src/test/java/org/apache/druid/query/movingaverage/averagers/DoubleMeanNoNullAveragerTest.java | Migrates assertions/imports to JUnit 5. |
| extensions-contrib/moving-average-query/src/test/java/org/apache/druid/query/movingaverage/averagers/DoubleMeanNoNullAveragerFactoryTest.java | Replaces Hamcrest instance checks with JUnit 5 assertInstanceOf. |
| extensions-contrib/moving-average-query/src/test/java/org/apache/druid/query/movingaverage/averagers/DoubleMeanAveragerWithPeriodTest.java | Migrates assertions/imports to JUnit 5. |
| extensions-contrib/moving-average-query/src/test/java/org/apache/druid/query/movingaverage/averagers/DoubleMeanAveragerTest.java | Migrates assertions/imports to JUnit 5. |
| extensions-contrib/moving-average-query/src/test/java/org/apache/druid/query/movingaverage/averagers/DoubleMeanAveragerFactoryTest.java | Replaces Hamcrest instance checks with JUnit 5 assertInstanceOf. |
| extensions-contrib/moving-average-query/src/test/java/org/apache/druid/query/movingaverage/averagers/DoubleMaxAveragerTest.java | Migrates assertions/imports to JUnit 5. |
| extensions-contrib/moving-average-query/src/test/java/org/apache/druid/query/movingaverage/averagers/DoubleMaxAveragerFactoryTest.java | Replaces Hamcrest instance checks with JUnit 5 assertInstanceOf. |
| extensions-contrib/moving-average-query/src/test/java/org/apache/druid/query/movingaverage/averagers/BaseAveragerFactoryTest.java | Migrates lifecycle/assertions to JUnit 5. |
| extensions-contrib/moving-average-query/src/test/java/org/apache/druid/query/movingaverage/averagers/AveragerFactoryWrapperTest.java | Migrates assertions/imports to JUnit 5. |
| extensions-contrib/moving-average-query/src/test/java/org/apache/druid/query/movingaverage/PostAveragerAggregatorCalculatorTest.java | Migrates lifecycle/assertions to JUnit 5. |
| extensions-contrib/moving-average-query/src/test/java/org/apache/druid/query/movingaverage/MovingAverageQueryTest.java | Migrates from JUnit 4 parameterized runner to Jupiter parameterized tests. |
| extensions-contrib/moving-average-query/pom.xml | Adds JUnit Jupiter deps; removes JUnit 4/Hamcrest deps. |
| extensions-contrib/momentsketch/src/test/java/org/apache/druid/query/aggregation/momentsketch/aggregator/MomentSketchQuantilePostAggregatorTest.java | Migrates ExpectedException rule to JUnit 5 assertThrows. |
| extensions-contrib/momentsketch/src/test/java/org/apache/druid/query/aggregation/momentsketch/aggregator/MomentSketchMinPostAggregatorTest.java | Migrates assertions/imports to JUnit 5. |
| extensions-contrib/momentsketch/src/test/java/org/apache/druid/query/aggregation/momentsketch/aggregator/MomentSketchMaxPostAggregatorTest.java | Migrates assertions/imports to JUnit 5. |
| extensions-contrib/momentsketch/src/test/java/org/apache/druid/query/aggregation/momentsketch/aggregator/MomentSketchAggregatorFactoryTest.java | Migrates assertions/imports to JUnit 5. |
| extensions-contrib/momentsketch/src/test/java/org/apache/druid/query/aggregation/momentsketch/MomentSketchWrapperTest.java | Migrates assertions/imports to JUnit 5. |
| extensions-contrib/momentsketch/src/test/java/org/apache/druid/query/aggregation/momentsketch/MomentSketchObjectStrategyTest.java | Migrates assertions/imports to JUnit 5. |
| extensions-contrib/momentsketch/pom.xml | Adds JUnit Jupiter deps; removes JUnit 4 dependency. |
| extensions-contrib/kafka-emitter/pom.xml | Adds JUnit Jupiter deps; removes JUnit 4/Hamcrest deps. |
| extensions-contrib/influxdb-emitter/pom.xml | Adds JUnit Jupiter deps; removes JUnit 4 dependency. |
| extensions-contrib/influx-extensions/pom.xml | Adds JUnit Jupiter deps; removes JUnit 4/JUnitParams/Hamcrest deps. |
| extensions-contrib/grpc-query/src/test/java/org/apache/druid/grpc/client/GrpcResponseHandlerTest.java | Migrates static assertions to JUnit 5. |
| extensions-contrib/grpc-query/src/test/java/org/apache/druid/grpc/GrpcQueryTest.java | Migrates static assertions to JUnit 5. |
| extensions-contrib/grpc-query/src/test/java/org/apache/druid/grpc/DriverTest.java | Migrates static assertions to JUnit 5. |
| extensions-contrib/grpc-query/src/test/java/org/apache/druid/grpc/BasicAuthTest.java | Migrates assertions to JUnit 5 (including assertThrows). |
| extensions-contrib/grpc-query/pom.xml | Adds JUnit Jupiter deps; retains test Hamcrest for inherited Matcher signatures. |
| extensions-contrib/graphite-emitter/src/test/java/org/apache/druid/emitter/graphite/GraphiteEmitterConfigTest.java | Migrates lifecycle/assertions to JUnit 5. |
| extensions-contrib/graphite-emitter/src/test/java/org/apache/druid/emitter/graphite/DruidToWhiteListBasedConverterTest.java | Migrates assertions/imports to JUnit 5. |
| extensions-contrib/graphite-emitter/pom.xml | Adds JUnit Jupiter deps; removes JUnit 4/JUnitParams deps. |
| extensions-contrib/gce-extensions/src/test/java/org/apache/druid/indexing/overlord/autoscaling/gce/GceUtilsTest.java | Migrates assertions/imports to JUnit 5. |
| extensions-contrib/gce-extensions/pom.xml | Adds JUnit Jupiter deps; removes JUnit 4 dependency. |
| extensions-contrib/druid-ranger-security/src/test/java/org/apache/druid/security/ranger/authorizer/RangerAuthorizerTest.java | Migrates lifecycle/assertions to JUnit 5. |
| extensions-contrib/druid-ranger-security/pom.xml | Adds JUnit Jupiter deps; removes JUnit 4 dependency. |
| extensions-contrib/druid-iceberg-extensions/src/test/java/org/apache/druid/iceberg/input/RestCatalogTest.java | Migrates lifecycle/assertions to JUnit 5. |
| extensions-contrib/druid-iceberg-extensions/src/test/java/org/apache/druid/iceberg/input/ResidualFilterModeTest.java | Migrates assertions/imports to JUnit 5. |
| extensions-contrib/druid-iceberg-extensions/src/test/java/org/apache/druid/iceberg/input/LocalCatalogTest.java | Migrates assertions/imports to JUnit 5. |
| extensions-contrib/druid-iceberg-extensions/src/test/java/org/apache/druid/iceberg/input/HiveIcebergCatalogTest.java | Migrates assertions/imports to JUnit 5. |
| extensions-contrib/druid-iceberg-extensions/src/test/java/org/apache/druid/iceberg/input/GlueIcebergCatalogTest.java | Migrates assertions/imports to JUnit 5. |
| extensions-contrib/druid-iceberg-extensions/src/test/java/org/apache/druid/iceberg/filter/IcebergTimeWindowFilterTest.java | Migrates assertions/imports to JUnit 5. |
| extensions-contrib/druid-iceberg-extensions/src/test/java/org/apache/druid/iceberg/filter/IcebergRangeFilterTest.java | Migrates assertions/imports to JUnit 5. |
| extensions-contrib/druid-iceberg-extensions/src/test/java/org/apache/druid/iceberg/filter/IcebergOrFilterTest.java | Migrates assertions/imports to JUnit 5. |
| extensions-contrib/druid-iceberg-extensions/src/test/java/org/apache/druid/iceberg/filter/IcebergNotFilterTest.java | Migrates assertions/imports to JUnit 5. |
| extensions-contrib/druid-iceberg-extensions/src/test/java/org/apache/druid/iceberg/filter/IcebergIntervalFilterTest.java | Migrates assertions/imports to JUnit 5. |
| extensions-contrib/druid-iceberg-extensions/src/test/java/org/apache/druid/iceberg/filter/IcebergEqualsFilterTest.java | Migrates assertions/imports to JUnit 5. |
| extensions-contrib/druid-iceberg-extensions/src/test/java/org/apache/druid/iceberg/filter/IcebergAndFilterTest.java | Migrates assertions/imports to JUnit 5. |
| extensions-contrib/druid-iceberg-extensions/pom.xml | Adds JUnit Jupiter deps; removes JUnit 4 dependency. |
| extensions-contrib/druid-deltalake-extensions/src/test/java/org/apache/druid/delta/input/DeltaTimeUtilsTest.java | Migrates lifecycle/assertions to JUnit 5. |
| extensions-contrib/druid-deltalake-extensions/src/test/java/org/apache/druid/delta/input/DeltaInputSourceSerdeTest.java | Migrates assertions/imports to JUnit 5; replaces assertThrows. |
| extensions-contrib/druid-deltalake-extensions/src/test/java/org/apache/druid/delta/input/DeltaInputRowTest.java | Removes Hamcrest matcher usage, adopts DeltaAssertions helper. |
| extensions-contrib/druid-deltalake-extensions/src/test/java/org/apache/druid/delta/filter/DeltaOrFilterTest.java | Replaces Hamcrest-based exception matcher with DeltaAssertions. |
| extensions-contrib/druid-deltalake-extensions/src/test/java/org/apache/druid/delta/filter/DeltaNotFilterTest.java | Replaces Hamcrest-based exception matcher with DeltaAssertions. |
| extensions-contrib/druid-deltalake-extensions/src/test/java/org/apache/druid/delta/filter/DeltaLessThanOrEqualsFilterTest.java | Replaces Hamcrest-based exception matcher with DeltaAssertions. |
| extensions-contrib/druid-deltalake-extensions/src/test/java/org/apache/druid/delta/filter/DeltaLessThanFilterTest.java | Migrates assertions/imports to JUnit 5. |
| extensions-contrib/druid-deltalake-extensions/src/test/java/org/apache/druid/delta/filter/DeltaGreaterThanOrEqualsFilterTest.java | Migrates assertions/imports to JUnit 5. |
| extensions-contrib/druid-deltalake-extensions/src/test/java/org/apache/druid/delta/filter/DeltaGreaterThanFilterTest.java | Migrates assertions/imports to JUnit 5. |
| extensions-contrib/druid-deltalake-extensions/src/test/java/org/apache/druid/delta/filter/DeltaEqualsFilterTest.java | Replaces Hamcrest-based exception matcher with DeltaAssertions. |
| extensions-contrib/druid-deltalake-extensions/src/test/java/org/apache/druid/delta/filter/DeltaAndFilterTest.java | Replaces Hamcrest-based exception matcher with DeltaAssertions. |
| extensions-contrib/druid-deltalake-extensions/src/test/java/org/apache/druid/delta/DeltaAssertions.java | Adds a JUnit 5 helper assertion for INVALID_INPUT DruidExceptions. |
| extensions-contrib/druid-deltalake-extensions/pom.xml | Adds JUnit Jupiter deps; removes JUnit 4/Vintage/Hamcrest deps. |
| extensions-contrib/dropwizard-emitter/src/test/java/org/apache/druid/emitter/dropwizard/DropwizardEmitterConfigTest.java | Migrates lifecycle/assertions to JUnit 5; calls base setup in @BeforeEach. |
| extensions-contrib/dropwizard-emitter/pom.xml | Adds JUnit Jupiter deps; removes JUnit 4 dependency. |
| extensions-contrib/distinctcount/src/test/java/org/apache/druid/query/aggregation/distinctcount/DistinctCountTopNQueryTest.java | Migrates lifecycle annotations to JUnit 5. |
| extensions-contrib/distinctcount/src/test/java/org/apache/druid/query/aggregation/distinctcount/DistinctCountTimeseriesQueryTest.java | Migrates @Test import to JUnit 5. |
| extensions-contrib/distinctcount/pom.xml | Adds JUnit Jupiter deps; removes JUnit 4/Vintage/Hamcrest deps. |
| extensions-contrib/ddsketch/src/test/java/org/apache/druid/query/aggregation/ddsketch/DDSketchToQuantilesPostAggregatorTest.java | Migrates assertions/imports to JUnit 5. |
| extensions-contrib/ddsketch/src/test/java/org/apache/druid/query/aggregation/ddsketch/DDSketchToQuantilePostAggregatorTest.java | Migrates assertions/imports to JUnit 5. |
| extensions-contrib/ddsketch/src/test/java/org/apache/druid/query/aggregation/ddsketch/DDSketchObjectStrategyTest.java | Migrates assertions/imports to JUnit 5. |
| extensions-contrib/ddsketch/src/test/java/org/apache/druid/query/aggregation/ddsketch/DDSketchAggregatorFactoryTest.java | Migrates assertions/imports to JUnit 5. |
| extensions-contrib/ddsketch/pom.xml | Adds JUnit Jupiter deps; removes JUnit 4 dependency. |
| extensions-contrib/consul-extensions/src/test/java/org/apache/druid/consul/discovery/ConsulServiceIdsTest.java | Migrates assertions/imports to JUnit 5. |
| extensions-contrib/consul-extensions/src/test/java/org/apache/druid/consul/discovery/ConsulLeaderSelectorTest.java | Migrates lifecycle/assertions to JUnit 5. |
| extensions-contrib/consul-extensions/src/test/java/org/apache/druid/consul/discovery/ConsulDruidNodeDiscoveryProviderTest.java | Migrates lifecycle/assertions to JUnit 5. |
| extensions-contrib/consul-extensions/src/test/java/org/apache/druid/consul/discovery/ConsulDruidNodeAnnouncerTest.java | Migrates lifecycle/assertions to JUnit 5; removes JUnit4 runner. |
| extensions-contrib/consul-extensions/src/test/java/org/apache/druid/consul/discovery/ConsulClientsSecurityTest.java | Migrates assertions/imports to JUnit 5. |
| extensions-contrib/consul-extensions/pom.xml | Adds JUnit Jupiter deps; removes JUnit 4 dependency. |
| extensions-contrib/compressed-bigdecimal/src/test/java/org/apache/druid/compressedbigdecimal/aggregator/sum/CompressedBigDecimalSumSqlAggregatorTest.java | Migrates assertThrows static import to JUnit 5. |
| extensions-contrib/compressed-bigdecimal/src/test/java/org/apache/druid/compressedbigdecimal/aggregator/sum/CompressedBigDecimalSumAggregatorTimeseriesTest.java | Adds Jupiter @Test annotations on overrides. |
| extensions-contrib/compressed-bigdecimal/src/test/java/org/apache/druid/compressedbigdecimal/aggregator/sum/CompressedBigDecimalSumAggregatorTest.java | Adds Jupiter @Test annotation on override. |
| extensions-contrib/compressed-bigdecimal/src/test/java/org/apache/druid/compressedbigdecimal/aggregator/sum/CompressedBigDecimalSumAggregatorGroupByTest.java | Converts JUnit 4 parameterized constructor pattern to Jupiter method parameterization. |
| extensions-contrib/compressed-bigdecimal/src/test/java/org/apache/druid/compressedbigdecimal/aggregator/min/CompressedBigDecimalMinSqlAggregatorTest.java | Migrates assertThrows static import to JUnit 5. |
| extensions-contrib/compressed-bigdecimal/src/test/java/org/apache/druid/compressedbigdecimal/aggregator/min/CompressedBigDecimalMinAggregatorTimeseriesTest.java | Adds Jupiter @Test annotations on overrides. |
| extensions-contrib/compressed-bigdecimal/src/test/java/org/apache/druid/compressedbigdecimal/aggregator/min/CompressedBigDecimalMinAggregatorTest.java | Adds Jupiter @Test annotation on override. |
| extensions-contrib/compressed-bigdecimal/src/test/java/org/apache/druid/compressedbigdecimal/aggregator/min/CompressedBigDecimalMinAggregatorGroupByTest.java | Converts JUnit 4 runner to Jupiter parameterized test method. |
| extensions-contrib/compressed-bigdecimal/src/test/java/org/apache/druid/compressedbigdecimal/aggregator/max/CompressedBigDecimalMaxAggregatorTimeseriesTest.java | Adds Jupiter @Test annotations on overrides. |
| extensions-contrib/compressed-bigdecimal/src/test/java/org/apache/druid/compressedbigdecimal/aggregator/max/CompressedBigDecimalMaxAggregatorTest.java | Adds Jupiter @Test annotation on override. |
| extensions-contrib/compressed-bigdecimal/src/test/java/org/apache/druid/compressedbigdecimal/aggregator/max/CompressedBigDecimalMaxAggregatorGroupByTest.java | Converts JUnit 4 parameterized constructor pattern to Jupiter method parameterization. |
| extensions-contrib/compressed-bigdecimal/src/test/java/org/apache/druid/compressedbigdecimal/aggregator/CompressedBigDecimalAggregatorTestBase.java | Migrates base test helper assertions to JUnit 5. |
| extensions-contrib/compressed-bigdecimal/src/test/java/org/apache/druid/compressedbigdecimal/CompressedBigDecimalColumnTest.java | Migrates assertions/imports to JUnit 5. |
| extensions-contrib/compressed-bigdecimal/src/test/java/org/apache/druid/compressedbigdecimal/CompressedBigDecimalCachingTest.java | Migrates assertions/imports to JUnit 5. |
| extensions-contrib/compressed-bigdecimal/src/test/java/org/apache/druid/compressedbigdecimal/ByteBufferCompressedBigDecimalTest.java | Migrates assertions/imports to JUnit 5. |
| extensions-contrib/compressed-bigdecimal/pom.xml | Adds JUnit Jupiter deps; retains test Hamcrest for inherited Matcher signatures; removes JUnit 4/Vintage deps. |
| extensions-contrib/cloudfiles-extensions/src/test/java/org/apache/druid/storage/cloudfiles/CloudFilesObjectApiProxyTest.java | Migrates assertions/imports to JUnit 5. |
| extensions-contrib/cloudfiles-extensions/src/test/java/org/apache/druid/storage/cloudfiles/CloudFilesDataSegmentPusherTest.java | Migrates TemporaryFolder rule to JUnit 5 @TempDir. |
| extensions-contrib/cloudfiles-extensions/src/test/java/org/apache/druid/storage/cloudfiles/CloudFilesByteSourceTest.java | Migrates assertions/imports and test annotation to JUnit 5. |
| extensions-contrib/cloudfiles-extensions/pom.xml | Adds JUnit Jupiter deps; removes JUnit 4 dependency. |
| extensions-contrib/ambari-metrics-emitter/src/test/java/org/apache/druid/emitter/ambari/metrics/DruidToWhiteListBasedConverterTest.java | Migrates assertions/imports to JUnit 5. |
| extensions-contrib/ambari-metrics-emitter/src/test/java/org/apache/druid/emitter/ambari/metrics/AmbariMetricsEmitterTest.java | Migrates lifecycle/assertions to JUnit 5. |
| extensions-contrib/ambari-metrics-emitter/src/test/java/org/apache/druid/emitter/ambari/metrics/AmbariMetricsEmitterConfigTest.java | Migrates lifecycle/assertions to JUnit 5. |
| extensions-contrib/ambari-metrics-emitter/pom.xml | Adds JUnit Jupiter deps; removes JUnit 4/JUnitParams deps. |
| extensions-contrib/aliyun-oss-extensions/src/test/java/org/apache/druid/storage/aliyun/OssTimestampVersionedDataFinderTest.java | Migrates assertions/imports to JUnit 5. |
| extensions-contrib/aliyun-oss-extensions/src/test/java/org/apache/druid/storage/aliyun/OssStorageDruidModuleTest.java | Migrates assertions/imports to JUnit 5. |
| extensions-contrib/aliyun-oss-extensions/src/test/java/org/apache/druid/storage/aliyun/OssObjectSummaryIteratorTest.java | Migrates assert message argument order to JUnit 5. |
| extensions-contrib/aliyun-oss-extensions/src/test/java/org/apache/druid/storage/aliyun/OssDataSegmentPusherTest.java | Migrates TemporaryFolder rule to JUnit 5 @TempDir, updates assertions. |
| extensions-contrib/aliyun-oss-extensions/src/test/java/org/apache/druid/storage/aliyun/OssDataSegmentPusherConfigTest.java | Migrates assertions/imports to JUnit 5. |
| extensions-contrib/aliyun-oss-extensions/src/test/java/org/apache/druid/storage/aliyun/OssDataSegmentKillerTest.java | Migrates from JUnit4 EasyMockRunner to JUnit5 EasyMockExtension. |
| extensions-contrib/aliyun-oss-extensions/src/test/java/org/apache/druid/storage/aliyun/OssDataSegmentArchiverTest.java | Migrates lifecycle/assertions to JUnit 5. |
| extensions-contrib/aliyun-oss-extensions/pom.xml | Adds JUnit Jupiter deps; removes JUnit 4/Hamcrest(3.0) dependency declarations. |
Suppressed comments (2)
extensions-contrib/druid-deltalake-extensions/src/test/java/org/apache/druid/delta/filter/DeltaNotFilterTest.java:1
- Typo in the asserted message: 'requiers' should be 'requires'. If this string mirrors a production error message, updating the production message and this assertion together will improve consistency and user-facing readability.
extensions-contrib/time-min-max/src/test/java/org/apache/druid/query/aggregation/TimestampMinMaxAggregatorTest.java:1 - This method name reads like a test case but is used as a per-invocation initializer for parameterized inputs. Renaming it to something like
initParams(...)/setUpParams(...)(and keeping it non-public if possible) would make its intent clearer when scanning the test class.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
FrankChen021
left a comment
There was a problem hiding this comment.
Audit of all 34 extensions-contrib/**/pom.xml files and all 563 Java files found one real issue:
extensions-contrib/druid-exact-count-bitmap/pom.xmlremoved the legacy JUnit 4/Hamcrest dependencies and retainedjunit-jupiter-api, but omittedjunit-jupiter-engineeven though the module contains JUnit 5 tests. The fix adds the test-scoped Jupiter engine.
The full audit found zero remaining JUnit 4-related or Hamcrest imports and zero stale junit:junit, Vintage, JUnitParams, system-rules, or direct Hamcrest dependencies in extensions-contrib. The focused Bitmap64ExactCountModuleTest passed (1 test, 0 failures).
Fix committed as 6f8ef24e897e8c636af0c93491e22c402b32a310 and pushed to codex/junit5-migrate-extensions-contrib.
Reviewed 204 PR-changed files under extensions-contrib.
This is an automated review by Codex GPT-5.5
Part of #13948.
Summary
This PR migrates the remaining
extensions-contribtest source usage from JUnit 4 to JUnit 5.extensions-contribtest sources use Jupiter tests and assertions.druid-exact-count-bitmap.junit:junitandorg.hamcrest:hamcrestdeclarations have been removed from the remaining contrib POMs.Stacking and prerequisite policy
This PR intentionally owns only
extensions-contrib. It does not duplicate or modify shared SQL or server fixtures.The coordinated prerequisite stack is:
BaseCalciteQueryTest,DruidExceptionAssertions,QueryTestRunner, and the related SQL test migrations. The validated local prerequisite ref iscodex/tmp-junit5-sql-quidemat07c84bc5ce3443236836d3d462c84a5ed65602d5.server/QueryStackTestsand its related server fixture migrations. The validated local prerequisite ref iscodex/tmp-junit5-serveratf725c2c490294a7d6089e0e0b4063c080012b1ac.Those shared paths are deliberately absent from this PR. The prerequisite branches are not currently published as upstream PR branches, so this PR remains based on
master; once those batches are published or merged, rebase/retarget this contrib-only branch onto that stack before merging.Against current upstream
masteralone, SQL test compilation for the inherited contrib fixtures still requires theorg.hamcrest.Matchersignatures exposed by the pre-migrationBaseCalciteQueryTest, and the old server fixture still contains JUnit 4 runtime usage. Those are the exact prerequisite dependencies; this PR does not retain compatibility declarations for them. This is a shared SQL/server prerequisite issue, not a dependency on #19875 itself.Related migration PRs: #19875, #19876, #19877, #19878, #19879, #19880, #19881, and #19882.
Validation
CloudFilesObjectApiProxyTestandCloudFilesByteSourceTest.Matcher<...>, or HamcrestassertThatusage remains underextensions-contrib/**/src/test.extensions-contrib.git diff --check: passed.The two Copilot comments on CloudFiles were fixed in 901605720b and are now handled as resolved/outdated threads: the assertion argument order is corrected, and the first
openStream()call usesAssertions.assertThrows(IOException.class, ...).