diff --git a/.github/workflows/benchmark-tags.yml b/.github/workflows/benchmark-tags.yml index 45bdde09133..486a1b0840d 100644 --- a/.github/workflows/benchmark-tags.yml +++ b/.github/workflows/benchmark-tags.yml @@ -31,7 +31,7 @@ jobs: uses: actions/setup-java@dded0888837ed1f317902acf8a20df0ad188d165 # v5.0.0 with: distribution: temurin - java-version: 17 + java-version: 21 - name: Set up gradle uses: gradle/actions/setup-gradle@4d9f0ba0025fe599b4ebab900eb7f3a1d93ef4c2 # v5.0.0 diff --git a/.github/workflows/benchmark.yml b/.github/workflows/benchmark.yml index 83aed52b814..a95613ccdd7 100644 --- a/.github/workflows/benchmark.yml +++ b/.github/workflows/benchmark.yml @@ -33,7 +33,7 @@ jobs: uses: actions/setup-java@dded0888837ed1f317902acf8a20df0ad188d165 # v5.0.0 with: distribution: temurin - java-version: 17 + java-version: 21 - name: Set up gradle uses: gradle/actions/setup-gradle@4d9f0ba0025fe599b4ebab900eb7f3a1d93ef4c2 # v5.0.0 diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index f41d2f08a79..ca83c4337d7 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -66,7 +66,7 @@ jobs: uses: actions/setup-java@dded0888837ed1f317902acf8a20df0ad188d165 # v5.0.0 with: distribution: temurin - java-version: 17 + java-version: 21 - name: Set up gradle uses: gradle/actions/setup-gradle@4d9f0ba0025fe599b4ebab900eb7f3a1d93ef4c2 # v5.0.0 @@ -143,7 +143,7 @@ jobs: uses: actions/setup-java@dded0888837ed1f317902acf8a20df0ad188d165 # v5.0.0 with: distribution: temurin - java-version: 17 + java-version: 21 - name: Set up gradle uses: gradle/actions/setup-gradle@4d9f0ba0025fe599b4ebab900eb7f3a1d93ef4c2 # v5.0.0 diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml index f613bcc9b34..36030a3155f 100644 --- a/.github/workflows/codeql.yml +++ b/.github/workflows/codeql.yml @@ -33,12 +33,12 @@ jobs: steps: - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 - - name: Set up Java 17 + - name: Set up Java 21 if: matrix.language == 'java' uses: actions/setup-java@dded0888837ed1f317902acf8a20df0ad188d165 # v5.0.0 with: distribution: temurin - java-version: 17 + java-version: 21 - name: Set up gradle if: matrix.language == 'java' diff --git a/.github/workflows/javadoc-crawler.yml b/.github/workflows/javadoc-crawler.yml index 714e148a9b5..415a6c7e400 100644 --- a/.github/workflows/javadoc-crawler.yml +++ b/.github/workflows/javadoc-crawler.yml @@ -17,7 +17,7 @@ jobs: - uses: actions/setup-java@dded0888837ed1f317902acf8a20df0ad188d165 # v5.0.0 with: distribution: temurin - java-version: 17 + java-version: 21 - name: Set up gradle uses: gradle/actions/setup-gradle@4d9f0ba0025fe599b4ebab900eb7f3a1d93ef4c2 # v5.0.0 diff --git a/.github/workflows/owasp-dependency-check-daily.yml b/.github/workflows/owasp-dependency-check-daily.yml index 1b7ec72adab..5dbe5c3d06d 100644 --- a/.github/workflows/owasp-dependency-check-daily.yml +++ b/.github/workflows/owasp-dependency-check-daily.yml @@ -19,7 +19,7 @@ jobs: - uses: actions/setup-java@dded0888837ed1f317902acf8a20df0ad188d165 # v5.0.0 with: distribution: temurin - java-version: 17 + java-version: 21 - name: Set up gradle uses: gradle/actions/setup-gradle@4d9f0ba0025fe599b4ebab900eb7f3a1d93ef4c2 # v5.0.0 diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 10fdb23d3eb..165a9b06704 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -25,7 +25,7 @@ jobs: - uses: actions/setup-java@dded0888837ed1f317902acf8a20df0ad188d165 # v5.0.0 with: distribution: temurin - java-version: 17 + java-version: 21 - name: Set up gradle uses: gradle/actions/setup-gradle@4d9f0ba0025fe599b4ebab900eb7f3a1d93ef4c2 # v5.0.0 @@ -183,7 +183,7 @@ jobs: uses: actions/setup-java@dded0888837ed1f317902acf8a20df0ad188d165 # v5.0.0 with: distribution: temurin - java-version: 17 + java-version: 21 - name: Set up Gradle uses: gradle/actions/setup-gradle@4d9f0ba0025fe599b4ebab900eb7f3a1d93ef4c2 # v5.0.0 diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 5c02e405c0d..9cb55cf8a37 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -16,7 +16,7 @@ automatic check once you submit a PR, but you can also sign it after opening you ## Requirements -Java 17 or higher is required to build the projects in this repository. The built artifacts can be +Java 21 or higher is required to build the projects in this repository. The built artifacts can be used on Java 8 or higher. ## Building opentelemetry-java diff --git a/buildSrc/build.gradle.kts b/buildSrc/build.gradle.kts index c7486897383..d992f8d17a1 100644 --- a/buildSrc/build.gradle.kts +++ b/buildSrc/build.gradle.kts @@ -5,23 +5,6 @@ plugins { id("com.diffplug.spotless") version "8.0.0" } -if (!hasLauncherForJavaVersion(17)) { - throw GradleException( - "JDK 17 is required to build and gradle was unable to detect it on the system. " + - "Please install it and see https://docs.gradle.org/current/userguide/toolchains.html#sec:auto_detection " + - "for details on how gradle detects java toolchains." - ) -} - -fun hasLauncherForJavaVersion(version: Int): Boolean { - return try { - javaToolchains.launcherFor { languageVersion = JavaLanguageVersion.of(version) }.get() - true - } catch (e: Exception) { - false - } -} - spotless { kotlinGradle { ktlint().editorConfigOverride(mapOf( @@ -68,11 +51,3 @@ dependencies { implementation("org.owasp:dependency-check-gradle:12.1.8") implementation("ru.vyarus:gradle-animalsniffer-plugin:2.0.1") } - -// We can't apply conventions to this build so include important ones such as the Java compilation -// target. -java { - toolchain { - languageVersion.set(JavaLanguageVersion.of(17)) - } -} diff --git a/buildSrc/src/main/kotlin/otel.java-conventions.gradle.kts b/buildSrc/src/main/kotlin/otel.java-conventions.gradle.kts index d4216c31d2a..72cf605ab9c 100644 --- a/buildSrc/src/main/kotlin/otel.java-conventions.gradle.kts +++ b/buildSrc/src/main/kotlin/otel.java-conventions.gradle.kts @@ -33,7 +33,7 @@ tasks.withType().configureEach { java { toolchain { - languageVersion.set(JavaLanguageVersion.of(17)) + languageVersion.set(JavaLanguageVersion.of(21)) } withJavadocJar() @@ -88,6 +88,8 @@ tasks { "-Xlint:-processing", // We suppress the "options" warning because it prevents compilation on modern JDKs "-Xlint:-options", + "-Xlint:-serial", + "-Xlint:-this-escape", // Fail build on any warning "-Werror", ), diff --git a/settings.gradle.kts b/settings.gradle.kts index b8cce279c90..cb59909198b 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -6,12 +6,13 @@ pluginManagement { id("org.jsonschema2pojo") version "1.2.2" id("io.github.gradle-nexus.publish-plugin") version "2.0.0" id("org.graalvm.buildtools.native") version "0.10.6" + id("org.gradle.toolchains.foojay-resolver-convention") version "1.0.0" } } plugins { - id("org.gradle.toolchains.foojay-resolver-convention") version "1.0.0" id("com.gradle.develocity") + id("org.gradle.toolchains.foojay-resolver-convention") } dependencyResolutionManagement {