Add javac11 testing.

This change adds the following:
* a target that builds a java_tools zip containing javac from jdk11
* a test target that runs the java integration tests with the java_toolchain containing javac 11 and the java11 runtime

Closes #8300.

PiperOrigin-RevId: 247922124
diff --git a/src/BUILD b/src/BUILD
index 196ecda..d7f509d 100644
--- a/src/BUILD
+++ b/src/BUILD
@@ -556,31 +556,22 @@
     "//conditions:default": [],
 })
 
-genrule(
-    name = "jars_java_tools_java9_zip",
-    srcs = JAVA_TOOLS_DEPLOY_JARS + [
-        "@java_tools_langtools_javac9//:jdk_compiler_jar",
-        "@java_tools_langtools_javac9//:java_compiler_jar",
-        "@java_tools_langtools_javac9//:javac_jar",
-    ],
-    outs = ["jars_java_tools_java9.zip"],
-    cmd = "zip -qjX $@ $$(echo $(SRCS) | sort)",
-    visibility = ["//visibility:private"],
-)
+JAVA_VERSIONS = ("9", "10", "11")
 
-genrule(
-    name = "jars_java_tools_java10_zip",
-    srcs = JAVA_TOOLS_DEPLOY_JARS + [
-        "@java_tools_langtools_javac10//:jdk_compiler_jar",
-        "@java_tools_langtools_javac10//:java_compiler_jar",
-        "@java_tools_langtools_javac10//:javac_jar",
-    ],
-    outs = ["jars_java_tools_java10.zip"],
-    cmd = "zip -qjX $@ $$(echo $(SRCS) | sort)",
-    visibility = ["//visibility:private"],
-)
-
-JAVA_VERSIONS = ("9", "10")
+[
+    genrule(
+        name = "jars_java_tools_java" + java_version + "_zip",
+        srcs = JAVA_TOOLS_DEPLOY_JARS + [
+            "@java_tools_langtools_javac" + java_version + "//:jdk_compiler_jar",
+            "@java_tools_langtools_javac" + java_version + "//:java_compiler_jar",
+            "@java_tools_langtools_javac" + java_version + "//:javac_jar",
+        ],
+        outs = ["jars_java_tools_java" + java_version + ".zip"],
+        cmd = "zip -qjX $@ $$(echo $(SRCS) | sort)",
+        visibility = ["//visibility:private"],
+    )
+    for java_version in JAVA_VERSIONS
+]
 
 [
     genrule(
diff --git a/src/test/shell/bazel/BUILD b/src/test/shell/bazel/BUILD
index 6c4cd86..af623a1 100644
--- a/src/test/shell/bazel/BUILD
+++ b/src/test/shell/bazel/BUILD
@@ -188,53 +188,34 @@
     ],
 )
 
-sh_test(
-    name = "bazel_java_test_jdk9_toolchain_head",
-    size = "large",
-    timeout = "eternal",
-    srcs = ["bazel_java_test.sh"],
-    args = [
-        # --java_toolchain
-        "@local_java_tools//:toolchain",
-        # java_tools zip to test
-        "src/java_tools_java9.zip",
-        # --javabase value
-    ] + select({
-        "//src/conditions:darwin": ["@openjdk9_darwin_archive//:runtime"],
-        "//src/conditions:darwin_x86_64": ["@openjdk9_darwin_archive//:runtime"],
-        "//src/conditions:windows": ["@openjdk9_windows_archive//:runtime"],
-        "//src/conditions:linux_x86_64": ["@openjdk9_linux_archive//:runtime"],
-    }),
-    data = [
-        ":test-deps",
-        "//src:java_tools_java9_zip",
-        "@bazel_tools//tools/bash/runfiles",
-    ],
-)
+JAVA_VERSIONS = ("9", "10", "11")
 
-sh_test(
-    name = "bazel_java_test_jdk10_toolchain_head",
-    size = "large",
-    timeout = "eternal",
-    srcs = ["bazel_java_test.sh"],
-    args = [
-        # --java_toolchain
-        "@local_java_tools//:toolchain",
-        # java_tools zip to test
-        "src/java_tools_java10.zip",
-        # --javabase value
-    ] + select({
-        "//src/conditions:darwin": ["@openjdk10_darwin_archive//:runtime"],
-        "//src/conditions:darwin_x86_64": ["@openjdk10_darwin_archive//:runtime"],
-        "//src/conditions:windows": ["@openjdk10_windows_archive//:runtime"],
-        "//src/conditions:linux_x86_64": ["@openjdk10_linux_archive//:runtime"],
-    }),
-    data = [
-        ":test-deps",
-        "//src:java_tools_java10_zip",
-        "@bazel_tools//tools/bash/runfiles",
-    ],
-)
+[
+    sh_test(
+        name = "bazel_java_test_jdk" + java_version + "_toolchain_head",
+        size = "large",
+        timeout = "eternal",
+        srcs = ["bazel_java_test.sh"],
+        args = [
+            # --java_toolchain
+            "@local_java_tools//:toolchain",
+            # java_tools zip to test
+            "src/java_tools_java" + java_version + ".zip",
+            # --javabase value
+        ] + select({
+            "//src/conditions:darwin": ["@openjdk" + java_version + "_darwin_archive//:runtime"],
+            "//src/conditions:darwin_x86_64": ["@openjdk" + java_version + "_darwin_archive//:runtime"],
+            "//src/conditions:windows": ["@openjdk" + java_version + "_windows_archive//:runtime"],
+            "//src/conditions:linux_x86_64": ["@openjdk" + java_version + "_linux_archive//:runtime"],
+        }),
+        data = [
+            ":test-deps",
+            "//src:java_tools_java" + java_version + "_zip",
+            "@bazel_tools//tools/bash/runfiles",
+        ],
+    )
+    for java_version in JAVA_VERSIONS
+]
 
 [
     sh_test(
@@ -261,7 +242,7 @@
         # This test is only run by the java_tools binaries pipeline.
         tags = ["manual"],
     )
-    for java_version in ("9", "10")
+    for java_version in ("9", "10", "11")
 ]
 
 sh_test(
diff --git a/src/test/shell/bazel/bazel_java_test.sh b/src/test/shell/bazel/bazel_java_test.sh
index c5b33c3..dca46e4 100755
--- a/src/test/shell/bazel/bazel_java_test.sh
+++ b/src/test/shell/bazel/bazel_java_test.sh
@@ -167,6 +167,33 @@
         "https://mirror.bazel.build/openjdk/azul-zulu10.2+3-jdk10.0.1/zulu10.2+3-jdk10.0.1-win_x64.zip",
     ],
 )
+
+http_archive(
+    name = "openjdk11_linux_archive",
+    build_file_content = "java_runtime(name = 'runtime', srcs =  glob(['**']), visibility = ['//visibility:public'])",
+    strip_prefix = "zulu11.31.11-ca-jdk11.0.3-linux_x64",
+    urls = [
+        "https://mirror.bazel.build/openjdk/azul-zulu11.31.11-ca-jdk11.0.3/zulu11.31.11-ca-jdk11.0.3-linux_x64.tar.gz",
+    ],
+)
+
+http_archive(
+    name = "openjdk11_darwin_archive",
+    build_file_content = "java_runtime(name = 'runtime', srcs =  glob(['**']), visibility = ['//visibility:public'])",
+    strip_prefix = "zulu11.31.11-ca-jdk11.0.3-macosx_x64",
+    urls = [
+        "https://mirror.bazel.build/openjdk/azul-zulu11.31.11-ca-jdk11.0.3/zulu11.31.11-ca-jdk11.0.3-macosx_x64.tar.gz",
+    ],
+)
+
+http_archive(
+    name = "openjdk11_windows_archive",
+    build_file_content = "java_runtime(name = 'runtime', srcs =  glob(['**']), visibility = ['//visibility:public'])",
+    strip_prefix = "zulu11.31.11-ca-jdk11.0.3-win_x64",
+    urls = [
+        "https://mirror.bazel.build/openjdk/azul-zulu11.31.11-ca-jdk11.0.3/zulu11.31.11-ca-jdk11.0.3-win_x64.zip",
+    ],
+)
 EOF
 }
 
diff --git a/src/upload_all_java_tools.sh b/src/upload_all_java_tools.sh
index ccdd024..6955b16 100755
--- a/src/upload_all_java_tools.sh
+++ b/src/upload_all_java_tools.sh
@@ -48,7 +48,7 @@
 
 # Passing the same commit_hash and timestamp to all targets to mark all the artifacts
 # uploaded on GCS with the same identifier.
-for java_version in 9 10; do
+for java_version in 9 10 11; do
 
     bazel build //src:java_tools_java${java_version}_zip
     zip_path=${PWD}/bazel-bin/src/java_tools_java${java_version}.zip