Removing javac attribute from java_toolchain rule.
javac can be specified using tools attribute. It is not provided by JavaToolchain provider any more.
LocationBuilder in JavaToolchain class can be removed, because alias resolution in $location function was fixed with b/117612331.
RELNOTES[inc]: Removing javac attribute from java_toolchain.
PiperOrigin-RevId: 343801252
diff --git a/src/main/java/com/google/devtools/build/lib/rules/java/JavaToolchain.java b/src/main/java/com/google/devtools/build/lib/rules/java/JavaToolchain.java
index 680b2e1..d5f4720 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/java/JavaToolchain.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/java/JavaToolchain.java
@@ -17,14 +17,12 @@
import static com.google.common.collect.Iterables.getOnlyElement;
import com.google.common.base.Joiner;
-import com.google.common.collect.ImmutableCollection;
import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableListMultimap;
import com.google.common.collect.ImmutableMap;
import com.google.common.collect.ImmutableSet;
import com.google.devtools.build.lib.actions.Artifact;
import com.google.devtools.build.lib.actions.MutableActionGraph.ActionConflictException;
-import com.google.devtools.build.lib.analysis.AliasProvider;
import com.google.devtools.build.lib.analysis.ConfiguredTarget;
import com.google.devtools.build.lib.analysis.FilesToRunProvider;
import com.google.devtools.build.lib.analysis.PrerequisiteArtifacts;
@@ -33,9 +31,7 @@
import com.google.devtools.build.lib.analysis.RuleContext;
import com.google.devtools.build.lib.analysis.Runfiles;
import com.google.devtools.build.lib.analysis.RunfilesProvider;
-import com.google.devtools.build.lib.analysis.TransitiveInfoCollection;
import com.google.devtools.build.lib.analysis.platform.ToolchainInfo;
-import com.google.devtools.build.lib.cmdline.Label;
import com.google.devtools.build.lib.collect.nestedset.NestedSet;
import com.google.devtools.build.lib.collect.nestedset.NestedSetBuilder;
import com.google.devtools.build.lib.collect.nestedset.Order;
@@ -61,7 +57,6 @@
ruleContext.attributes().get("javac_supports_workers", Type.BOOLEAN);
boolean javacSupportsMultiplexWorkers =
ruleContext.attributes().get("javac_supports_multiplex_workers", Type.BOOLEAN);
- Artifact javac = ruleContext.getPrerequisiteArtifact("javac");
FilesToRunProvider javabuilder = ruleContext.getExecutablePrerequisite("javabuilder");
FilesToRunProvider headerCompiler = ruleContext.getExecutablePrerequisite("header_compiler");
FilesToRunProvider headerCompilerDirect =
@@ -89,29 +84,17 @@
getCompatibleJavacOptions(ruleContext);
NestedSet<Artifact> tools = PrerequisiteArtifacts.nestedSet(ruleContext, "tools");
- if (javac != null) {
- tools = NestedSetBuilder.fromNestedSet(tools).add(javac).build();
- }
- TransitiveInfoCollection javacDep = ruleContext.getPrerequisite("javac");
-
- ImmutableMap.Builder<Label, ImmutableCollection<Artifact>> locationsBuilder =
- ImmutableMap.builder();
- if (javacDep != null) {
- locationsBuilder.put(AliasProvider.getDependencyLabel(javacDep), ImmutableList.of(javac));
- }
- ImmutableMap<Label, ImmutableCollection<Artifact>> locations = locationsBuilder.build();
-
- ImmutableList<String> jvmOpts = getJvmOpts(ruleContext, locations, "jvm_opts");
+ ImmutableList<String> jvmOpts = getJvmOpts(ruleContext, "jvm_opts");
ImmutableList<String> javabuilderJvmOpts =
ImmutableList.<String>builder()
.addAll(jvmOpts)
- .addAll(getJvmOpts(ruleContext, locations, "javabuilder_jvm_opts"))
+ .addAll(getJvmOpts(ruleContext, "javabuilder_jvm_opts"))
.build();
ImmutableList<String> turbineJvmOpts =
ImmutableList.<String>builder()
.addAll(jvmOpts)
- .addAll(getJvmOpts(ruleContext, locations, "turbine_jvm_opts"))
+ .addAll(getJvmOpts(ruleContext, "turbine_jvm_opts"))
.build();
ImmutableList<JavaPackageConfigurationProvider> packageConfiguration =
@@ -196,9 +179,8 @@
private static ImmutableList<String> getJvmOpts(
RuleContext ruleContext,
- ImmutableMap<Label, ImmutableCollection<Artifact>> locations,
String attribute) {
- return ruleContext.getExpander().withExecLocations(locations).list(attribute);
+ return ruleContext.getExpander().withExecLocations(ImmutableMap.of()).list(attribute);
}
private static BootClassPathInfo getBootClassPathInfo(RuleContext ruleContext) {
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 6127507..4e2f3d7 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
@@ -110,15 +110,6 @@
True if JavaBuilder supports running as a multiplex persistent worker, false if it doesn't.
<!-- #END_BLAZE_RULE.ATTRIBUTE --> */
.add(attr("javac_supports_multiplex_workers", BOOLEAN).value(true))
- /* <!-- #BLAZE_RULE(java_toolchain).ATTRIBUTE(javac) -->
- Label of the javac jar.
- <!-- #END_BLAZE_RULE.ATTRIBUTE --> */
- .add(
- attr("javac", LABEL_LIST)
- // This needs to be in the execution configuration.
- .cfg(ExecutionTransitionFactory.create())
- .singleArtifact()
- .allowedFileTypes(FileTypeSet.ANY_FILE))
/* <!-- #BLAZE_RULE(java_toolchain).ATTRIBUTE(tools) -->
Labels of tools available for label-expansion in jvm_opts.
<!-- #END_BLAZE_RULE.ATTRIBUTE --> */