From b3f9d69942b4ae93e3a1a4f70c8677f243643058 Mon Sep 17 00:00:00 2001 From: Sean Li Date: Thu, 23 Oct 2025 17:28:48 -0700 Subject: [PATCH 1/4] Update gradle toolchain to Java 21 --- .github/workflows/build-common.yml | 4 ++-- .github/workflows/codeql-daily.yml | 8 ++++---- .github/workflows/owasp-dependency-check-daily.yml | 4 ++-- buildSrc/src/main/kotlin/ai.java-conventions.gradle.kts | 2 +- buildSrc/src/main/kotlin/ai.smoke-test.gradle.kts | 2 +- .../DiagnosticExtension/MockExtension/build.gradle.kts | 2 +- .../apps/Diagnostics/JfrFileReader/build.gradle.kts | 2 +- 7 files changed, 12 insertions(+), 12 deletions(-) diff --git a/.github/workflows/build-common.yml b/.github/workflows/build-common.yml index 839ec42c7db..3593bed8fc3 100644 --- a/.github/workflows/build-common.yml +++ b/.github/workflows/build-common.yml @@ -228,11 +228,11 @@ jobs: steps: - uses: actions/checkout@v5 - - name: Set up Java 17 + - name: Set up Java 21 uses: actions/setup-java@v5 with: distribution: temurin - java-version: 17 + java-version: 21 - name: Build and install local azure-monitor-opentelemetry-autoconfigure dependency if: env.AZURE_MONITOR_OPENTELEMETRY_AUTOCONFIGURE_SNAPSHOT != '' diff --git a/.github/workflows/codeql-daily.yml b/.github/workflows/codeql-daily.yml index 292bb5575d4..929ccbc3da3 100644 --- a/.github/workflows/codeql-daily.yml +++ b/.github/workflows/codeql-daily.yml @@ -20,11 +20,11 @@ jobs: steps: - uses: actions/checkout@v5 - - name: Set up Java 17 + - name: Set up Java 21 uses: actions/setup-java@v5 with: distribution: temurin - java-version: 17 + java-version: 21 - name: Setup Gradle uses: gradle/actions/setup-gradle@v5 @@ -54,11 +54,11 @@ jobs: steps: - uses: actions/checkout@v5 - - name: Set up Java 17 (required for JNI compilation) + - name: Set up Java 21 (required for JNI compilation) uses: actions/setup-java@v5 with: distribution: temurin - java-version: 17 + java-version: 21 - name: Setup Visual Studio Build Tools uses: microsoft/setup-msbuild@v2 diff --git a/.github/workflows/owasp-dependency-check-daily.yml b/.github/workflows/owasp-dependency-check-daily.yml index e1fe0f80df6..fda6b86cb56 100644 --- a/.github/workflows/owasp-dependency-check-daily.yml +++ b/.github/workflows/owasp-dependency-check-daily.yml @@ -13,11 +13,11 @@ jobs: steps: - uses: actions/checkout@v5 - - name: Set up Java 17 + - name: Set up Java 21 uses: actions/setup-java@v5 with: distribution: temurin - java-version: 17 + java-version: 21 - name: Setup Gradle uses: gradle/actions/setup-gradle@v5 diff --git a/buildSrc/src/main/kotlin/ai.java-conventions.gradle.kts b/buildSrc/src/main/kotlin/ai.java-conventions.gradle.kts index d878e9a4496..f6aaa5fdd59 100644 --- a/buildSrc/src/main/kotlin/ai.java-conventions.gradle.kts +++ b/buildSrc/src/main/kotlin/ai.java-conventions.gradle.kts @@ -19,7 +19,7 @@ repositories { java { toolchain { - languageVersion.set(JavaLanguageVersion.of(17)) + languageVersion.set(JavaLanguageVersion.of(21)) } // See https://docs.gradle.org/current/userguide/upgrading_version_5.html, Automatic target JVM version diff --git a/buildSrc/src/main/kotlin/ai.smoke-test.gradle.kts b/buildSrc/src/main/kotlin/ai.smoke-test.gradle.kts index 6e0c264bf15..374b374286f 100644 --- a/buildSrc/src/main/kotlin/ai.smoke-test.gradle.kts +++ b/buildSrc/src/main/kotlin/ai.smoke-test.gradle.kts @@ -24,7 +24,7 @@ configurations["smokeTestRuntimeOnly"].extendsFrom(configurations.runtimeOnly.ge // FIXME (trask) copy-pasted from ai.java-conventions.gradle java { toolchain { - languageVersion.set(JavaLanguageVersion.of(17)) + languageVersion.set(JavaLanguageVersion.of(21)) } // See https://docs.gradle.org/current/userguide/upgrading_version_5.html, Automatic target JVM version diff --git a/smoke-tests/apps/DiagnosticExtension/MockExtension/build.gradle.kts b/smoke-tests/apps/DiagnosticExtension/MockExtension/build.gradle.kts index 9b7e7a601da..c206e637fd2 100644 --- a/smoke-tests/apps/DiagnosticExtension/MockExtension/build.gradle.kts +++ b/smoke-tests/apps/DiagnosticExtension/MockExtension/build.gradle.kts @@ -10,7 +10,7 @@ dependencies { java { toolchain { - languageVersion.set(JavaLanguageVersion.of(17)) + languageVersion.set(JavaLanguageVersion.of(21)) } } diff --git a/smoke-tests/apps/Diagnostics/JfrFileReader/build.gradle.kts b/smoke-tests/apps/Diagnostics/JfrFileReader/build.gradle.kts index 65487e3da48..c60e970fd96 100644 --- a/smoke-tests/apps/Diagnostics/JfrFileReader/build.gradle.kts +++ b/smoke-tests/apps/Diagnostics/JfrFileReader/build.gradle.kts @@ -8,7 +8,7 @@ dependencies { java { toolchain { - languageVersion.set(JavaLanguageVersion.of(17)) + languageVersion.set(JavaLanguageVersion.of(21)) } } From df850d482bf2d603c9eb67210f4d1ea3025850ff Mon Sep 17 00:00:00 2001 From: Sean Li Date: Thu, 23 Oct 2025 17:46:56 -0700 Subject: [PATCH 2/4] Update a few more JDK versions --- .github/workflows/build-common.yml | 8 ++++---- .github/workflows/copilot-setup-steps.yml | 2 +- .github/workflows/perf-test_daily.yml | 2 +- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/.github/workflows/build-common.yml b/.github/workflows/build-common.yml index 3593bed8fc3..acefc39ad0f 100644 --- a/.github/workflows/build-common.yml +++ b/.github/workflows/build-common.yml @@ -22,7 +22,7 @@ jobs: uses: actions/setup-java@v5 with: distribution: temurin - java-version: 17 + java-version: 21 - name: Setup Gradle uses: gradle/actions/setup-gradle@v5 @@ -46,7 +46,7 @@ jobs: uses: actions/setup-java@v5 with: distribution: temurin - java-version: 17 + java-version: 21 - name: Build and install local azure-monitor-opentelemetry-autoconfigure dependency if: env.AZURE_MONITOR_OPENTELEMETRY_AUTOCONFIGURE_SNAPSHOT != '' @@ -90,7 +90,7 @@ jobs: uses: actions/setup-java@v5 with: distribution: temurin - java-version: 17 + java-version: 21 - name: Build and install local azure-monitor-opentelemetry-autoconfigure dependency if: env.AZURE_MONITOR_OPENTELEMETRY_AUTOCONFIGURE_SNAPSHOT != '' @@ -160,7 +160,7 @@ jobs: uses: actions/setup-java@v5 with: distribution: temurin - java-version: 17 + java-version: 21 - name: Build and install local azure-monitor-opentelemetry-autoconfigure dependency if: env.AZURE_MONITOR_OPENTELEMETRY_AUTOCONFIGURE_SNAPSHOT != '' diff --git a/.github/workflows/copilot-setup-steps.yml b/.github/workflows/copilot-setup-steps.yml index 74c9d1a0f72..1d63185c226 100644 --- a/.github/workflows/copilot-setup-steps.yml +++ b/.github/workflows/copilot-setup-steps.yml @@ -31,7 +31,7 @@ jobs: uses: actions/setup-java@v5 with: distribution: temurin - java-version: 17 + java-version: 21 - name: Setup Gradle uses: gradle/actions/setup-gradle@v5 diff --git a/.github/workflows/perf-test_daily.yml b/.github/workflows/perf-test_daily.yml index b83cdc4678c..bd0708738c8 100644 --- a/.github/workflows/perf-test_daily.yml +++ b/.github/workflows/perf-test_daily.yml @@ -16,7 +16,7 @@ jobs: uses: actions/setup-java@v5 with: distribution: temurin - java-version: 17 + java-version: 21 - name: Setup Gradle uses: gradle/actions/setup-gradle@v5 From d213d4179982efc0e3e0ebc7686bb785b320fb46 Mon Sep 17 00:00:00 2001 From: Sean Li Date: Thu, 23 Oct 2025 18:44:16 -0700 Subject: [PATCH 3/4] Ignore warnings regarding Java 8 compilation warnings --- buildSrc/src/main/kotlin/ai.java-conventions.gradle.kts | 6 ++++++ buildSrc/src/main/kotlin/ai.smoke-test.gradle.kts | 6 ++++++ .../apps/DiagnosticExtension/MockExtension/build.gradle.kts | 6 ++++++ 3 files changed, 18 insertions(+) diff --git a/buildSrc/src/main/kotlin/ai.java-conventions.gradle.kts b/buildSrc/src/main/kotlin/ai.java-conventions.gradle.kts index f6aaa5fdd59..eb2ed7e0f50 100644 --- a/buildSrc/src/main/kotlin/ai.java-conventions.gradle.kts +++ b/buildSrc/src/main/kotlin/ai.java-conventions.gradle.kts @@ -32,6 +32,12 @@ tasks.withType().configureEach { with(options) { release.set(8) compilerArgs.add("-Werror") + // We need to support compiling to Java 8 even when using JDK 21 to build. + // Suppress obsolete source/target warning added in JDK 21 while retaining -Werror for everything else. + // This only disables the 'options' lint category (e.g., the obsolete source/target messages). + if (JavaVersion.current().isCompatibleWith(JavaVersion.VERSION_21)) { + compilerArgs.add("-Xlint:-options") + } } } diff --git a/buildSrc/src/main/kotlin/ai.smoke-test.gradle.kts b/buildSrc/src/main/kotlin/ai.smoke-test.gradle.kts index 374b374286f..71bc54b42ef 100644 --- a/buildSrc/src/main/kotlin/ai.smoke-test.gradle.kts +++ b/buildSrc/src/main/kotlin/ai.smoke-test.gradle.kts @@ -38,6 +38,12 @@ tasks.withType().configureEach { with(options) { release.set(8) compilerArgs.add("-Werror") + // We need to support compiling to Java 8 even when using JDK 21 to build. + // Suppress obsolete source/target warning added in JDK 21 while retaining -Werror for everything else. + // This only disables the 'options' lint category (e.g., the obsolete source/target messages). + if (JavaVersion.current().isCompatibleWith(JavaVersion.VERSION_21)) { + compilerArgs.add("-Xlint:-options") + } } } diff --git a/smoke-tests/apps/DiagnosticExtension/MockExtension/build.gradle.kts b/smoke-tests/apps/DiagnosticExtension/MockExtension/build.gradle.kts index c206e637fd2..65831f0bf3e 100644 --- a/smoke-tests/apps/DiagnosticExtension/MockExtension/build.gradle.kts +++ b/smoke-tests/apps/DiagnosticExtension/MockExtension/build.gradle.kts @@ -18,6 +18,12 @@ tasks.withType().configureEach { with(options) { release.set(8) compilerArgs.add("-Werror") + // We need to support compiling to Java 8 even when using JDK 21 to build. + // Suppress obsolete source/target warning added in JDK 21 while retaining -Werror for everything else. + // This only disables the 'options' lint category (e.g., the obsolete source/target messages). + if (JavaVersion.current().isCompatibleWith(JavaVersion.VERSION_21)) { + compilerArgs.add("-Xlint:-options") + } } } From 85b7b5a7f3477e509d723ed90d9f6349f70534ed Mon Sep 17 00:00:00 2001 From: Sean Li Date: Fri, 24 Oct 2025 14:52:27 -0700 Subject: [PATCH 4/4] remove JDK 21 check because it'll always be true from now on --- buildSrc/src/main/kotlin/ai.java-conventions.gradle.kts | 6 ++---- buildSrc/src/main/kotlin/ai.smoke-test.gradle.kts | 6 ++---- .../apps/DiagnosticExtension/MockExtension/build.gradle.kts | 6 ++---- 3 files changed, 6 insertions(+), 12 deletions(-) diff --git a/buildSrc/src/main/kotlin/ai.java-conventions.gradle.kts b/buildSrc/src/main/kotlin/ai.java-conventions.gradle.kts index eb2ed7e0f50..7fef177d845 100644 --- a/buildSrc/src/main/kotlin/ai.java-conventions.gradle.kts +++ b/buildSrc/src/main/kotlin/ai.java-conventions.gradle.kts @@ -32,12 +32,10 @@ tasks.withType().configureEach { with(options) { release.set(8) compilerArgs.add("-Werror") - // We need to support compiling to Java 8 even when using JDK 21 to build. + // We need to support compiling to Java 8. // Suppress obsolete source/target warning added in JDK 21 while retaining -Werror for everything else. // This only disables the 'options' lint category (e.g., the obsolete source/target messages). - if (JavaVersion.current().isCompatibleWith(JavaVersion.VERSION_21)) { - compilerArgs.add("-Xlint:-options") - } + compilerArgs.add("-Xlint:-options") } } diff --git a/buildSrc/src/main/kotlin/ai.smoke-test.gradle.kts b/buildSrc/src/main/kotlin/ai.smoke-test.gradle.kts index 71bc54b42ef..805acb06c4a 100644 --- a/buildSrc/src/main/kotlin/ai.smoke-test.gradle.kts +++ b/buildSrc/src/main/kotlin/ai.smoke-test.gradle.kts @@ -38,12 +38,10 @@ tasks.withType().configureEach { with(options) { release.set(8) compilerArgs.add("-Werror") - // We need to support compiling to Java 8 even when using JDK 21 to build. + // We need to support compiling to Java 8. // Suppress obsolete source/target warning added in JDK 21 while retaining -Werror for everything else. // This only disables the 'options' lint category (e.g., the obsolete source/target messages). - if (JavaVersion.current().isCompatibleWith(JavaVersion.VERSION_21)) { - compilerArgs.add("-Xlint:-options") - } + compilerArgs.add("-Xlint:-options") } } diff --git a/smoke-tests/apps/DiagnosticExtension/MockExtension/build.gradle.kts b/smoke-tests/apps/DiagnosticExtension/MockExtension/build.gradle.kts index 65831f0bf3e..3b60c3d9236 100644 --- a/smoke-tests/apps/DiagnosticExtension/MockExtension/build.gradle.kts +++ b/smoke-tests/apps/DiagnosticExtension/MockExtension/build.gradle.kts @@ -18,12 +18,10 @@ tasks.withType().configureEach { with(options) { release.set(8) compilerArgs.add("-Werror") - // We need to support compiling to Java 8 even when using JDK 21 to build. + // We need to support compiling to Java 8. // Suppress obsolete source/target warning added in JDK 21 while retaining -Werror for everything else. // This only disables the 'options' lint category (e.g., the obsolete source/target messages). - if (JavaVersion.current().isCompatibleWith(JavaVersion.VERSION_21)) { - compilerArgs.add("-Xlint:-options") - } + compilerArgs.add("-Xlint:-options") } }