Skip to content

Commit e1c404e

Browse files
comiuscopybara-github
authored andcommitted
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
1 parent d21345d commit e1c404e

File tree

10 files changed

+21
-280
lines changed

10 files changed

+21
-280
lines changed

src/main/java/com/google/devtools/build/lib/bazel/rules/JavaRules.java

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -38,10 +38,8 @@
3838
import com.google.devtools.build.lib.rules.java.JavaRuleClasses.IjarBaseRule;
3939
import com.google.devtools.build.lib.rules.java.JavaRuleClasses.JavaRuntimeBaseRule;
4040
import com.google.devtools.build.lib.rules.java.JavaRuleClasses.JavaToolchainBaseRule;
41-
import com.google.devtools.build.lib.rules.java.JavaRuntimeAliasRule;
4241
import com.google.devtools.build.lib.rules.java.JavaRuntimeRule;
4342
import com.google.devtools.build.lib.rules.java.JavaStarlarkCommon;
44-
import com.google.devtools.build.lib.rules.java.JavaToolchainAliasRule;
4543
import com.google.devtools.build.lib.rules.java.JavaToolchainRule;
4644
import com.google.devtools.build.lib.rules.java.ProguardLibraryRule;
4745
import com.google.devtools.build.lib.rules.java.ProguardSpecProvider;
@@ -81,8 +79,6 @@ public void init(ConfiguredRuleClassProvider.Builder builder) {
8179
builder.addRuleDefinition(JavaToolchainRule.create(BazelJavaToolchain.class));
8280
builder.addRuleDefinition(new JavaPackageConfigurationRule());
8381
builder.addRuleDefinition(new JavaRuntimeRule());
84-
builder.addRuleDefinition(new JavaRuntimeAliasRule());
85-
builder.addRuleDefinition(new JavaToolchainAliasRule());
8682
builder.addRuleDefinition(new JavaPluginsFlagAliasRule());
8783

8884
builder.addRuleDefinition(new ExtraActionRule());

src/main/java/com/google/devtools/build/lib/rules/java/BUILD

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -23,12 +23,10 @@ java_library(
2323
"JavaPluginsFlagAliasRule.java",
2424
"JavaPrimaryClassProvider.java",
2525
"JavaRuntime.java",
26-
"JavaRuntimeAliasRule.java",
2726
"JavaRuntimeClasspathProvider.java",
2827
"JavaRuntimeRule.java",
2928
"JavaStarlarkCommon.java",
3029
"JavaToolchain.java",
31-
"JavaToolchainAliasRule.java",
3230
"JavaToolchainRule.java",
3331
"ProguardLibrary.java",
3432
"ProguardLibraryRule.java",
@@ -47,7 +45,6 @@ java_library(
4745
deps = [
4846
":RpcSupport",
4947
":java-compilation",
50-
":java-implicit-attributes",
5148
"//src/main/java/com/google/devtools/build/lib/actions",
5249
"//src/main/java/com/google/devtools/build/lib/actions:artifacts",
5350
"//src/main/java/com/google/devtools/build/lib/actions:execution_requirements",
@@ -77,7 +74,6 @@ java_library(
7774
"//src/main/java/com/google/devtools/build/lib/concurrent",
7875
"//src/main/java/com/google/devtools/build/lib/packages",
7976
"//src/main/java/com/google/devtools/build/lib/packages/semantics",
80-
"//src/main/java/com/google/devtools/build/lib/rules:alias",
8177
"//src/main/java/com/google/devtools/build/lib/rules/apple",
8278
"//src/main/java/com/google/devtools/build/lib/rules/cpp",
8379
"//src/main/java/com/google/devtools/build/lib/rules/proto",

src/main/java/com/google/devtools/build/lib/rules/java/JavaConfiguration.java

Lines changed: 6 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,6 @@
2929
import com.google.devtools.build.lib.concurrent.ThreadSafety.Immutable;
3030
import com.google.devtools.build.lib.starlarkbuildapi.java.JavaConfigurationApi;
3131
import java.util.Map;
32-
import java.util.Objects;
3332
import javax.annotation.Nullable;
3433

3534
/** A java compiler configuration containing the flags required for compilation. */
@@ -94,16 +93,13 @@ public enum ImportDepsCheckingLevel {
9493
private final NamedLabel bytecodeOptimizer;
9594
private final boolean splitBytecodeOptimizationPass;
9695
private final boolean enforceProguardFileExtension;
97-
private final Label toolchainLabel;
98-
private final Label runtimeLabel;
9996
private final boolean runAndroidLint;
10097
private final boolean limitAndroidLintToAndroidCompatible;
10198
private final boolean explicitJavaTestDeps;
10299
private final boolean jplPropagateCcLinkParamsStore;
103100
private final boolean addTestSupportToCompileTimeDeps;
104101
private final ImmutableList<Label> pluginList;
105102
private final boolean disallowResourceJars;
106-
private final boolean disallowLegacyJavaToolchainFlags;
107103
private final boolean experimentalTurbineAnnotationProcessing;
108104
private final boolean experimentalEnableJspecify;
109105
private final boolean requireJavaPluginInfo;
@@ -129,8 +125,6 @@ public JavaConfiguration(BuildOptions buildOptions) throws InvalidConfigurationE
129125
this.extraProguardSpecs = ImmutableList.copyOf(javaOptions.extraProguardSpecs);
130126
this.splitBytecodeOptimizationPass = javaOptions.splitBytecodeOptimizationPass;
131127
this.enforceProguardFileExtension = javaOptions.enforceProguardFileExtension;
132-
this.toolchainLabel = javaOptions.javaToolchain;
133-
this.runtimeLabel = javaOptions.javaBase;
134128
this.useLegacyBazelJavaTest = javaOptions.legacyBazelJavaTest;
135129
this.strictDepsJavaProtos = javaOptions.strictDepsJavaProtos;
136130
this.isDisallowStrictDepsForJpl = javaOptions.isDisallowStrictDepsForJpl;
@@ -163,26 +157,21 @@ public JavaConfiguration(BuildOptions buildOptions) throws InvalidConfigurationE
163157
this.bytecodeOptimizer = NamedLabel.create(mnemonic, Optional.fromNullable(optimizerLabel));
164158

165159
this.pluginList = ImmutableList.copyOf(javaOptions.pluginList);
166-
this.disallowLegacyJavaToolchainFlags = javaOptions.disallowLegacyJavaToolchainFlags;
167160
this.experimentalTurbineAnnotationProcessing =
168161
javaOptions.experimentalTurbineAnnotationProcessing;
169162
this.experimentalEnableJspecify = javaOptions.experimentalEnableJspecify;
170163

171164
if (javaOptions.disallowLegacyJavaToolchainFlags) {
172-
checkLegacyToolchainFlagIsUnset(
173-
"javabase", javaOptions.javaBase, javaOptions.defaultJavaBase());
174-
checkLegacyToolchainFlagIsUnset(
175-
"host_javabase", javaOptions.getHostJavaBase(), javaOptions.defaultHostJavaBase());
176-
checkLegacyToolchainFlagIsUnset(
177-
"java_toolchain", javaOptions.javaToolchain, javaOptions.defaultJavaToolchain());
178-
checkLegacyToolchainFlagIsUnset(
179-
"host_java_toolchain", javaOptions.hostJavaToolchain, javaOptions.defaultJavaToolchain());
165+
checkLegacyToolchainFlagIsUnset("javabase", javaOptions.javaBase);
166+
checkLegacyToolchainFlagIsUnset("host_javabase", javaOptions.hostJavaBase);
167+
checkLegacyToolchainFlagIsUnset("java_toolchain", javaOptions.javaToolchain);
168+
checkLegacyToolchainFlagIsUnset("host_java_toolchain", javaOptions.hostJavaToolchain);
180169
}
181170
}
182171

183-
private static void checkLegacyToolchainFlagIsUnset(String flag, Label label, Label defaultValue)
172+
private static void checkLegacyToolchainFlagIsUnset(String flag, Label label)
184173
throws InvalidConfigurationException {
185-
if (!Objects.equals(label, defaultValue)) {
174+
if (label != null) {
186175
throw new InvalidConfigurationException(
187176
String.format(
188177
"--%s=%s is no longer supported, use --platforms instead (see #7849)", flag, label));
@@ -287,24 +276,6 @@ public boolean enforceProguardFileExtension() {
287276
return enforceProguardFileExtension;
288277
}
289278

290-
/** Returns the label of the default java_toolchain rule */
291-
@StarlarkConfigurationField(
292-
name = "java_toolchain",
293-
doc = "Returns the label of the default java_toolchain rule.",
294-
defaultLabel = "//tools/jdk:toolchain",
295-
defaultInToolRepository = true)
296-
public Label getToolchainLabel() {
297-
if (disallowLegacyJavaToolchainFlags) {
298-
throw new IllegalStateException("--java_toolchain is no longer supported");
299-
}
300-
return toolchainLabel;
301-
}
302-
303-
/** Returns the label of the {@code java_runtime} rule representing the JVM in use. */
304-
public Label getRuntimeLabel() {
305-
return runtimeLabel;
306-
}
307-
308279
/** Stores a String name and an optional associated label. */
309280
@AutoValue
310281
public abstract static class NamedLabel {

src/main/java/com/google/devtools/build/lib/rules/java/JavaOptions.java

Lines changed: 8 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -71,41 +71,34 @@ public ImportDepsCheckingLevelConverter() {
7171
+ " instead; see #7849")
7272
public boolean disallowLegacyJavaToolchainFlags;
7373

74-
private static final String DEFAULT_JAVABASE = "@bazel_tools//tools/jdk:jdk";
75-
7674
@Deprecated
7775
@Option(
7876
name = "javabase",
79-
defaultValue = DEFAULT_JAVABASE,
77+
defaultValue = "null",
8078
converter = LabelConverter.class,
8179
documentationCategory = OptionDocumentationCategory.UNDOCUMENTED,
8280
effectTags = {OptionEffectTag.UNKNOWN},
83-
help =
84-
"JAVABASE used for the JDK invoked by Blaze. This is the "
85-
+ "java_runtime which will be used to execute "
86-
+ "external Java commands.")
81+
help = "No-op. Kept here for backwards compatibility.")
8782
public Label javaBase;
8883

89-
private static final String DEFAULT_JAVA_TOOLCHAIN = "@bazel_tools//tools/jdk:remote_toolchain";
90-
9184
@Deprecated
9285
@Option(
9386
name = "java_toolchain",
94-
defaultValue = DEFAULT_JAVA_TOOLCHAIN,
87+
defaultValue = "null",
9588
converter = LabelConverter.class,
9689
documentationCategory = OptionDocumentationCategory.UNDOCUMENTED,
9790
effectTags = {OptionEffectTag.UNKNOWN},
98-
help = "The name of the toolchain rule for Java.")
91+
help = "No-op. Kept here for backwards compatibility.")
9992
public Label javaToolchain;
10093

10194
@Deprecated
10295
@Option(
10396
name = "host_java_toolchain",
104-
defaultValue = DEFAULT_JAVA_TOOLCHAIN,
97+
defaultValue = "null",
10598
converter = LabelConverter.class,
10699
documentationCategory = OptionDocumentationCategory.UNDOCUMENTED,
107100
effectTags = {OptionEffectTag.UNKNOWN},
108-
help = "The Java toolchain used to build tools that are executed during a build.")
101+
help = "No-op. Kept here for backwards compatibility.")
109102
public Label hostJavaToolchain;
110103

111104
@Deprecated
@@ -115,9 +108,7 @@ public ImportDepsCheckingLevelConverter() {
115108
converter = LabelConverter.class,
116109
documentationCategory = OptionDocumentationCategory.UNDOCUMENTED,
117110
effectTags = {OptionEffectTag.UNKNOWN},
118-
help =
119-
"JAVABASE used for the host JDK. This is the java_runtime which is used to execute "
120-
+ "tools during a build.")
111+
help = "No-op. Kept here for backwards compatibility.")
121112
public Label hostJavaBase;
122113

123114
@Option(
@@ -576,41 +567,20 @@ public ImportDepsCheckingLevelConverter() {
576567
effectTags = {OptionEffectTag.UNKNOWN},
577568
help = "Enable experimental jspecify integration.")
578569
public boolean experimentalEnableJspecify;
579-
580-
Label defaultJavaBase() {
581-
return Label.parseAbsoluteUnchecked(DEFAULT_JAVABASE);
582-
}
583-
584-
Label getHostJavaBase() {
585-
if (hostJavaBase == null) {
586-
return defaultHostJavaBase();
587-
}
588-
return hostJavaBase;
589-
}
590-
591-
Label defaultHostJavaBase() {
592-
return Label.parseAbsoluteUnchecked("@bazel_tools//tools/jdk:remote_jdk11");
593-
}
594-
595-
Label defaultJavaToolchain() {
596-
return Label.parseAbsoluteUnchecked(DEFAULT_JAVA_TOOLCHAIN);
597-
}
598-
599570
@Override
600571
public FragmentOptions getHost() {
601572
// Note validation actions don't run in host config, so no need copying flags related to that.
602573
// TODO(b/171078539): revisit if relevant validations are run in host config
603574
JavaOptions host = (JavaOptions) getDefault();
604575

605-
host.javaBase = getHostJavaBase();
606576
if (hostJvmOpts == null || hostJvmOpts.isEmpty()) {
607577
host.jvmOpts = ImmutableList.of("-XX:ErrorFile=/dev/stderr");
608578
} else {
609579
host.jvmOpts = hostJvmOpts;
610580
}
611581

582+
612583
host.javacOpts = hostJavacOpts;
613-
host.javaToolchain = hostJavaToolchain;
614584

615585
host.javaLauncher = hostJavaLauncher;
616586

@@ -648,10 +618,8 @@ public FragmentOptions getHost() {
648618
host.proguard = proguard;
649619

650620
// Save host options for further use.
651-
host.hostJavaBase = hostJavaBase;
652621
host.hostJavacOpts = hostJavacOpts;
653622
host.hostJavaLauncher = hostJavaLauncher;
654-
host.hostJavaToolchain = hostJavaToolchain;
655623
host.hostJavaRuntimeVersion = hostJavaRuntimeVersion;
656624
host.hostJavaLanguageVersion = hostJavaLanguageVersion;
657625

src/main/java/com/google/devtools/build/lib/rules/java/JavaRuntimeAliasRule.java

Lines changed: 0 additions & 44 deletions
This file was deleted.

src/main/java/com/google/devtools/build/lib/rules/java/JavaToolchainAliasRule.java

Lines changed: 0 additions & 43 deletions
This file was deleted.

src/test/java/com/google/devtools/build/lib/analysis/mock/BazelAnalysisMock.java

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -117,8 +117,6 @@ public void setupMockClient(MockToolsConfig config, List<String> workspaceConten
117117
" 'java_toolchain_alias',",
118118
" 'java_runtime_alias',",
119119
" 'java_host_runtime_alias',",
120-
" 'legacy_java_toolchain_alias',",
121-
" 'legacy_java_runtime_alias',",
122120
")",
123121
"package(default_visibility=['//visibility:public'])",
124122
"java_toolchain(",
@@ -170,9 +168,7 @@ public void setupMockClient(MockToolsConfig config, List<String> workspaceConten
170168
"java_runtime(name = 'host_jdk', srcs = [])",
171169
"java_runtime(name = 'remote_jdk11', srcs = [])",
172170
"java_toolchain_alias(name = 'current_java_toolchain')",
173-
"legacy_java_toolchain_alias(name = 'legacy_current_java_toolchain')",
174171
"java_runtime_alias(name = 'current_java_runtime')",
175-
"legacy_java_runtime_alias(name = 'legacy_current_java_runtime')",
176172
"java_host_runtime_alias(name = 'current_host_java_runtime')",
177173
"filegroup(name='langtools', srcs=['jdk/lib/tools.jar'])",
178174
"filegroup(name='bootclasspath', srcs=['jdk/jre/lib/rt.jar'])",

src/test/shell/bazel/bazel_example_test.sh

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -106,18 +106,16 @@ function test_java_test_with_junitrunner() {
106106

107107
function test_genrule_and_genquery() {
108108
# With toolchain resolution java runtime only appears in cquery results.
109-
# //tools/jdk:jdk label appears in the dependency list while --javabase
110-
# is still available, because of migration rules.
111109
assert_build_output ./bazel-bin/examples/gen/genquery examples/gen:genquery
112110
local want=./bazel-genfiles/examples/gen/genrule.txt
113111
assert_build_output $want examples/gen:genrule
114112

115113
diff $want ./bazel-bin/examples/gen/genquery \
116114
|| fail "genrule and genquery output differs"
117115

118-
grep -qE "^@bazel_tools//tools/jdk:jdk$" $want || {
116+
grep -vqE "^@local_jdk//:jdk$" $want || {
119117
cat $want
120-
fail "@bazel_tools//tools/jdk:jdk not found in genquery output"
118+
fail "@local_jdk//:jdk found in genquery output"
121119
}
122120
}
123121

0 commit comments

Comments
 (0)