diff --git a/.github/workflows/build-common.yml b/.github/workflows/build-common.yml index 839ec42c7db..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 != '' @@ -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/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/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/.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 diff --git a/buildSrc/src/main/kotlin/ai.java-conventions.gradle.kts b/buildSrc/src/main/kotlin/ai.java-conventions.gradle.kts index d878e9a4496..7fef177d845 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 @@ -32,6 +32,10 @@ tasks.withType().configureEach { with(options) { release.set(8) compilerArgs.add("-Werror") + // 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). + 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 6e0c264bf15..805acb06c4a 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 @@ -38,6 +38,10 @@ tasks.withType().configureEach { with(options) { release.set(8) compilerArgs.add("-Werror") + // 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). + 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 9b7e7a601da..3b60c3d9236 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)) } } @@ -18,6 +18,10 @@ tasks.withType().configureEach { with(options) { release.set(8) compilerArgs.add("-Werror") + // 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). + compilerArgs.add("-Xlint:-options") } } 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)) } }