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