Bump minimum Java version to 17 and add Java 21 build

Change-Id: Ia063d5de28cd69152286a3dec4a6f614f1549915
diff --git a/.bazelrc b/.bazelrc
index 7c7def3..4e6427a 100644
--- a/.bazelrc
+++ b/.bazelrc
@@ -8,17 +8,17 @@
 build --action_env=PATH
 build --disk_cache=~/.gerritcodereview/bazel-cache/cas
 
-# Builds using remote_jdk11, executes using remote_jdk11 or local_jdk
-build --java_language_version=11
-build --java_runtime_version=remotejdk_11
-build --tool_java_language_version=11
-build --tool_java_runtime_version=remotejdk_11
-
 # Builds using remote_jdk17, executes using remote_jdk17 or local_jdk
-build:java17 --java_language_version=17
-build:java17 --java_runtime_version=remotejdk_17
-build:java17 --tool_java_language_version=17
-build:java17 --tool_java_runtime_version=remotejdk_17
+build --java_language_version=17
+build --java_runtime_version=remotejdk_17
+build --tool_java_language_version=17
+build --tool_java_runtime_version=remotejdk_17
+
+# Builds using remote_jdk21, executes using remote_jdk21 or local_jdk
+build:java21 --java_language_version=21
+build:java21 --java_runtime_version=remotejdk_21
+build:java21 --tool_java_language_version=21
+build:java21 --tool_java_runtime_version=remotejdk_21
 
 test --build_tests_only
 test --test_output=errors
diff --git a/WORKSPACE b/WORKSPACE
index 3489ca0..c9e9953 100644
--- a/WORKSPACE
+++ b/WORKSPACE
@@ -33,10 +33,10 @@
     path = "modules/java-prettify",
 )
 
-register_toolchains("//tools:error_prone_warnings_toolchain_java11_definition")
-
 register_toolchains("//tools:error_prone_warnings_toolchain_java17_definition")
 
+register_toolchains("//tools:error_prone_warnings_toolchain_java21_definition")
+
 maven_jar(
     name = "error-prone-annotations",
     artifact = "com.google.errorprone:error_prone_annotations:2.22.0",
diff --git a/tools/BUILD b/tools/BUILD
index 50c0463..8ea3629 100644
--- a/tools/BUILD
+++ b/tools/BUILD
@@ -5,17 +5,8 @@
 load("@rules_java//java:defs.bzl", "java_package_configuration")
 
 default_java_toolchain(
-    name = "error_prone_warnings_toolchain_java11",
-    package_configuration = [
-        ":error_prone",
-    ],
-    source_version = "11",
-    target_version = "11",
-    visibility = ["//visibility:public"],
-)
-
-default_java_toolchain(
     name = "error_prone_warnings_toolchain_java17",
+
     configuration = dict(),
     java_runtime = "@bazel_tools//tools/jdk:remotejdk_17",
     package_configuration = [
@@ -26,6 +17,19 @@
     visibility = ["//visibility:public"],
 )
 
+default_java_toolchain(
+    name = "error_prone_warnings_toolchain_java21",
+
+    configuration = dict(),
+    java_runtime = "@bazel_tools//tools/jdk:remotejdk_21",
+    package_configuration = [
+        ":error_prone",
+    ],
+    source_version = "21",
+    target_version = "21",
+    visibility = ["//visibility:public"],
+)
+
 # Error Prone errors enabled by default; see ../.bazelrc for how this is
 # enabled. This warnings list is originally based on:
 # https://github.com/bazelbuild/BUILD_file_generator/blob/master/tools/bazel_defs/java.bzl