Switch the embedded JDK to version 17.

This allows removing the "cached" allmodules and minimized jdk archives, since `jlink` is deterministic in newer JDK versions.

Fixes https://github.com/bazelbuild/bazel/issues/14785.

Closes #16541.

PiperOrigin-RevId: 489464974
Change-Id: If5bb457d20cf79b70ba03b862eff302ef4d296d2
diff --git a/src/BUILD b/src/BUILD
index 4bf0179..d06feab 100644
--- a/src/BUILD
+++ b/src/BUILD
@@ -42,7 +42,6 @@
 ) for suffix, embedded_tools_target in {
     "_jdk_allmodules": [":embedded_tools_jdk_allmodules"],
     "_jdk_minimal": [":embedded_tools_jdk_minimal"],
-    "_dev_jdk": [":embedded_tools_dev_jdk"],
     "_nojdk": [":embedded_tools_nojdk"],
     "_notools": [],
 }.items()]
@@ -125,9 +124,8 @@
         "//src/test:__subpackages__",  # For integration tests
     ],
 ) for suffix, jdk in {
-    "_jdk_allmodules": [":embedded_jdk_allmodules_cached"],
-    "_jdk_minimal": [":embedded_jdk_minimal_cached"],
-    "_dev_jdk": [":embedded_jdk_minimal"],
+    "_jdk_allmodules": [":embedded_jdk_allmodules"],
+    "_jdk_minimal": [":embedded_jdk_minimal"],
     "_nojdk": [],
 }.items()]
 
@@ -142,56 +140,6 @@
 )
 
 filegroup(
-    name = "embedded_jdk_allmodules_cached",
-    srcs = select({
-        "//src/conditions:darwin_x86_64": [
-            "@openjdk_macos_x86_64//file",
-        ],
-        "//src/conditions:darwin_arm64": [
-            "@openjdk_macos_aarch64//file",
-        ],
-        "//src/conditions:windows_arm64": [
-            "@openjdk_win_arm64_vanilla//file",  # TODO(#14339): replace with openjdk_win_arm64 when packages are uploaded to bazel mirror server
-        ],
-        "//src/conditions:windows_x86_64": [
-            "@openjdk_win//file",
-        ],
-        "//src/conditions:linux_aarch64": [
-            "@openjdk_linux_aarch64//file",
-        ],
-        "//conditions:default": [
-            "@openjdk_linux//file",
-        ],
-    }),
-    visibility = ["//src/test/shell/bazel:__pkg__"],
-)
-
-filegroup(
-    name = "embedded_jdk_minimal_cached",
-    srcs = select({
-        "//src/conditions:darwin_x86_64": [
-            "@openjdk_macos_x86_64_minimal//file",
-        ],
-        "//src/conditions:darwin_arm64": [
-            "@openjdk_macos_aarch64_minimal//file",
-        ],
-        "//src/conditions:windows_arm64": [
-            "@openjdk_win_arm64_vanilla//file",  # TODO(#14339): replace with openjdk_win_arm64 when packages are uploaded to bazel mirror server
-        ],
-        "//src/conditions:windows_x86_64": [
-            "@openjdk_win_minimal//file",
-        ],
-        "//src/conditions:linux_aarch64": [
-            "@openjdk_linux_aarch64_minimal//file",
-        ],
-        "//conditions:default": [
-            "@openjdk_linux_minimal//file",
-        ],
-    }),
-    visibility = ["//src/test/shell/bazel:__pkg__"],
-)
-
-filegroup(
     name = "embedded_jdk_vanilla",
     srcs = select({
         "//src/conditions:darwin_x86_64": [
@@ -224,60 +172,29 @@
     srcs = ["minimize_jdk.sh"],
 )
 
-filegroup(
+genrule(
     name = "embedded_jdk_minimal",
-    srcs = select({
-        "//src/conditions:windows": [
-            ":embedded_jdk_minimal.zip",
-        ],
-        "//conditions:default": [
-            ":embedded_jdk_minimal.tar.gz",
-        ],
-    }),
-)
-
-filegroup(
-    name = "embedded_jdk_allmodules",
-    srcs = select({
-        "//src/conditions:windows": [
-            ":embedded_jdk_allmodules.zip",
-        ],
-        "//conditions:default": [
-            ":embedded_jdk_allmodules.tar.gz",
-        ],
-    }),
-    visibility = ["//src/test/shell/bazel:__pkg__"],
-)
-
-[genrule(
-    name = "embedded_jdk_minimal" + suffix,
     srcs = [
         ":embedded_jdk_vanilla",
         ":minimize_jdk.sh",
         ":jdeps_modules.golden",
     ],
-    outs = ["minimal_jdk" + suffix],
+    outs = ["minimal_jdk.zip"],
     cmd = "$(location :minimize_jdk.sh) $(location :embedded_jdk_vanilla) $(location :jdeps_modules.golden) $(OUTS)",
     visibility = ["//src/test/shell/bazel:__pkg__"],
-) for suffix in [
-    ".zip",
-    ".tar.gz",
-]]
+)
 
-[genrule(
-    name = "embedded_jdk_allmodules" + suffix,
+genrule(
+    name = "embedded_jdk_allmodules",
     srcs = [
         ":embedded_jdk_vanilla",
         ":minimize_jdk.sh",
         ":jdeps_modules.golden",
     ],
-    outs = ["allmodules_jdk" + suffix],
+    outs = ["allmodules_jdk.zip"],
     cmd = "$(location :minimize_jdk.sh) --allmodules $(location :embedded_jdk_vanilla) $(location :jdeps_modules.golden) $(OUTS)",
     visibility = ["//src/test/shell/bazel:__pkg__"],
-) for suffix in [
-    ".zip",
-    ".tar.gz",
-]]
+)
 
 [srcsfile(
     name = "embedded_tools" + suffix + "_params",
@@ -286,7 +203,6 @@
 ) for suffix in [
     "_jdk_allmodules",
     "_jdk_minimal",
-    "_dev_jdk",
     "_nojdk",
 ]]
 
@@ -302,7 +218,6 @@
 ) for suffix in [
     "_jdk_allmodules",
     "_jdk_minimal",
-    "_dev_jdk",
     "_nojdk",
 ]]
 
@@ -339,7 +254,6 @@
 ) for suffix, embed in [
     ("_jdk_allmodules", True),
     ("_jdk_minimal", True),
-    ("_dev_jdk", True),
     ("_notools", False),
     ("_nojdk", True),
 ]]
@@ -388,7 +302,6 @@
     ("", "_jdk_minimal"),
     ("_jdk_allmodules", "_jdk_allmodules"),
     ("_jdk_minimal", "_jdk_minimal"),
-    ("_dev_jdk", "_dev_jdk"),
     ("_notools", "_notools"),
     ("_nojdk", "_nojdk"),
 ]]
@@ -649,16 +562,6 @@
         "@android_tools_for_testing//:WORKSPACE",
         "@bazel_skylib//:WORKSPACE",
         "@com_google_protobuf//:WORKSPACE",
-        "@openjdk11_darwin_aarch64_archive//:WORKSPACE",
-        "@openjdk11_darwin_archive//:WORKSPACE",
-        "@openjdk11_linux_archive//:WORKSPACE",
-        "@openjdk11_windows_archive//:WORKSPACE",
-        "@openjdk11_windows_arm64_archive//:WORKSPACE",
-        "@openjdk_linux_aarch64_minimal//file",
-        "@openjdk_linux_minimal//file",
-        "@openjdk_macos_aarch64_minimal//file",
-        "@openjdk_macos_x86_64_minimal//file",
-        "@openjdk_win_minimal//file",
         "@remote_coverage_tools//:WORKSPACE",
         "@remote_java_tools_darwin_for_testing//:WORKSPACE",
         "@remote_java_tools_for_testing//:WORKSPACE",
diff --git a/src/minimize_jdk.sh b/src/minimize_jdk.sh
index 1f89752..f7dc8a7 100755
--- a/src/minimize_jdk.sh
+++ b/src/minimize_jdk.sh
@@ -58,7 +58,7 @@
     reduced/
   # These are necessary for --host_jvm_debug to work.
   cp bin/dt_socket.dll bin/jdwp.dll reduced/bin
-  zip -r -9 ../reduced.zip reduced/
+  zip -q -X -r ../reduced.zip reduced/
   cd ../..
   mv "tmp.$$/reduced.zip" "$out"
   rm -rf "tmp.$$"
@@ -79,7 +79,8 @@
   else
     cp lib/libdt_socket.so lib/libjdwp.so reduced/lib
   fi
-  GZIP=-9 tar -zcf ../reduced.tgz reduced
+  find reduced -exec touch -ht 198001010000 {} +
+  zip -q -X -r ../reduced.zip reduced/
   cd ..
-  mv reduced.tgz "$out"
+  mv reduced.zip "$out"
 fi
diff --git a/src/test/shell/bazel/BUILD b/src/test/shell/bazel/BUILD
index ee97c61..21fbf38 100644
--- a/src/test/shell/bazel/BUILD
+++ b/src/test/shell/bazel/BUILD
@@ -1063,12 +1063,12 @@
     srcs = ["bazel_bootstrap_distfile_test.sh"],
     args = [
         "$(location //:bazel-distfile)",
-        "$(location //src:embedded_jdk_allmodules_cached)",
+        "$(location //src:embedded_jdk_allmodules)",
     ],
     data = [
         ":test-deps",
         "//:bazel-distfile",
-        "//src:embedded_jdk_allmodules_cached",
+        "//src:embedded_jdk_allmodules",
         "@bazel_tools//tools/bash/runfiles",
     ],
     exec_compatible_with = ["//:highcpu_machine"],
@@ -1081,12 +1081,12 @@
     srcs = ["bazel_bootstrap_distfile_test.sh"],
     args = [
         "$(location //:bazel-distfile-tar)",
-        "$(location //src:embedded_jdk_allmodules_cached)",
+        "$(location //src:embedded_jdk_allmodules)",
     ],
     data = [
         ":test-deps",
         "//:bazel-distfile-tar",
-        "//src:embedded_jdk_allmodules_cached",
+        "//src:embedded_jdk_allmodules",
         "@bazel_tools//tools/bash/runfiles",
     ],
     exec_compatible_with = ["//:highcpu_machine"],
diff --git a/src/test/shell/bazel/jdeps_test.sh b/src/test/shell/bazel/jdeps_test.sh
index 690c371..9851340 100755
--- a/src/test/shell/bazel/jdeps_test.sh
+++ b/src/test/shell/bazel/jdeps_test.sh
@@ -59,8 +59,8 @@
   else
     platform="linux"
   fi
-  cp $(rlocation io_bazel/src/allmodules_jdk.tar.gz) .
-  tar xf allmodules_jdk.tar.gz || fail "Failed to extract JDK."
+  cp $(rlocation io_bazel/src/allmodules_jdk.zip) .
+  unzip allmodules_jdk.zip || fail "Failed to extract JDK."
   denylist=$(rlocation io_bazel/src/test/shell/bazel/jdeps_class_denylist.txt)
   deploy_jar=$(rlocation io_bazel/src/main/java/com/google/devtools/build/lib/bazel/BazelServer_deploy.jar)
   cd ../bazeljar
diff --git a/src/test/shell/integration/bazel_command_log_test.sh b/src/test/shell/integration/bazel_command_log_test.sh
index 5b97c0e..9e06eac 100755
--- a/src/test/shell/integration/bazel_command_log_test.sh
+++ b/src/test/shell/integration/bazel_command_log_test.sh
@@ -45,6 +45,7 @@
     -e '/^WARNING: Waiting for server process to terminate (waited 5 seconds, waiting at most 60)$/d' \
     -e '/^WARNING: The startup option --host_javabase is deprecated; prefer --server_javabase.$/d' \
     -e '/^WARNING: The home directory is not defined, no home_rc will be looked for.$/d' \
+    -e '/Options -Xverify:none and -noverify were deprecated in JDK 13 and will likely be removed in a future release/d' \
     $TEST_log)
 
   echo "$clean_log" > $TEST_log
diff --git a/src/test/shell/integration/py_args_escaping_test.sh b/src/test/shell/integration/py_args_escaping_test.sh
index e209c12..d964324 100755
--- a/src/test/shell/integration/py_args_escaping_test.sh
+++ b/src/test/shell/integration/py_args_escaping_test.sh
@@ -232,7 +232,7 @@
   create_build_file_with_many_args "$ws"
 
   ( cd "$ws"
-    bazel --batch run --verbose_failures :x &>"$TEST_log" \
+    bazel run --verbose_failures :x &>"$TEST_log" \
       || fail "expected success"
   )
   assert_good_output_of_the_program_with_many_args
diff --git a/src/test/shell/testenv.sh.tmpl b/src/test/shell/testenv.sh.tmpl
index fb8d963..b72cb96 100755
--- a/src/test/shell/testenv.sh.tmpl
+++ b/src/test/shell/testenv.sh.tmpl
@@ -291,11 +291,6 @@
         "openjdk18_linux_archive"
         "openjdk18_windows_archive"
         "openjdk18_windows_arm64_archive"
-        "openjdk_linux_aarch64_minimal"
-        "openjdk_linux_minimal"
-        "openjdk_macos_x86_64_minimal"
-        "openjdk_macos_aarch64_minimal"
-        "openjdk_win_minimal"
         "remote_coverage_tools"
         "remote_java_tools_for_testing"
         "remote_java_tools_darwin_for_testing"