Enable --incompatible_use_toolchain_providers_in_java_common
Fixes https://github.com/bazelbuild/bazel/issues/7186
RELNOTES: incompatible_use_toolchain_providers_in_java_common: pass JavaToolchainInfo and JavaRuntimeInfo providers to java_common APIs instead of configured targetshttps://github.com/bazelbuild/bazel/issues/7186.
PiperOrigin-RevId: 235305349
diff --git a/src/main/java/com/google/devtools/build/lib/packages/StarlarkSemanticsOptions.java b/src/main/java/com/google/devtools/build/lib/packages/StarlarkSemanticsOptions.java
index 18883dc..b1d119b 100644
--- a/src/main/java/com/google/devtools/build/lib/packages/StarlarkSemanticsOptions.java
+++ b/src/main/java/com/google/devtools/build/lib/packages/StarlarkSemanticsOptions.java
@@ -507,7 +507,7 @@
@Option(
name = "incompatible_use_toolchain_providers_in_java_common",
- defaultValue = "false",
+ defaultValue = "true",
documentationCategory = OptionDocumentationCategory.STARLARK_SEMANTICS,
effectTags = {OptionEffectTag.BUILD_FILE_SEMANTICS},
metadataTags = {
diff --git a/src/main/java/com/google/devtools/build/lib/syntax/StarlarkSemantics.java b/src/main/java/com/google/devtools/build/lib/syntax/StarlarkSemantics.java
index 775289e..a50d7e0 100644
--- a/src/main/java/com/google/devtools/build/lib/syntax/StarlarkSemantics.java
+++ b/src/main/java/com/google/devtools/build/lib/syntax/StarlarkSemantics.java
@@ -211,7 +211,7 @@
.experimentalPlatformsApi(false)
.experimentalStarlarkConfigTransitions(false)
.experimentalTransitionWhitelistLocation("")
- .incompatibleUseToolchainProvidersInJavaCommon(false)
+ .incompatibleUseToolchainProvidersInJavaCommon(true)
.incompatibleBzlDisallowLoadAfterStatement(false)
.incompatibleDepsetIsNotIterable(false)
.incompatibleDepsetUnion(false)
diff --git a/src/test/java/com/google/devtools/build/lib/rules/java/JavaSkylarkApiTest.java b/src/test/java/com/google/devtools/build/lib/rules/java/JavaSkylarkApiTest.java
index edcf727..f407eb5 100644
--- a/src/test/java/com/google/devtools/build/lib/rules/java/JavaSkylarkApiTest.java
+++ b/src/test/java/com/google/devtools/build/lib/rules/java/JavaSkylarkApiTest.java
@@ -196,7 +196,7 @@
reporter.removeHandler(failFastHandler);
getConfiguredTarget("//a:r");
- assertContainsEvent("must point to a Java runtime");
+ assertContainsEvent("pass a java_common.JavaRuntimeInfo instead of a configured target");
}
@Test
@@ -2245,7 +2245,6 @@
@Test
public void testConfiguredTargetHostJavabase() throws Exception {
writeBuildFileForJavaToolchain();
- setSkylarkSemanticsOptions("--incompatible_use_toolchain_providers_in_java_common=true");
scratch.file(
"a/BUILD",
@@ -2279,13 +2278,12 @@
reporter.removeHandler(failFastHandler);
getConfiguredTarget("//a:r");
- assertContainsEvent("java_common.JavaRuntimeInfo");
+ assertContainsEvent("pass a java_common.JavaRuntimeInfo instead of a configured target");
}
@Test
public void testConfiguredTargetToolchain() throws Exception {
writeBuildFileForJavaToolchain();
- setSkylarkSemanticsOptions("--incompatible_use_toolchain_providers_in_java_common=true");
scratch.file(
"a/BUILD",
@@ -2319,7 +2317,7 @@
reporter.removeHandler(failFastHandler);
getConfiguredTarget("//a:r");
- assertContainsEvent("java_common.JavaToolchainInfo");
+ assertContainsEvent("pass a java_common.JavaToolchainInfo instead of a configured target");
}
@Test
diff --git a/src/test/shell/bazel/bazel_java_test.sh b/src/test/shell/bazel/bazel_java_test.sh
index 3d9f54f..799bde4 100755
--- a/src/test/shell/bazel/bazel_java_test.sh
+++ b/src/test/shell/bazel/bazel_java_test.sh
@@ -178,8 +178,8 @@
exports = exports,
resources = ctx.files.resources,
strict_deps = "ERROR",
- java_toolchain = ctx.attr._java_toolchain,
- host_javabase = ctx.attr._host_javabase
+ java_toolchain = ctx.attr._java_toolchain[java_common.JavaToolchainInfo],
+ host_javabase = ctx.attr._host_javabase[java_common.JavaRuntimeInfo],
)
return struct(
files = depset([output_jar]),
@@ -303,8 +303,8 @@
deps = [],
sourcepath = ctx.files.sourcepath,
strict_deps = "ERROR",
- java_toolchain = ctx.attr._java_toolchain,
- host_javabase = ctx.attr._host_javabase
+ java_toolchain = ctx.attr._java_toolchain[java_common.JavaToolchainInfo],
+ host_javabase = ctx.attr._host_javabase[java_common.JavaRuntimeInfo],
)
return struct(
files = depset([output_jar]),
@@ -380,8 +380,8 @@
deps = [],
sourcepath = ctx.files.sourcepath,
strict_deps = "ERROR",
- java_toolchain = ctx.attr._java_toolchain,
- host_javabase = ctx.attr._host_javabase
+ java_toolchain = ctx.attr._java_toolchain[java_common.JavaToolchainInfo],
+ host_javabase = ctx.attr._host_javabase[java_common.JavaRuntimeInfo],
)
return struct(
files = depset([output_jar]),
@@ -1291,8 +1291,8 @@
ctx,
source_files = ctx.files.srcs,
output = compiled_jar,
- java_toolchain = ctx.attr._java_toolchain,
- host_javabase = ctx.attr._host_javabase
+ java_toolchain = ctx.attr._java_toolchain[java_common.JavaToolchainInfo],
+ host_javabase = ctx.attr._host_javabase[java_common.JavaRuntimeInfo],
)
imported_provider = JavaInfo(output_jar = imported_jar, use_ijar=False);
@@ -1343,7 +1343,7 @@
provider = java_common.create_provider(
ctx.actions,
compile_time_jars = ctx.files.compile_time_jars,
- java_toolchain = ctx.attr._java_toolchain
+ java_toolchain = ctx.attr._java_toolchain[java_common.JavaToolchainInfo]
)
print(provider.compile_jars)
print(provider.full_compile_jars)
@@ -1418,7 +1418,7 @@
def _impl(ctx):
provider = java_common.create_provider(
compile_time_jars = ctx.files.compile_time_jars,
- java_toolchain = ctx.attr._java_toolchain
+ java_toolchain = ctx.attr._java_toolchain[java_common.JavaToolchainInfo]
)
return DefaultInfo(files = provider.compile_jars)
@@ -1455,7 +1455,7 @@
output_jar = ctx.file.output_jar,
source_jars = ctx.files.source_jars,
use_ijar = True,
- java_toolchain = ctx.attr._java_toolchain
+ java_toolchain = ctx.attr._java_toolchain[java_common.JavaToolchainInfo]
)
return [result(property = javaInfo)]
@@ -1676,14 +1676,14 @@
ctx.actions,
jar = ctx.file.output_jar,
target_label = ctx.label,
- java_toolchain = ctx.attr._java_toolchain,
+ java_toolchain = ctx.attr._java_toolchain[java_common.JavaToolchainInfo],
)
source_jar = java_common.pack_sources(
ctx.actions,
output_jar = ctx.file.output_jar,
source_jars = ctx.files.source_jars,
- java_toolchain = ctx.attr._java_toolchain,
- host_javabase = ctx.attr._host_javabase,
+ java_toolchain = ctx.attr._java_toolchain[java_common.JavaToolchainInfo],
+ host_javabase = ctx.attr._host_javabase[java_common.JavaRuntimeInfo],
)
javaInfo = JavaInfo(
output_jar = ctx.file.output_jar,