From 7cda7e0052f540bc7232ad8832bbe098182bda52 Mon Sep 17 00:00:00 2001 From: Jeff Yemin Date: Thu, 2 Nov 2023 12:31:05 -0400 Subject: [PATCH] Test on Java 21 * Add JDK 21 to Gradle configuration * Add JDK 21 to the test matrix * Replace JDK 17 with JDK 21 for tasks that are ony run using latest JDK * Update Mockito dependency JAVA-5164 --- .evergreen/.evg.yml | 31 +++++++++++++++++----------- .evergreen/javaConfig.bash | 1 + build.gradle | 3 +-- driver-reactive-streams/build.gradle | 2 +- gradle.properties | 2 +- 5 files changed, 23 insertions(+), 16 deletions(-) diff --git a/.evergreen/.evg.yml b/.evergreen/.evg.yml index bab2690ff82..cda3eb0cf29 100644 --- a/.evergreen/.evg.yml +++ b/.evergreen/.evg.yml @@ -1764,6 +1764,10 @@ axes: - id: jdk display_name: JDK values: + - id: "jdk21" + display_name: JDK21 + variables: + JAVA_VERSION: "21" - id: "jdk17" display_name: JDK17 variables: @@ -2012,7 +2016,8 @@ buildvariants: - name: "test" - matrix_name: "tests-jdk-secure" - matrix_spec: { auth: "auth", ssl: "ssl", jdk: [ "jdk8", "jdk17" ], version: [ "3.6", "4.0", "4.2", "4.4", "5.0", "6.0", "7.0", "latest" ], + matrix_spec: { auth: "auth", ssl: "ssl", jdk: [ "jdk8", "jdk17", "jdk21"], + version: [ "3.6", "4.0", "4.2", "4.4", "5.0", "6.0", "7.0", "latest" ], topology: "*", os: "linux" } display_name: "${version} ${topology} ${auth} ${ssl} ${jdk} ${os} " tags: ["tests-variant"] @@ -2027,26 +2032,28 @@ buildvariants: - name: "test" - matrix_name: "tests-require-api-version" - matrix_spec: { api-version: "required", auth: "auth", ssl: "nossl", jdk: ["jdk17"], version: ["5.0", "6.0", "7.0", "latest"], topology: "standalone", os: "linux" } + matrix_spec: { api-version: "required", auth: "auth", ssl: "nossl", jdk: ["jdk21"], version: ["5.0", "6.0", "7.0", "latest"], + topology: "standalone", os: "linux" } display_name: "${version} ${topology} ${api-version} " tags: ["tests-variant"] tasks: - name: "test" - matrix_name: "tests-load-balancer-secure" - matrix_spec: { auth: "auth", ssl: "ssl", jdk: ["jdk17"], version: ["5.0", "6.0", "7.0", "latest"], topology: "sharded-cluster", os: "ubuntu" } + matrix_spec: { auth: "auth", ssl: "ssl", jdk: ["jdk21"], version: ["5.0", "6.0", "7.0", "latest"], topology: "sharded-cluster", + os: "ubuntu" } display_name: "Load Balancer ${version} ${auth} ${ssl} ${jdk} ${os}" tasks: - name: "load-balancer-test" - matrix_name: "tests-serverless" - matrix_spec: { jdk: ["jdk17"], os: "ubuntu" } + matrix_spec: { jdk: ["jdk21"], os: "ubuntu" } display_name: "Serverless" tasks: - name: "serverless-test" - matrix_name: "tests-slow" - matrix_spec: { auth: "noauth", ssl: "nossl", jdk: "jdk17", version: ["7.0"], topology: "standalone", os: "linux" } + matrix_spec: { auth: "noauth", ssl: "nossl", jdk: "jdk21", version: ["7.0"], topology: "standalone", os: "linux" } display_name: "Slow: ${version} ${topology} ${ssl} ${jdk} ${os} " tags: ["tests-slow-variant"] tasks: @@ -2088,7 +2095,7 @@ buildvariants: - name: "socket-test" - matrix_name: "test-gssapi" - matrix_spec: { jdk: ["jdk8", "jdk17"], os: "linux", gssapi-login-context-name: "*"} + matrix_spec: { jdk: ["jdk8", "jdk17", "jdk21"], os: "linux", gssapi-login-context-name: "*"} display_name: "GSSAPI (Kerberos) Auth test ${jdk} ${os} ${gssapi-login-context-name}" tags: ["test-gssapi-variant"] tasks: @@ -2120,7 +2127,7 @@ buildvariants: - name: "test_atlas_task_group_search_indexes" - matrix_name: "aws-auth-test" - matrix_spec: { ssl: "nossl", jdk: ["jdk8", "jdk17"], version: ["4.4", "5.0", "6.0", "7.0", "latest"], os: "ubuntu", + matrix_spec: { ssl: "nossl", jdk: ["jdk8", "jdk17", "jdk21"], version: ["4.4", "5.0", "6.0", "7.0", "latest"], os: "ubuntu", aws-credential-provider: "*" } display_name: "MONGODB-AWS Basic Auth test ${version} ${jdk} ${aws-credential-provider}" run_on: ubuntu2004-small @@ -2128,7 +2135,7 @@ buildvariants: - name: "aws-auth-test-with-regular-aws-credentials" - matrix_name: "aws-ec2-auth-test" - matrix_spec: { ssl: "nossl", jdk: ["jdk17"], version: ["7.0"], os: "ubuntu", aws-credential-provider: "*" } + matrix_spec: { ssl: "nossl", jdk: ["jdk21"], version: ["7.0"], os: "ubuntu", aws-credential-provider: "*" } display_name: "MONGODB-AWS Advanced Auth test ${version} ${jdk} ${aws-credential-provider}" run_on: ubuntu2004-small tasks: @@ -2139,14 +2146,14 @@ buildvariants: - name: "aws-auth-test-with-web-identity-credentials" - matrix_name: "accept-api-version-2-test" - matrix_spec: { ssl: "nossl", auth: "noauth", jdk: "jdk17", version: ["5.0", "6.0", "7.0", "latest"], topology: "standalone", os: "linux" } + matrix_spec: { ssl: "nossl", auth: "noauth", jdk: "jdk21", version: ["5.0", "6.0", "7.0", "latest"], topology: "standalone", os: "linux" } display_name: "Accept API Version 2 ${version}" run_on: ubuntu2004-small tasks: - name: "accept-api-version-2-test" - matrix_name: "ocsp-test" - matrix_spec: { auth: "noauth", ssl: "ssl", jdk: "jdk17", version: ["4.4", "5.0", "6.0", "7.0", "latest"], os: "ubuntu" } + matrix_spec: { auth: "noauth", ssl: "ssl", jdk: "jdk21", version: ["4.4", "5.0", "6.0", "7.0", "latest"], os: "ubuntu" } display_name: "OCSP test ${version} ${os}" tasks: - name: ".ocsp" @@ -2176,14 +2183,14 @@ buildvariants: - name: "reactive-streams-tck-test" - matrix_name: "scala-tests" - matrix_spec: { auth: "noauth", ssl: "nossl", jdk: "jdk17", version: ["7.0"], topology: "replicaset", scala: "*", os: "ubuntu" } + matrix_spec: { auth: "noauth", ssl: "nossl", jdk: "jdk21", version: ["7.0"], topology: "replicaset", scala: "*", os: "ubuntu" } display_name: "${scala} ${version} ${topology} ${os}" tags: ["test-scala-variant"] tasks: - name: "scala-tests" - matrix_name: "kotlin-tests" - matrix_spec: { auth: "noauth", ssl: "nossl", jdk: ["jdk8", "jdk17"], version: ["7.0"], topology: "replicaset", os: "ubuntu" } + matrix_spec: { auth: "noauth", ssl: "nossl", jdk: ["jdk8", "jdk17", "jdk21"], version: ["7.0"], topology: "replicaset", os: "ubuntu" } display_name: "Kotlin: ${jdk} ${version} ${topology} ${os}" tags: ["test-kotlin-variant"] tasks: diff --git a/.evergreen/javaConfig.bash b/.evergreen/javaConfig.bash index d791ef4429d..ba5d43a6b59 100644 --- a/.evergreen/javaConfig.bash +++ b/.evergreen/javaConfig.bash @@ -3,6 +3,7 @@ export JDK8="/opt/java/jdk8" export JDK11="/opt/java/jdk11" export JDK17="/opt/java/jdk17" +export JDK21="/opt/java/jdk21" if [ -d "$JDK17" ]; then export JAVA_HOME=$JDK17 diff --git a/build.gradle b/build.gradle index 5d75c92139b..07a4fcbeceb 100644 --- a/build.gradle +++ b/build.gradle @@ -256,8 +256,7 @@ configure(javaCodeCheckedProjects) { testImplementation platform('org.spockframework:spock-bom:2.1-groovy-3.0') testImplementation 'org.spockframework:spock-core' testImplementation 'org.spockframework:spock-junit4' - testImplementation("org.mockito:mockito-core:3.8.0") - testImplementation("org.mockito:mockito-inline:3.8.0") + testImplementation("org.mockito:mockito-core:5.6.0") testImplementation 'cglib:cglib-nodep:2.2.2' testImplementation 'org.objenesis:objenesis:1.3' testImplementation 'org.hamcrest:hamcrest-all:1.3' diff --git a/driver-reactive-streams/build.gradle b/driver-reactive-streams/build.gradle index fee7dc3a439..df7933a64fc 100644 --- a/driver-reactive-streams/build.gradle +++ b/driver-reactive-streams/build.gradle @@ -31,7 +31,7 @@ dependencies { testImplementation project(':driver-core').sourceSets.test.output testImplementation 'org.reactivestreams:reactive-streams-tck:1.0.4' testImplementation 'io.projectreactor:reactor-test' - testImplementation 'org.mockito:mockito-junit-jupiter:3.5.13' + testImplementation 'org.mockito:mockito-junit-jupiter:5.6.0' testRuntimeOnly project(path: ':driver-core', configuration: 'consumableTestRuntimeOnly') } diff --git a/gradle.properties b/gradle.properties index ee249692cf2..66e256e6d55 100644 --- a/gradle.properties +++ b/gradle.properties @@ -20,4 +20,4 @@ scalaVersions=2.11.12,2.12.15,2.13.6 defaultScalaVersions=2.13.6 runOnceTasks=clean,release org.gradle.java.installations.auto-download=false -org.gradle.java.installations.fromEnv=JDK8,JDK11,JDK17 +org.gradle.java.installations.fromEnv=JDK8,JDK11,JDK17,JDK21