Update java_toolchain to properly declare config transitions.
This is phase 1 of of the switch to toolchain transitions. See https://github.com/bazelbuild/bazel/issues/11584 for details.
Tested via Bazel Downstream CI: https://buildkite.com/bazel/bazel-at-head-plus-downstream/builds/1666 (rules_cc failure is also at head).
PiperOrigin-RevId: 333561852
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 7decf70..1b0f335 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
@@ -66,6 +66,7 @@
"//src/main/java/com/google/devtools/build/lib/analysis:config/fragment_provider",
"//src/main/java/com/google/devtools/build/lib/analysis:config/host_transition",
"//src/main/java/com/google/devtools/build/lib/analysis:config/invalid_configuration_exception",
+ "//src/main/java/com/google/devtools/build/lib/analysis:config/transitions/no_transition",
"//src/main/java/com/google/devtools/build/lib/analysis:configured_target",
"//src/main/java/com/google/devtools/build/lib/analysis:file_provider",
"//src/main/java/com/google/devtools/build/lib/analysis:package_specification_provider",
diff --git a/src/main/java/com/google/devtools/build/lib/rules/java/JavaToolchainRule.java b/src/main/java/com/google/devtools/build/lib/rules/java/JavaToolchainRule.java
index f171a03..fec02fe 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/java/JavaToolchainRule.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/java/JavaToolchainRule.java
@@ -28,7 +28,8 @@
import com.google.devtools.build.lib.analysis.BaseRuleClasses;
import com.google.devtools.build.lib.analysis.RuleDefinition;
import com.google.devtools.build.lib.analysis.RuleDefinitionEnvironment;
-import com.google.devtools.build.lib.analysis.config.HostTransition;
+import com.google.devtools.build.lib.analysis.config.ExecutionTransitionFactory;
+import com.google.devtools.build.lib.analysis.config.transitions.NoTransition;
import com.google.devtools.build.lib.cmdline.Label;
import com.google.devtools.build.lib.packages.RuleClass;
import com.google.devtools.build.lib.util.FileTypeSet;
@@ -72,12 +73,16 @@
.add(
attr("bootclasspath", LABEL_LIST)
.value(ImmutableList.of())
- .allowedFileTypes(FileTypeSet.ANY_FILE))
+ .allowedFileTypes(FileTypeSet.ANY_FILE)
+ // This should be in the target configuration.
+ .cfg(NoTransition.createFactory()))
.add(
attr("extclasspath", LABEL_LIST)
.undocumented("internal")
.value(ImmutableList.of())
- .allowedFileTypes(FileTypeSet.ANY_FILE))
+ .allowedFileTypes(FileTypeSet.ANY_FILE)
+ // This should be in the target configuration.
+ .cfg(NoTransition.createFactory()))
/* <!-- #BLAZE_RULE(java_toolchain).ATTRIBUTE(xlint) -->
The list of warning to add or removes from default list. Precedes it with a dash to
removes it. Please see the Javac documentation on the -Xlint options for more information.
@@ -118,7 +123,8 @@
<!-- #END_BLAZE_RULE.ATTRIBUTE --> */
.add(
attr("javac", LABEL_LIST)
- .cfg(HostTransition.createFactory())
+ // This needs to be in the execution configuration.
+ .cfg(ExecutionTransitionFactory.create())
.singleArtifact()
.allowedFileTypes(FileTypeSet.ANY_FILE))
/* <!-- #BLAZE_RULE(java_toolchain).ATTRIBUTE(tools) -->
@@ -126,7 +132,8 @@
<!-- #END_BLAZE_RULE.ATTRIBUTE --> */
.add(
attr("tools", LABEL_LIST)
- .cfg(HostTransition.createFactory())
+ // This needs to be in the execution configuration.
+ .cfg(ExecutionTransitionFactory.create())
.allowedFileTypes(FileTypeSet.ANY_FILE))
/* <!-- #BLAZE_RULE(java_toolchain).ATTRIBUTE(javabuilder) -->
Label of the JavaBuilder deploy jar.
@@ -134,7 +141,8 @@
.add(
attr("javabuilder", LABEL_LIST)
.mandatory()
- .cfg(HostTransition.createFactory())
+ // This needs to be in the execution configuration.
+ .cfg(ExecutionTransitionFactory.create())
.allowedFileTypes(FileTypeSet.ANY_FILE)
.exec())
/* <!-- #BLAZE_RULE(java_toolchain).ATTRIBUTE(singlejar) -->
@@ -143,8 +151,9 @@
.add(
attr("singlejar", LABEL_LIST)
.mandatory()
- .cfg(HostTransition.createFactory())
.singleArtifact()
+ // This needs to be in the execution configuration.
+ .cfg(ExecutionTransitionFactory.create())
.allowedFileTypes(FileTypeSet.ANY_FILE)
.exec())
/* <!-- #BLAZE_RULE(java_toolchain).ATTRIBUTE(genclass) -->
@@ -154,7 +163,8 @@
attr("genclass", LABEL_LIST)
.mandatory()
.singleArtifact()
- .cfg(HostTransition.createFactory())
+ // This needs to be in the execution configuration.
+ .cfg(ExecutionTransitionFactory.create())
.allowedFileTypes(FileTypeSet.ANY_FILE)
.exec())
/* <!-- #BLAZE_RULE(java_toolchain).ATTRIBUTE(resourcejar) -->
@@ -162,8 +172,9 @@
<!-- #END_BLAZE_RULE.ATTRIBUTE --> */
.add(
attr("resourcejar", LABEL_LIST)
- .cfg(HostTransition.createFactory())
.singleArtifact()
+ // This needs to be in the execution configuration.
+ .cfg(ExecutionTransitionFactory.create())
.allowedFileTypes(FileTypeSet.ANY_FILE)
.exec())
/* <!-- #BLAZE_RULE(java_toolchain).ATTRIBUTE(timezone_data) -->
@@ -172,8 +183,9 @@
<!-- #END_BLAZE_RULE.ATTRIBUTE --> */
.add(
attr("timezone_data", LABEL)
- .cfg(HostTransition.createFactory())
.singleArtifact()
+ // This needs to be in the execution configuration.
+ .cfg(ExecutionTransitionFactory.create())
.allowedFileTypes(FileTypeSet.ANY_FILE)
.exec())
/* <!-- #BLAZE_RULE(java_toolchain).ATTRIBUTE(ijar) -->
@@ -182,7 +194,8 @@
.add(
attr("ijar", LABEL_LIST)
.mandatory()
- .cfg(HostTransition.createFactory())
+ // This needs to be in the execution configuration.
+ .cfg(ExecutionTransitionFactory.create())
.allowedFileTypes(FileTypeSet.ANY_FILE)
.exec())
/* <!-- #BLAZE_RULE(java_toolchain).ATTRIBUTE(header_compiler) -->
@@ -190,8 +203,9 @@
<!-- #END_BLAZE_RULE.ATTRIBUTE --> */
.add(
attr("header_compiler", LABEL_LIST)
- .cfg(HostTransition.createFactory())
.singleArtifact()
+ // This needs to be in the execution configuration.
+ .cfg(ExecutionTransitionFactory.create())
.allowedFileTypes(FileTypeSet.ANY_FILE)
.exec())
/* <!-- #BLAZE_RULE(java_toolchain).ATTRIBUTE(header_compiler_direct) -->
@@ -202,7 +216,8 @@
<!-- #END_BLAZE_RULE.ATTRIBUTE --> */
.add(
attr("header_compiler_direct", LABEL_LIST)
- .cfg(HostTransition.createFactory())
+ // This needs to be in the execution configuration.
+ .cfg(ExecutionTransitionFactory.create())
.allowedFileTypes(FileTypeSet.ANY_FILE)
.exec())
.add(
@@ -226,8 +241,9 @@
<!-- #END_BLAZE_RULE.ATTRIBUTE --> */
.add(
attr("oneversion", LABEL)
- .cfg(HostTransition.createFactory())
.singleArtifact()
+ // This needs to be in the execution configuration.
+ .cfg(ExecutionTransitionFactory.create())
.allowedFileTypes(FileTypeSet.ANY_FILE)
.exec())
/* <!-- #BLAZE_RULE(java_toolchain).ATTRIBUTE(oneversion_whitelist) -->
@@ -235,8 +251,9 @@
<!-- #END_BLAZE_RULE.ATTRIBUTE --> */
.add(
attr("oneversion_whitelist", LABEL)
- .cfg(HostTransition.createFactory())
.singleArtifact()
+ // This needs to be in the execution configuration.
+ .cfg(ExecutionTransitionFactory.create())
.allowedFileTypes(FileTypeSet.ANY_FILE)
.exec())
/* <!-- #BLAZE_RULE(java_toolchain).ATTRIBUTE(forcibly_disable_header_compilation) -->
@@ -253,15 +270,17 @@
<!-- #END_BLAZE_RULE.ATTRIBUTE --> */
.add(
attr("package_configuration", LABEL_LIST)
- .cfg(HostTransition.createFactory())
.allowedFileTypes()
+ // This needs to be in the execution configuration.
+ .cfg(ExecutionTransitionFactory.create())
.mandatoryNativeProviders(ImmutableList.of(JavaPackageConfigurationProvider.class)))
/* <!-- #BLAZE_RULE(java_toolchain).ATTRIBUTE(jacocorunner) -->
Label of the JacocoCoverageRunner deploy jar.
<!-- #END_BLAZE_RULE.ATTRIBUTE --> */
.add(
attr("jacocorunner", LABEL)
- .cfg(HostTransition.createFactory())
+ // This needs to be in the execution configuration.
+ .cfg(ExecutionTransitionFactory.create())
.allowedFileTypes(FileTypeSet.ANY_FILE)
.exec())
.build();