Extract a constant for Java runtime late-bound attribute names
PiperOrigin-RevId: 233493219
diff --git a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidLocalTestBase.java b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidLocalTestBase.java
index 98f3c18..8e4a349 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidLocalTestBase.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidLocalTestBase.java
@@ -14,6 +14,7 @@
package com.google.devtools.build.lib.rules.android;
import static com.google.devtools.build.lib.rules.java.DeployArchiveBuilder.Compression.COMPRESSED;
+import static com.google.devtools.build.lib.rules.java.JavaRuleClasses.JAVA_RUNTIME_ATTRIBUTE_NAME;
import com.google.common.collect.ImmutableList;
import com.google.devtools.build.lib.actions.Artifact;
@@ -457,7 +458,8 @@
builder.addTransitiveArtifactsWrappedInStableOrder(javaCommon.getRuntimeClasspath());
// Add the JDK files if it comes from P4 (see java_stub_template.txt).
- TransitiveInfoCollection javabaseTarget = ruleContext.getPrerequisite(":jvm", Mode.TARGET);
+ TransitiveInfoCollection javabaseTarget =
+ ruleContext.getPrerequisite(JAVA_RUNTIME_ATTRIBUTE_NAME, Mode.TARGET);
if (javabaseTarget != null) {
builder.addTransitiveArtifacts(
diff --git a/src/main/java/com/google/devtools/build/lib/rules/java/JavaRuleClasses.java b/src/main/java/com/google/devtools/build/lib/rules/java/JavaRuleClasses.java
index 4735cb0..fe07a27 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/java/JavaRuleClasses.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/java/JavaRuleClasses.java
@@ -37,6 +37,8 @@
"$java_runtime_toolchain_type";
public static final String JAVA_TOOLCHAIN_TYPE_ATTRIBUTE_NAME = "$java_toolchain_type";
public static final String JAVA_TOOLCHAIN_ATTRIBUTE_NAME = ":java_toolchain";
+ public static final String JAVA_RUNTIME_ATTRIBUTE_NAME = ":jvm";
+ public static final String HOST_JAVA_RUNTIME_ATTRIBUTE_NAME = ":host_jdk";
public static Label javaToolchainTypeAttribute(RuleDefinitionEnvironment env) {
return env.getToolsLabel(TOOLCHAIN_TYPE_LABEL);
@@ -95,12 +97,12 @@
public RuleClass build(RuleClass.Builder builder, RuleDefinitionEnvironment env) {
return builder
.add(
- attr(":jvm", LABEL)
+ attr(JAVA_RUNTIME_ATTRIBUTE_NAME, LABEL)
.value(JavaSemantics.jvmAttribute(env))
.mandatoryProviders(ToolchainInfo.PROVIDER.id())
.useOutputLicenses())
.add(
- attr(":host_jdk", LABEL)
+ attr(HOST_JAVA_RUNTIME_ATTRIBUTE_NAME, LABEL)
.cfg(HostTransition.INSTANCE)
.value(JavaSemantics.hostJdkAttribute(env))
.mandatoryProviders(ToolchainInfo.PROVIDER.id()))
diff --git a/src/main/java/com/google/devtools/build/lib/rules/java/JavaRuntimeInfo.java b/src/main/java/com/google/devtools/build/lib/rules/java/JavaRuntimeInfo.java
index 2ffbb29..abc6dc9 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/java/JavaRuntimeInfo.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/java/JavaRuntimeInfo.java
@@ -15,6 +15,8 @@
package com.google.devtools.build.lib.rules.java;
import static com.google.devtools.build.lib.packages.BuildType.NODEP_LABEL;
+import static com.google.devtools.build.lib.rules.java.JavaRuleClasses.HOST_JAVA_RUNTIME_ATTRIBUTE_NAME;
+import static com.google.devtools.build.lib.rules.java.JavaRuleClasses.JAVA_RUNTIME_ATTRIBUTE_NAME;
import static com.google.devtools.build.lib.rules.java.JavaRuleClasses.JAVA_RUNTIME_TOOLCHAIN_TYPE_ATTRIBUTE_NAME;
import com.google.common.collect.ImmutableMap;
@@ -62,15 +64,19 @@
// Helper methods to access an instance of JavaRuntimeInfo.
public static JavaRuntimeInfo forHost(RuleContext ruleContext) {
- return from(ruleContext, ":host_jdk", RuleConfiguredTarget.Mode.HOST);
+ return from(ruleContext, HOST_JAVA_RUNTIME_ATTRIBUTE_NAME, RuleConfiguredTarget.Mode.HOST);
}
public static JavaRuntimeInfo from(RuleContext ruleContext) {
- return from(ruleContext, ":jvm", RuleConfiguredTarget.Mode.TARGET);
+ return from(ruleContext, JAVA_RUNTIME_ATTRIBUTE_NAME, RuleConfiguredTarget.Mode.TARGET);
}
public static JavaRuntimeInfo forHost(RuleContext ruleContext, Label toolchainType) {
- return from(ruleContext, ":host_jdk", RuleConfiguredTarget.Mode.HOST, toolchainType);
+ return from(
+ ruleContext,
+ HOST_JAVA_RUNTIME_ATTRIBUTE_NAME,
+ RuleConfiguredTarget.Mode.HOST,
+ toolchainType);
}
@Nullable
diff --git a/src/main/java/com/google/devtools/build/lib/rules/java/proto/JavaLiteProtoAspect.java b/src/main/java/com/google/devtools/build/lib/rules/java/proto/JavaLiteProtoAspect.java
index 83dacae..8c4a7b3 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/java/proto/JavaLiteProtoAspect.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/java/proto/JavaLiteProtoAspect.java
@@ -18,6 +18,7 @@
import static com.google.devtools.build.lib.cmdline.Label.parseAbsoluteUnchecked;
import static com.google.devtools.build.lib.packages.Attribute.attr;
import static com.google.devtools.build.lib.packages.BuildType.LABEL;
+import static com.google.devtools.build.lib.rules.java.JavaRuleClasses.HOST_JAVA_RUNTIME_ATTRIBUTE_NAME;
import static com.google.devtools.build.lib.rules.java.proto.JplCcLinkParams.createCcLinkingInfo;
import static com.google.devtools.build.lib.rules.java.proto.StrictDepsUtils.createNonStrictCompilationArgsProvider;
@@ -129,7 +130,7 @@
ProtoLangToolchainProvider.class))
.value(getProtoToolchainLabel(defaultProtoToolchainLabel)))
.add(
- attr(":host_jdk", LABEL)
+ attr(HOST_JAVA_RUNTIME_ATTRIBUTE_NAME, LABEL)
.cfg(HostTransition.INSTANCE)
.value(hostJdkAttribute)
.mandatoryProviders(ToolchainInfo.PROVIDER.id()))
diff --git a/src/main/java/com/google/devtools/build/lib/rules/java/proto/JavaProtoAspect.java b/src/main/java/com/google/devtools/build/lib/rules/java/proto/JavaProtoAspect.java
index d52d7b4..6b72a27 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/java/proto/JavaProtoAspect.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/java/proto/JavaProtoAspect.java
@@ -18,6 +18,7 @@
import static com.google.devtools.build.lib.cmdline.Label.parseAbsoluteUnchecked;
import static com.google.devtools.build.lib.packages.Attribute.attr;
import static com.google.devtools.build.lib.packages.BuildType.LABEL;
+import static com.google.devtools.build.lib.rules.java.JavaRuleClasses.HOST_JAVA_RUNTIME_ATTRIBUTE_NAME;
import static com.google.devtools.build.lib.rules.java.proto.JplCcLinkParams.createCcLinkingInfo;
import static com.google.devtools.build.lib.rules.java.proto.StrictDepsUtils.createNonStrictCompilationArgsProvider;
@@ -136,7 +137,10 @@
// once it's in a Bazel release.
.legacyAllowAnyFileType()
.value(getSpeedProtoToolchainLabel(defaultSpeedProtoToolchainLabel)))
- .add(attr(":host_jdk", LABEL).cfg(HostTransition.INSTANCE).value(hostJdkAttribute))
+ .add(
+ attr(HOST_JAVA_RUNTIME_ATTRIBUTE_NAME, LABEL)
+ .cfg(HostTransition.INSTANCE)
+ .value(hostJdkAttribute))
.add(
attr(JavaRuleClasses.JAVA_TOOLCHAIN_ATTRIBUTE_NAME, LABEL)
.useOutputLicenses()