From 1d82cf8b51171f2e1c01c582529d8f558940f41b Mon Sep 17 00:00:00 2001 From: iirina Date: Thu, 13 Jun 2019 03:06:38 -0700 Subject: [PATCH] Expose java toolchains for java 10 and 11 in @bazel_tools//tools/jdk The default java_toolchain in bazel supports language level 10 and 11. RELNOTES: `@bazel_tools//tools/jdk:toolchain_java10` and `@bazel_tools//tools/jdk:toolchain_java11` are now available to enable java 10, respectively java 11 language level support. Closes #8624. PiperOrigin-RevId: 252995471 --- .../shell/bazel/bazel_java_test_defaults.sh | 74 ++++++++++++++++++- tools/jdk/BUILD | 2 +- 2 files changed, 73 insertions(+), 3 deletions(-) diff --git a/src/test/shell/bazel/bazel_java_test_defaults.sh b/src/test/shell/bazel/bazel_java_test_defaults.sh index e68d12ff25a1ac..9db171733e9a99 100755 --- a/src/test/shell/bazel/bazel_java_test_defaults.sh +++ b/src/test/shell/bazel/bazel_java_test_defaults.sh @@ -17,7 +17,7 @@ # Tests the java rules with the default values provided by Bazel. # -add_to_bazelrc "build --javabase=@bazel_tools//tools/jdk:remote_jdk11" +set -euo pipefail # --- begin runfiles.bash initialization --- if [[ ! -d "${RUNFILES_DIR:-/dev/null}" && ! -f "${RUNFILES_MANIFEST_FILE:-/dev/null}" ]]; then @@ -83,10 +83,80 @@ public class JavaBinary { } } EOF - bazel run java/main:JavaBinary --java_toolchain=//java/main:default_toolchain --verbose_failures -s &>"${TEST_log}" + bazel run java/main:JavaBinary \ + --java_toolchain=//java/main:default_toolchain \ + --javabase=@bazel_tools//tools/jdk:remote_jdk11 \ + --verbose_failures -s &>"${TEST_log}" \ + || fail "Building with //java/main:default_toolchain failed" expect_log "Successfully executed JavaBinary!" javap -verbose -cp bazel-bin/java/main/JavaBinary.jar JavaBinary | grep major &>"${TEST_log}" expect_log "major version: 52" } +function test_tools_jdk_toolchain_java10() { + mkdir -p java/main + cat >java/main/BUILD <java/main/JavaBinary.java <(); + for (int i = 0; i < 3; i++) { + myList.add("myString" + i); + } + + for (String string : myList) { + System.out.println(string); + } + } +} +EOF + bazel run java/main:JavaBinary \ + --java_toolchain=@bazel_tools//tools/jdk:toolchain_java10 \ + --javabase=@bazel_tools//tools/jdk:remote_jdk10 \ + --verbose_failures -s &>"${TEST_log}" \ + || fail "Building with @bazel_tools//tools/jdk:toolchain_java10 failed" + expect_log "myString0" + expect_log "myString1" + expect_log "myString2" + javap -verbose -cp bazel-bin/java/main/JavaBinary.jar JavaBinary | grep major &>"${TEST_log}" + expect_log "major version: 54" +} + +function test_tools_jdk_toolchain_java11() { + mkdir -p java/main + cat >java/main/BUILD <java/main/JavaBinary.java <"${TEST_log}" \ + || fail "Building with @bazel_tools//tools/jdk:toolchain_java11 failed" + expect_log "strip_trailing_java11" + javap -verbose -cp bazel-bin/java/main/JavaBinary.jar JavaBinary | grep major &>"${TEST_log}" + expect_log "major version: 55" +} + run_suite "Java integration tests with default Bazel values" \ No newline at end of file diff --git a/tools/jdk/BUILD b/tools/jdk/BUILD index fdd692fd172937..3a621488406b4e 100644 --- a/tools/jdk/BUILD +++ b/tools/jdk/BUILD @@ -378,7 +378,7 @@ default_java_toolchain( jvm_opts = [], ) -RELEASES = (8, 9) +RELEASES = (8, 9, 10, 11) [ default_java_toolchain(