From 5a5a4514abfaa7c9caf762d2a767aaa326d24e62 Mon Sep 17 00:00:00 2001 From: Ross Lawley Date: Thu, 12 Mar 2026 14:26:26 +0000 Subject: [PATCH 1/2] Update Junit 5 to latest Test Scala 3 on Java 8 JAVA-6125 --- .evergreen/.evg.yml | 13 ++----------- .../test/AfterBeforeParameterResolver.java | 9 ++++++++- .../scala/unified/ClientEncryptionTest.scala | 2 +- .../mongodb/scala/unified/UnifiedCrudTest.scala | 2 +- .../org/mongodb/scala/unified/UnifiedTest.scala | 16 +++++++--------- gradle/libs.versions.toml | 5 +++-- 6 files changed, 22 insertions(+), 25 deletions(-) diff --git a/.evergreen/.evg.yml b/.evergreen/.evg.yml index c48f76c1aab..7de253baac6 100644 --- a/.evergreen/.evg.yml +++ b/.evergreen/.evg.yml @@ -2507,23 +2507,14 @@ buildvariants: tasks: - name: ".ocsp" - - matrix_name: "scala-tests-2" + - matrix_name: "scala-tests" matrix_spec: { auth: "noauth", ssl: "nossl", jdk: [ "jdk8", "jdk17", "jdk21" ], version: [ "7.0" ], topology: "replicaset", - scala: ["2.11", "2.12", "2.13"] , os: "ubuntu" } + scala: "*" , os: "ubuntu" } display_name: "${scala} ${jdk} ${version} ${topology} ${os}" tags: [ "test-scala-variant" ] tasks: - name: "scala-test-task" - - matrix_name: "scala-tests-3" - matrix_spec: { auth: "noauth", ssl: "nossl", jdk: [ "jdk17", "jdk21" ], version: [ "8.0" ], topology: "replicaset", - scala: "3", os: "ubuntu" } - display_name: "${scala} ${jdk} ${version} ${topology} ${os}" - tags: [ "test-scala-variant" ] - tasks: - - name: "scala-test-task" - - - matrix_name: "kotlin-tests" matrix_spec: { auth: "noauth", ssl: "nossl", jdk: [ "jdk8", "jdk17", "jdk21" ], version: [ "7.0" ], topology: "replicaset", os: "ubuntu" } display_name: "Kotlin: ${jdk} ${version} ${topology} ${os}" diff --git a/driver-core/src/test/functional/com/mongodb/test/AfterBeforeParameterResolver.java b/driver-core/src/test/functional/com/mongodb/test/AfterBeforeParameterResolver.java index bc78709e73b..8b290b05bda 100644 --- a/driver-core/src/test/functional/com/mongodb/test/AfterBeforeParameterResolver.java +++ b/driver-core/src/test/functional/com/mongodb/test/AfterBeforeParameterResolver.java @@ -71,7 +71,14 @@ public class AfterBeforeParameterResolver implements BeforeEachMethodAdapter, Pa public void invokeBeforeEachMethod(final ExtensionContext context, final ExtensionRegistry registry) { Optional resolverOptional = registry.getExtensions(ParameterResolver.class) .stream() - .filter(parameterResolver -> parameterResolver.getClass().getName().contains("ParameterizedTestParameterResolver")) + .filter(parameterResolver -> { + String name = parameterResolver.getClass().getName(); + // JUnit 5.10: ParameterizedTestParameterResolver + // JUnit 5.14+: ParameterizedInvocationParameterResolver, ParameterizedTestMethodParameterResolver + return name.contains("ParameterizedTestParameterResolver") + || name.contains("ParameterizedInvocationParameterResolver") + || name.contains("ParameterizedTestMethodParameterResolver"); + }) .findFirst(); if (!resolverOptional.isPresent()) { throw new IllegalStateException("ParameterizedTestParameterResolver missed in the registry. " diff --git a/driver-scala/src/integrationTest/scala/org/mongodb/scala/unified/ClientEncryptionTest.scala b/driver-scala/src/integrationTest/scala/org/mongodb/scala/unified/ClientEncryptionTest.scala index 2b18a20e953..d1e7ccf5950 100644 --- a/driver-scala/src/integrationTest/scala/org/mongodb/scala/unified/ClientEncryptionTest.scala +++ b/driver-scala/src/integrationTest/scala/org/mongodb/scala/unified/ClientEncryptionTest.scala @@ -16,6 +16,6 @@ package org.mongodb.scala.unified -object ClientEncryptionTest extends UnifiedTest { +class ClientEncryptionTest extends UnifiedTest { val directory = "client-side-encryption/tests/unified" } diff --git a/driver-scala/src/integrationTest/scala/org/mongodb/scala/unified/UnifiedCrudTest.scala b/driver-scala/src/integrationTest/scala/org/mongodb/scala/unified/UnifiedCrudTest.scala index 6f58161ce12..c0749ab061e 100644 --- a/driver-scala/src/integrationTest/scala/org/mongodb/scala/unified/UnifiedCrudTest.scala +++ b/driver-scala/src/integrationTest/scala/org/mongodb/scala/unified/UnifiedCrudTest.scala @@ -16,6 +16,6 @@ package org.mongodb.scala.unified -object UnifiedCrudTest extends UnifiedTest { +class UnifiedCrudTest extends UnifiedTest { val directory = "crud" } diff --git a/driver-scala/src/integrationTest/scala/org/mongodb/scala/unified/UnifiedTest.scala b/driver-scala/src/integrationTest/scala/org/mongodb/scala/unified/UnifiedTest.scala index 3e0431437c4..59cb36bdfe0 100644 --- a/driver-scala/src/integrationTest/scala/org/mongodb/scala/unified/UnifiedTest.scala +++ b/driver-scala/src/integrationTest/scala/org/mongodb/scala/unified/UnifiedTest.scala @@ -49,15 +49,13 @@ abstract class UnifiedTest extends JUnifiedTest { override def createClientEncryption( keyVaultClient: JMongoClient, clientEncryptionSettings: JClientEncryptionSettings - ): JClientEncryption = { - keyVaultClient match { - case client: SyncMongoClient => - SyncClientEncryption(ClientEncryption(new ClientEncryptionImpl( - client.wrapped.wrapped, - clientEncryptionSettings - ))) - case _ => throw new IllegalArgumentException(s"Invalid keyVaultClient type: ${keyVaultClient.getClass}") - } + ): JClientEncryption = keyVaultClient match { + case client: SyncMongoClient => + SyncClientEncryption(ClientEncryption(new ClientEncryptionImpl( + client.wrapped.wrapped, + clientEncryptionSettings + ))) + case _ => throw new IllegalArgumentException(s"Invalid keyVaultClient type: ${keyVaultClient.getClass}") } override protected def isReactive: Boolean = true diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 36e7e505984..79d64ac5200 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -47,7 +47,7 @@ findbugs-jsr = "1.3.9" groovy = "3.0.9" hamcrest = "1.3" jmh = "1.37" -junit-bom = "5.10.2" +junit-bom = "5.14.3" logback = "1.3.14" mockito = "5.11.0" mockito-java8 = "4.6.1" @@ -131,6 +131,7 @@ jmh-generator-annprocess = { module = "org.openjdk.jmh:jmh-generator-annprocess" junit-bom = { module = "org.junit:junit-bom", version.ref = "junit-bom" } junit-jupiter = { module = "org.junit.jupiter:junit-jupiter" } junit-jupiter-params = { module = "org.junit.jupiter:junit-jupiter-params" } +junit-jupiter-platform-launcher = { module = "org.junit.platform:junit-platform-launcher" } junit-jupiter-engine = { module = "org.junit.jupiter:junit-jupiter-engine" } junit-vintage-engine = { module = "org.junit.vintage:junit-vintage-engine" } junit-kotlin = { module = "org.jetbrains.kotlin:kotlin-test-junit5" } @@ -197,7 +198,7 @@ scala-v2-v12 = ["scala-library-v2-v12", "scala-reflect-v2-v12"] scala-v2-v11 = ["scala-library-v2-v11", "scala-reflect-v2-v11"] # Test -junit = ["junit-jupiter", "junit-jupiter-params", "junit-jupiter-engine", "logback-classic", "hamcrest-all"] +junit = ["junit-jupiter", "junit-jupiter-params", "junit-jupiter-engine", "junit-jupiter-platform-launcher", "logback-classic", "hamcrest-all"] junit-vintage = ["junit-vintage-engine", "junit-jupiter-params", "junit-jupiter-engine", "logback-classic", "hamcrest-all"] spock = ["spock-core", "spock-junit4"] From bc32a491a931161694a979985a698cc44dca9019 Mon Sep 17 00:00:00 2001 From: Ross Lawley Date: Thu, 19 Mar 2026 09:59:00 +0000 Subject: [PATCH 2/2] PR update --- .../com/mongodb/test/AfterBeforeParameterResolver.java | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/driver-core/src/test/functional/com/mongodb/test/AfterBeforeParameterResolver.java b/driver-core/src/test/functional/com/mongodb/test/AfterBeforeParameterResolver.java index 8b290b05bda..c96f17554eb 100644 --- a/driver-core/src/test/functional/com/mongodb/test/AfterBeforeParameterResolver.java +++ b/driver-core/src/test/functional/com/mongodb/test/AfterBeforeParameterResolver.java @@ -73,16 +73,14 @@ public void invokeBeforeEachMethod(final ExtensionContext context, final Extensi .stream() .filter(parameterResolver -> { String name = parameterResolver.getClass().getName(); - // JUnit 5.10: ParameterizedTestParameterResolver // JUnit 5.14+: ParameterizedInvocationParameterResolver, ParameterizedTestMethodParameterResolver - return name.contains("ParameterizedTestParameterResolver") - || name.contains("ParameterizedInvocationParameterResolver") + return name.contains("ParameterizedInvocationParameterResolver") || name.contains("ParameterizedTestMethodParameterResolver"); }) .findFirst(); if (!resolverOptional.isPresent()) { - throw new IllegalStateException("ParameterizedTestParameterResolver missed in the registry. " - + "Probably it's not a Parameterized Test"); + throw new IllegalStateException("ParameterResolver not found. Confirm the test is a Parameterized test. " + + "See `com.mongodb.test.AfterBeforeParameterResolver` for more details."); } else { parameterisedTestParameterResolver = resolverOptional.get(); }