Update default Java language version

Use `--java_language_version=''` to mean the toolchain-defined default version,
instead of hard-coding a default value of the flag.

PiperOrigin-RevId: 495444503
Change-Id: Ia120f37204c516df31f1f83b5e863e86d024169d
diff --git a/toolchains/default_java_toolchain.bzl b/toolchains/default_java_toolchain.bzl
index 24ac125..90edad0 100644
--- a/toolchains/default_java_toolchain.bzl
+++ b/toolchains/default_java_toolchain.bzl
@@ -123,6 +123,8 @@
     singlejar = ["@remote_java_tools//:singlejar_cc_bin"],
 )
 
+_DEFAULT_SOURCE_VERSION = "8"
+
 def default_java_toolchain(name, configuration = DEFAULT_TOOLCHAIN_CONFIGURATION, toolchain_definition = True, exec_compatible_with = [], target_compatible_with = [], **kwargs):
     """Defines a remote java_toolchain with appropriate defaults for Bazel.
 
@@ -145,9 +147,23 @@
         **toolchain_args
     )
     if toolchain_definition:
+        source_version = toolchain_args["source_version"]
+        if source_version == _DEFAULT_SOURCE_VERSION:
+            native.config_setting(
+                name = name + "_default_version_setting",
+                values = {"java_language_version": ""},
+                visibility = ["//visibility:private"],
+            )
+            native.toolchain(
+                name = name + "_default_definition",
+                toolchain_type = "@bazel_tools//tools/jdk:toolchain_type",
+                target_settings = [name + "_default_version_setting"],
+                toolchain = name,
+            )
+
         native.config_setting(
             name = name + "_version_setting",
-            values = {"java_language_version": toolchain_args["source_version"]},
+            values = {"java_language_version": source_version},
             visibility = ["//visibility:private"],
         )
         native.toolchain(