Remove support for javabase and java_toolchain flags.

Removes JavaRuntimeAliasRule, JavaToolchainAliasRule and its targets. Makes javabase and java_toolchain flags a no-op. Removes backwards support from java_toolchain_alias, java_runtime_alias, java_runtime_version_alias.

Closes #12704.

PiperOrigin-RevId: 391502514
diff --git a/src/main/java/com/google/devtools/build/lib/bazel/rules/JavaRules.java b/src/main/java/com/google/devtools/build/lib/bazel/rules/JavaRules.java
index 0b068bc..3f8304a 100644
--- a/src/main/java/com/google/devtools/build/lib/bazel/rules/JavaRules.java
+++ b/src/main/java/com/google/devtools/build/lib/bazel/rules/JavaRules.java
@@ -38,10 +38,8 @@
 import com.google.devtools.build.lib.rules.java.JavaRuleClasses.IjarBaseRule;
 import com.google.devtools.build.lib.rules.java.JavaRuleClasses.JavaRuntimeBaseRule;
 import com.google.devtools.build.lib.rules.java.JavaRuleClasses.JavaToolchainBaseRule;
-import com.google.devtools.build.lib.rules.java.JavaRuntimeAliasRule;
 import com.google.devtools.build.lib.rules.java.JavaRuntimeRule;
 import com.google.devtools.build.lib.rules.java.JavaStarlarkCommon;
-import com.google.devtools.build.lib.rules.java.JavaToolchainAliasRule;
 import com.google.devtools.build.lib.rules.java.JavaToolchainRule;
 import com.google.devtools.build.lib.rules.java.ProguardLibraryRule;
 import com.google.devtools.build.lib.rules.java.ProguardSpecProvider;
@@ -81,8 +79,6 @@
     builder.addRuleDefinition(JavaToolchainRule.create(BazelJavaToolchain.class));
     builder.addRuleDefinition(new JavaPackageConfigurationRule());
     builder.addRuleDefinition(new JavaRuntimeRule());
-    builder.addRuleDefinition(new JavaRuntimeAliasRule());
-    builder.addRuleDefinition(new JavaToolchainAliasRule());
     builder.addRuleDefinition(new JavaPluginsFlagAliasRule());
 
     builder.addRuleDefinition(new ExtraActionRule());
diff --git a/src/main/java/com/google/devtools/build/lib/rules/java/BUILD b/src/main/java/com/google/devtools/build/lib/rules/java/BUILD
index 18b62b8..fc4c128 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/java/BUILD
+++ b/src/main/java/com/google/devtools/build/lib/rules/java/BUILD
@@ -23,12 +23,10 @@
         "JavaPluginsFlagAliasRule.java",
         "JavaPrimaryClassProvider.java",
         "JavaRuntime.java",
-        "JavaRuntimeAliasRule.java",
         "JavaRuntimeClasspathProvider.java",
         "JavaRuntimeRule.java",
         "JavaStarlarkCommon.java",
         "JavaToolchain.java",
-        "JavaToolchainAliasRule.java",
         "JavaToolchainRule.java",
         "ProguardLibrary.java",
         "ProguardLibraryRule.java",
@@ -47,7 +45,6 @@
     deps = [
         ":RpcSupport",
         ":java-compilation",
-        ":java-implicit-attributes",
         "//src/main/java/com/google/devtools/build/lib/actions",
         "//src/main/java/com/google/devtools/build/lib/actions:artifacts",
         "//src/main/java/com/google/devtools/build/lib/actions:execution_requirements",
@@ -77,7 +74,6 @@
         "//src/main/java/com/google/devtools/build/lib/concurrent",
         "//src/main/java/com/google/devtools/build/lib/packages",
         "//src/main/java/com/google/devtools/build/lib/packages/semantics",
-        "//src/main/java/com/google/devtools/build/lib/rules:alias",
         "//src/main/java/com/google/devtools/build/lib/rules/apple",
         "//src/main/java/com/google/devtools/build/lib/rules/cpp",
         "//src/main/java/com/google/devtools/build/lib/rules/proto",
diff --git a/src/main/java/com/google/devtools/build/lib/rules/java/JavaConfiguration.java b/src/main/java/com/google/devtools/build/lib/rules/java/JavaConfiguration.java
index 74a87d2..1e55625 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/java/JavaConfiguration.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/java/JavaConfiguration.java
@@ -29,7 +29,6 @@
 import com.google.devtools.build.lib.concurrent.ThreadSafety.Immutable;
 import com.google.devtools.build.lib.starlarkbuildapi.java.JavaConfigurationApi;
 import java.util.Map;
-import java.util.Objects;
 import javax.annotation.Nullable;
 
 /** A java compiler configuration containing the flags required for compilation. */
@@ -94,8 +93,6 @@
   private final NamedLabel bytecodeOptimizer;
   private final boolean splitBytecodeOptimizationPass;
   private final boolean enforceProguardFileExtension;
-  private final Label toolchainLabel;
-  private final Label runtimeLabel;
   private final boolean runAndroidLint;
   private final boolean limitAndroidLintToAndroidCompatible;
   private final boolean explicitJavaTestDeps;
@@ -103,7 +100,6 @@
   private final boolean addTestSupportToCompileTimeDeps;
   private final ImmutableList<Label> pluginList;
   private final boolean disallowResourceJars;
-  private final boolean disallowLegacyJavaToolchainFlags;
   private final boolean experimentalTurbineAnnotationProcessing;
   private final boolean experimentalEnableJspecify;
   private final boolean requireJavaPluginInfo;
@@ -129,8 +125,6 @@
     this.extraProguardSpecs = ImmutableList.copyOf(javaOptions.extraProguardSpecs);
     this.splitBytecodeOptimizationPass = javaOptions.splitBytecodeOptimizationPass;
     this.enforceProguardFileExtension = javaOptions.enforceProguardFileExtension;
-    this.toolchainLabel = javaOptions.javaToolchain;
-    this.runtimeLabel = javaOptions.javaBase;
     this.useLegacyBazelJavaTest = javaOptions.legacyBazelJavaTest;
     this.strictDepsJavaProtos = javaOptions.strictDepsJavaProtos;
     this.isDisallowStrictDepsForJpl = javaOptions.isDisallowStrictDepsForJpl;
@@ -163,26 +157,21 @@
     this.bytecodeOptimizer = NamedLabel.create(mnemonic, Optional.fromNullable(optimizerLabel));
 
     this.pluginList = ImmutableList.copyOf(javaOptions.pluginList);
-    this.disallowLegacyJavaToolchainFlags = javaOptions.disallowLegacyJavaToolchainFlags;
     this.experimentalTurbineAnnotationProcessing =
         javaOptions.experimentalTurbineAnnotationProcessing;
     this.experimentalEnableJspecify = javaOptions.experimentalEnableJspecify;
 
     if (javaOptions.disallowLegacyJavaToolchainFlags) {
-      checkLegacyToolchainFlagIsUnset(
-          "javabase", javaOptions.javaBase, javaOptions.defaultJavaBase());
-      checkLegacyToolchainFlagIsUnset(
-          "host_javabase", javaOptions.getHostJavaBase(), javaOptions.defaultHostJavaBase());
-      checkLegacyToolchainFlagIsUnset(
-          "java_toolchain", javaOptions.javaToolchain, javaOptions.defaultJavaToolchain());
-      checkLegacyToolchainFlagIsUnset(
-          "host_java_toolchain", javaOptions.hostJavaToolchain, javaOptions.defaultJavaToolchain());
+      checkLegacyToolchainFlagIsUnset("javabase", javaOptions.javaBase);
+      checkLegacyToolchainFlagIsUnset("host_javabase", javaOptions.hostJavaBase);
+      checkLegacyToolchainFlagIsUnset("java_toolchain", javaOptions.javaToolchain);
+      checkLegacyToolchainFlagIsUnset("host_java_toolchain", javaOptions.hostJavaToolchain);
     }
   }
 
-  private static void checkLegacyToolchainFlagIsUnset(String flag, Label label, Label defaultValue)
+  private static void checkLegacyToolchainFlagIsUnset(String flag, Label label)
       throws InvalidConfigurationException {
-    if (!Objects.equals(label, defaultValue)) {
+    if (label != null) {
       throw new InvalidConfigurationException(
           String.format(
               "--%s=%s is no longer supported, use --platforms instead (see #7849)", flag, label));
@@ -287,24 +276,6 @@
     return enforceProguardFileExtension;
   }
 
-  /** Returns the label of the default java_toolchain rule */
-  @StarlarkConfigurationField(
-      name = "java_toolchain",
-      doc = "Returns the label of the default java_toolchain rule.",
-      defaultLabel = "//tools/jdk:toolchain",
-      defaultInToolRepository = true)
-  public Label getToolchainLabel() {
-    if (disallowLegacyJavaToolchainFlags) {
-      throw new IllegalStateException("--java_toolchain is no longer supported");
-    }
-    return toolchainLabel;
-  }
-
-  /** Returns the label of the {@code java_runtime} rule representing the JVM in use. */
-  public Label getRuntimeLabel() {
-    return runtimeLabel;
-  }
-
   /** Stores a String name and an optional associated label. */
   @AutoValue
   public abstract static class NamedLabel {
diff --git a/src/main/java/com/google/devtools/build/lib/rules/java/JavaOptions.java b/src/main/java/com/google/devtools/build/lib/rules/java/JavaOptions.java
index efcab16..ac4a4b2 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/java/JavaOptions.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/java/JavaOptions.java
@@ -71,41 +71,34 @@
               + " instead; see #7849")
   public boolean disallowLegacyJavaToolchainFlags;
 
-  private static final String DEFAULT_JAVABASE = "@bazel_tools//tools/jdk:jdk";
-
   @Deprecated
   @Option(
       name = "javabase",
-      defaultValue = DEFAULT_JAVABASE,
+      defaultValue = "null",
       converter = LabelConverter.class,
       documentationCategory = OptionDocumentationCategory.UNDOCUMENTED,
       effectTags = {OptionEffectTag.UNKNOWN},
-      help =
-          "JAVABASE used for the JDK invoked by Blaze. This is the "
-              + "java_runtime which will be used to execute "
-              + "external Java commands.")
+      help = "No-op. Kept here for backwards compatibility.")
   public Label javaBase;
 
-  private static final String DEFAULT_JAVA_TOOLCHAIN = "@bazel_tools//tools/jdk:remote_toolchain";
-
   @Deprecated
   @Option(
       name = "java_toolchain",
-      defaultValue = DEFAULT_JAVA_TOOLCHAIN,
+      defaultValue = "null",
       converter = LabelConverter.class,
       documentationCategory = OptionDocumentationCategory.UNDOCUMENTED,
       effectTags = {OptionEffectTag.UNKNOWN},
-      help = "The name of the toolchain rule for Java.")
+      help = "No-op. Kept here for backwards compatibility.")
   public Label javaToolchain;
 
   @Deprecated
   @Option(
       name = "host_java_toolchain",
-      defaultValue = DEFAULT_JAVA_TOOLCHAIN,
+      defaultValue = "null",
       converter = LabelConverter.class,
       documentationCategory = OptionDocumentationCategory.UNDOCUMENTED,
       effectTags = {OptionEffectTag.UNKNOWN},
-      help = "The Java toolchain used to build tools that are executed during a build.")
+      help = "No-op. Kept here for backwards compatibility.")
   public Label hostJavaToolchain;
 
   @Deprecated
@@ -115,9 +108,7 @@
       converter = LabelConverter.class,
       documentationCategory = OptionDocumentationCategory.UNDOCUMENTED,
       effectTags = {OptionEffectTag.UNKNOWN},
-      help =
-          "JAVABASE used for the host JDK. This is the java_runtime which is used to execute "
-              + "tools during a build.")
+      help = "No-op.  Kept here for backwards compatibility.")
   public Label hostJavaBase;
 
   @Option(
@@ -576,41 +567,20 @@
       effectTags = {OptionEffectTag.UNKNOWN},
       help = "Enable experimental jspecify integration.")
   public boolean experimentalEnableJspecify;
-
-  Label defaultJavaBase() {
-    return Label.parseAbsoluteUnchecked(DEFAULT_JAVABASE);
-  }
-
-  Label getHostJavaBase() {
-    if (hostJavaBase == null) {
-      return defaultHostJavaBase();
-    }
-    return hostJavaBase;
-  }
-
-  Label defaultHostJavaBase() {
-    return Label.parseAbsoluteUnchecked("@bazel_tools//tools/jdk:remote_jdk11");
-  }
-
-  Label defaultJavaToolchain() {
-    return Label.parseAbsoluteUnchecked(DEFAULT_JAVA_TOOLCHAIN);
-  }
-
   @Override
   public FragmentOptions getHost() {
     // Note validation actions don't run in host config, so no need copying flags related to that.
     // TODO(b/171078539): revisit if relevant validations are run in host config
     JavaOptions host = (JavaOptions) getDefault();
 
-    host.javaBase = getHostJavaBase();
     if (hostJvmOpts == null || hostJvmOpts.isEmpty()) {
       host.jvmOpts = ImmutableList.of("-XX:ErrorFile=/dev/stderr");
     } else {
       host.jvmOpts = hostJvmOpts;
     }
 
+
     host.javacOpts = hostJavacOpts;
-    host.javaToolchain = hostJavaToolchain;
 
     host.javaLauncher = hostJavaLauncher;
 
@@ -648,10 +618,8 @@
     host.proguard = proguard;
 
     // Save host options for further use.
-    host.hostJavaBase = hostJavaBase;
     host.hostJavacOpts = hostJavacOpts;
     host.hostJavaLauncher = hostJavaLauncher;
-    host.hostJavaToolchain = hostJavaToolchain;
     host.hostJavaRuntimeVersion = hostJavaRuntimeVersion;
     host.hostJavaLanguageVersion = hostJavaLanguageVersion;
 
diff --git a/src/main/java/com/google/devtools/build/lib/rules/java/JavaRuntimeAliasRule.java b/src/main/java/com/google/devtools/build/lib/rules/java/JavaRuntimeAliasRule.java
deleted file mode 100644
index 283fd7e..0000000
--- a/src/main/java/com/google/devtools/build/lib/rules/java/JavaRuntimeAliasRule.java
+++ /dev/null
@@ -1,44 +0,0 @@
-// Copyright 2017 The Bazel Authors. All rights reserved.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//    http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-package com.google.devtools.build.lib.rules.java;
-
-import com.google.devtools.build.lib.analysis.RuleDefinitionEnvironment;
-import com.google.devtools.build.lib.analysis.platform.ToolchainInfo;
-import com.google.devtools.build.lib.cmdline.Label;
-import com.google.devtools.build.lib.packages.Attribute;
-import com.google.devtools.build.lib.packages.Attribute.LabelLateBoundDefault;
-import com.google.devtools.build.lib.rules.LateBoundAlias.CommonAliasRule;
-import java.io.Serializable;
-
-/** Implementation of the {@code java_runtime_alias} rule. */
-public class JavaRuntimeAliasRule extends CommonAliasRule<JavaConfiguration> {
-  public JavaRuntimeAliasRule() {
-    super("java_runtime_alias", JavaRuntimeAliasRule::jvmAttribute, JavaConfiguration.class);
-  }
-
-  @Override
-  protected Attribute.Builder<Label> makeAttribute(RuleDefinitionEnvironment environment) {
-    Attribute.Builder<Label> builder = super.makeAttribute(environment);
-    return builder.mandatoryProviders(ToolchainInfo.PROVIDER.id());
-  }
-
-  static LabelLateBoundDefault<JavaConfiguration> jvmAttribute(RuleDefinitionEnvironment env) {
-    return LabelLateBoundDefault.fromTargetConfiguration(
-        JavaConfiguration.class,
-        env.getToolsLabel(JavaImplicitAttributes.JDK_LABEL),
-        (Attribute.LateBoundDefault.Resolver<JavaConfiguration, Label> & Serializable)
-            (rule, attributes, configuration) -> configuration.getRuntimeLabel());
-  }
-}
diff --git a/src/main/java/com/google/devtools/build/lib/rules/java/JavaToolchainAliasRule.java b/src/main/java/com/google/devtools/build/lib/rules/java/JavaToolchainAliasRule.java
deleted file mode 100644
index 74f262a..0000000
--- a/src/main/java/com/google/devtools/build/lib/rules/java/JavaToolchainAliasRule.java
+++ /dev/null
@@ -1,43 +0,0 @@
-// Copyright 2017 The Bazel Authors. All rights reserved.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//    http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-package com.google.devtools.build.lib.rules.java;
-
-import static com.google.devtools.build.lib.rules.java.JavaSemantics.JAVA_TOOLCHAIN_LABEL;
-
-import com.google.devtools.build.lib.analysis.RuleDefinitionEnvironment;
-import com.google.devtools.build.lib.cmdline.Label;
-import com.google.devtools.build.lib.packages.Attribute;
-import com.google.devtools.build.lib.packages.Attribute.LabelLateBoundDefault;
-import com.google.devtools.build.lib.rules.LateBoundAlias.CommonAliasRule;
-import java.io.Serializable;
-
-/** Implementation of the {@code java_toolchain_alias} rule. */
-public class JavaToolchainAliasRule extends CommonAliasRule<JavaConfiguration> {
-  public JavaToolchainAliasRule() {
-    super(
-        "java_toolchain_alias",
-        JavaToolchainAliasRule::javaToolchainAttribute,
-        JavaConfiguration.class);
-  }
-
-  static LabelLateBoundDefault<JavaConfiguration> javaToolchainAttribute(
-      RuleDefinitionEnvironment environment) {
-    return LabelLateBoundDefault.fromTargetConfiguration(
-        JavaConfiguration.class,
-        environment.getToolsLabel(JAVA_TOOLCHAIN_LABEL),
-        (Attribute.LateBoundDefault.Resolver<JavaConfiguration, Label> & Serializable)
-            (rule, attributes, javaConfig) -> javaConfig.getToolchainLabel());
-  }
-}
diff --git a/src/test/java/com/google/devtools/build/lib/analysis/mock/BazelAnalysisMock.java b/src/test/java/com/google/devtools/build/lib/analysis/mock/BazelAnalysisMock.java
index b4e9957..0191c7c 100644
--- a/src/test/java/com/google/devtools/build/lib/analysis/mock/BazelAnalysisMock.java
+++ b/src/test/java/com/google/devtools/build/lib/analysis/mock/BazelAnalysisMock.java
@@ -117,8 +117,6 @@
         "    'java_toolchain_alias',",
         "    'java_runtime_alias',",
         "    'java_host_runtime_alias',",
-        "    'legacy_java_toolchain_alias',",
-        "    'legacy_java_runtime_alias',",
         ")",
         "package(default_visibility=['//visibility:public'])",
         "java_toolchain(",
@@ -170,9 +168,7 @@
         "java_runtime(name = 'host_jdk', srcs = [])",
         "java_runtime(name = 'remote_jdk11', srcs = [])",
         "java_toolchain_alias(name = 'current_java_toolchain')",
-        "legacy_java_toolchain_alias(name = 'legacy_current_java_toolchain')",
         "java_runtime_alias(name = 'current_java_runtime')",
-        "legacy_java_runtime_alias(name = 'legacy_current_java_runtime')",
         "java_host_runtime_alias(name = 'current_host_java_runtime')",
         "filegroup(name='langtools', srcs=['jdk/lib/tools.jar'])",
         "filegroup(name='bootclasspath', srcs=['jdk/jre/lib/rt.jar'])",
diff --git a/src/test/shell/bazel/bazel_example_test.sh b/src/test/shell/bazel/bazel_example_test.sh
index cb6fb4c..f8323d3 100755
--- a/src/test/shell/bazel/bazel_example_test.sh
+++ b/src/test/shell/bazel/bazel_example_test.sh
@@ -106,8 +106,6 @@
 
 function test_genrule_and_genquery() {
   # With toolchain resolution java runtime only appears in cquery results.
-  # //tools/jdk:jdk label appears in the dependency list while --javabase
-  # is still available, because of migration rules.
   assert_build_output ./bazel-bin/examples/gen/genquery examples/gen:genquery
   local want=./bazel-genfiles/examples/gen/genrule.txt
   assert_build_output $want examples/gen:genrule
@@ -115,9 +113,9 @@
   diff $want ./bazel-bin/examples/gen/genquery \
     || fail "genrule and genquery output differs"
 
-  grep -qE "^@bazel_tools//tools/jdk:jdk$" $want || {
+  grep -vqE "^@local_jdk//:jdk$" $want || {
     cat $want
-    fail "@bazel_tools//tools/jdk:jdk not found in genquery output"
+    fail "@local_jdk//:jdk found in genquery output"
   }
 }
 
diff --git a/tools/jdk/BUILD.tools b/tools/jdk/BUILD.tools
index 5045961..f2e5edf 100644
--- a/tools/jdk/BUILD.tools
+++ b/tools/jdk/BUILD.tools
@@ -14,8 +14,6 @@
     "java_runtime_alias",
     "java_runtime_version_alias",
     "java_toolchain_alias",
-    "legacy_java_runtime_alias",
-    "legacy_java_toolchain_alias",
 )
 load("//tools/python:private/defs.bzl", "py_binary", "py_test")
 
@@ -36,14 +34,6 @@
 # Points to toolchain[":toolchain_type"] (was :legacy_current_java_toolchain)
 java_toolchain_alias(name = "current_java_toolchain")
 
-# This exists to support the migration to toolchain resolution.
-# TODO(cushon): delete once the migration is complete.
-# Points to --javabase/--host_javabase, defaults ":jdk"/":remote_jdk11"
-legacy_java_runtime_alias(name = "legacy_current_java_runtime")
-
-# Points to --java_toolchain/--host_java_toolchain, defaults ":toolchain"/":remote_toolchain"
-legacy_java_toolchain_alias(name = "legacy_current_java_toolchain")
-
 # Aliases value of --plugins flag as a JavaPluginInfo
 java_plugins_flag_alias(
     name = "java_plugins_flag_alias",
@@ -471,57 +461,23 @@
 java_runtime_version_alias(
     name = "remote_jdk11",
     runtime_version = "remotejdk_11",
-    selected_java_runtime = select(
-        {
-            "//src/conditions:darwin_x86_64": ":remotejdk11_macos",
-            "//src/conditions:darwin_arm64": ":remotejdk11_macos_aarch64",
-            "//src/conditions:windows": ":remotejdk11_win",
-            "//src/conditions:linux_aarch64": ":remotejdk11_linux_aarch64",
-            "//src/conditions:linux_x86_64": ":remotejdk11_linux",
-            "//src/conditions:linux_ppc64le": ":remotejdk11_linux_ppc64le",
-            "//src/conditions:linux_s390x": ":remotejdk11_linux_s390x",
-        },
-        no_match_error = "Could not find a JDK for host execution environment, please explicitly" +
-                         " provide one using `--host_javabase.`",
-    ),
     visibility = ["//visibility:public"],
 )
 
 java_runtime_version_alias(
     name = "remotejdk_15",
     runtime_version = "remotejdk_15",
-    selected_java_runtime = select(
-        {
-            "//src/conditions:darwin_x86_64": ":remotejdk15_macos",
-            "//src/conditions:darwin_arm64": ":remotejdk15_macos_aarch64",
-            "//src/conditions:windows": ":remotejdk15_win",
-            "//src/conditions:linux_x86_64": ":remotejdk15_linux",
-        },
-        no_match_error = "Could not find a JDK for host execution environment, please explicitly" +
-                         " provide one using `--host_javabase.`",
-    ),
     visibility = ["//visibility:public"],
 )
 
 java_runtime_version_alias(
     name = "remotejdk_16",
     runtime_version = "remotejdk_16",
-    selected_java_runtime = select(
-        {
-            "//src/conditions:darwin_x86_64": ":remotejdk16_macos",
-            "//src/conditions:darwin_arm64": ":remotejdk16_macos_aarch64",
-            "//src/conditions:windows": ":remotejdk16_win",
-            "//src/conditions:linux_x86_64": ":remotejdk16_linux",
-        },
-        no_match_error = "Could not find a JDK for host execution environment, please explicitly" +
-                         " provide one using `--host_javabase.`",
-    ),
     visibility = ["//visibility:public"],
 )
 
 java_runtime_version_alias(
     name = "jdk_8",
     runtime_version = "8",
-    selected_java_runtime = ":legacy_current_java_runtime",
     visibility = ["//visibility:public"],
 )
diff --git a/tools/jdk/java_toolchain_alias.bzl b/tools/jdk/java_toolchain_alias.bzl
index afbd079..afb267a 100644
--- a/tools/jdk/java_toolchain_alias.bzl
+++ b/tools/jdk/java_toolchain_alias.bzl
@@ -16,13 +16,8 @@
 
 def _java_runtime_alias(ctx):
     """An experimental implementation of java_runtime_alias using toolchain resolution."""
-    toolchain_info = None
-    if java_common.is_java_toolchain_resolution_enabled_do_not_use(ctx = ctx):
-        toolchain_info = ctx.toolchains["@bazel_tools//tools/jdk:runtime_toolchain_type"]
-        toolchain = toolchain_info.java_runtime
-    else:
-        toolchain = ctx.attr._java_runtime[java_common.JavaRuntimeInfo]
-        toolchain_info = platform_common.ToolchainInfo(java_runtime = toolchain)
+    toolchain_info = ctx.toolchains["@bazel_tools//tools/jdk:runtime_toolchain_type"]
+    toolchain = toolchain_info.java_runtime
     return [
         toolchain_info,
         toolchain,
@@ -41,11 +36,6 @@
     implementation = _java_runtime_alias,
     toolchains = ["@bazel_tools//tools/jdk:runtime_toolchain_type"],
     incompatible_use_toolchain_transition = True,
-    attrs = {
-        "_java_runtime": attr.label(
-            default = Label("@bazel_tools//tools/jdk:legacy_current_java_runtime"),
-        ),
-    },
 )
 
 def _java_host_runtime_alias(ctx):
@@ -86,33 +76,6 @@
     ],
 )
 
-def _java_runtime_version_alias(ctx):
-    """An alias fixing a specific version of java_runtime."""
-    toolchain_info = None
-    if java_common.is_java_toolchain_resolution_enabled_do_not_use(ctx = ctx):
-        toolchain_info = ctx.toolchains["@bazel_tools//tools/jdk:runtime_toolchain_type"]
-        if hasattr(toolchain_info, "java_runtime"):
-            toolchain = toolchain_info.java_runtime
-        else:
-            toolchain = toolchain_info
-    else:
-        toolchain = ctx.attr.selected_java_runtime[java_common.JavaRuntimeInfo]
-    providers = [
-        toolchain,
-        platform_common.TemplateVariableInfo({
-            "JAVA": str(toolchain.java_executable_exec_path),
-            "JAVABASE": str(toolchain.java_home),
-        }),
-        # See b/65239471 for related discussion of handling toolchain runfiles/data.
-        DefaultInfo(
-            runfiles = ctx.runfiles(transitive_files = toolchain.files),
-            files = toolchain.files,
-        ),
-    ]
-    if toolchain_info != None and toolchain_info != toolchain:
-        providers.append(toolchain_info)
-    return providers
-
 def _java_runtime_transition_impl(settings, attr):
     return {"//command_line_option:java_runtime_version": attr.runtime_version}
 
@@ -123,13 +86,11 @@
 )
 
 java_runtime_version_alias = rule(
-    implementation = _java_runtime_version_alias,
+    implementation = _java_runtime_alias,
     toolchains = ["@bazel_tools//tools/jdk:runtime_toolchain_type"],
     incompatible_use_toolchain_transition = True,
     attrs = {
         "runtime_version": attr.string(mandatory = True),
-        # TODO(ilist): remove after java toolchain resolution flag is flipped
-        "selected_java_runtime": attr.label(mandatory = True),
         "_allowlist_function_transition": attr.label(
             default = "@bazel_tools//tools/allowlists/function_transition_allowlist",
         ),
@@ -139,13 +100,8 @@
 
 def _java_toolchain_alias(ctx):
     """An experimental implementation of java_toolchain_alias using toolchain resolution."""
-    toolchain_info = None
-    if java_common.is_java_toolchain_resolution_enabled_do_not_use(ctx = ctx):
-        toolchain_info = ctx.toolchains["@bazel_tools//tools/jdk:toolchain_type"]
-        toolchain = toolchain_info.java
-    else:
-        toolchain = ctx.attr._java_toolchain[java_common.JavaToolchainInfo]
-        toolchain_info = platform_common.ToolchainInfo(java = toolchain)
+    toolchain_info = ctx.toolchains["@bazel_tools//tools/jdk:toolchain_type"]
+    toolchain = toolchain_info.java
     return struct(
         providers = [
             toolchain_info,
@@ -158,14 +114,5 @@
 java_toolchain_alias = rule(
     implementation = _java_toolchain_alias,
     toolchains = ["@bazel_tools//tools/jdk:toolchain_type"],
-    attrs = {
-        "_java_toolchain": attr.label(
-            default = Label("@bazel_tools//tools/jdk:legacy_current_java_toolchain"),
-        ),
-    },
     incompatible_use_toolchain_transition = True,
 )
-
-# Add aliases for the legacy native rules to allow referring to both versions in @bazel_tools//tools/jdk
-legacy_java_toolchain_alias = native.java_toolchain_alias
-legacy_java_runtime_alias = native.java_runtime_alias