Read java_lite toolchains from configuration flag in Starlark java_lite_proto_library.

PiperOrigin-RevId: 420993589
diff --git a/src/main/java/com/google/devtools/build/lib/rules/proto/ProtoConfiguration.java b/src/main/java/com/google/devtools/build/lib/rules/proto/ProtoConfiguration.java
index 893bc77..cf1812c 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/proto/ProtoConfiguration.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/proto/ProtoConfiguration.java
@@ -255,6 +255,10 @@
     return options.protoToolchainForJ2objc;
   }
 
+  @StarlarkConfigurationField(
+      name = "proto_toolchain_for_java_lite",
+      doc = "Label for the java lite proto toolchains.",
+      defaultLabel = ProtoConstants.DEFAULT_PROTOC_LABEL)
   public Label protoToolchainForJavaLite() {
     return options.protoToolchainForJavaLite;
   }
diff --git a/src/main/java/com/google/devtools/build/lib/rules/proto/ProtoConstants.java b/src/main/java/com/google/devtools/build/lib/rules/proto/ProtoConstants.java
index 419756c..d039c12 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/proto/ProtoConstants.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/proto/ProtoConstants.java
@@ -19,6 +19,9 @@
   /** Default label for proto compiler. */
   static final String DEFAULT_PROTOC_LABEL =  "@com_google_protobuf//:protoc";
 
+  /** Default label for java lite proto toolchains. */
+  static final String DEFAULT_JAVA_LITE_PROTO_LABEL = "@com_google_protobuf//:javalite_toolchain";
+
   /**
    * This constant is used in ProtoCompileActionBuilder to generate an error message that's
    * displayed when a strict proto deps violation occurs.
diff --git a/src/main/starlark/builtins_bzl/common/java/java_semantics.bzl b/src/main/starlark/builtins_bzl/common/java/java_semantics.bzl
index 47b02b4..786b33b 100644
--- a/src/main/starlark/builtins_bzl/common/java/java_semantics.bzl
+++ b/src/main/starlark/builtins_bzl/common/java/java_semantics.bzl
@@ -52,7 +52,6 @@
 semantics = struct(
     COLLECT_SRCS_FROM_PROTO_LIBRARY = False,
     JAVA_TOOLCHAIN_LABEL = "@bazel_tools//tools/jdk:current_java_toolchain",
-    JAVA_LITE_PROTO_TOOLCHAIN_LABEL = "@//tools/proto/toolchains:javalite",
     JAVA_PLUGINS_FLAG_ALIAS_LABEL = "@bazel_tools//tools/jdk:java_plugins_flag_alias",
     PROGUARD_ALLOWLISTER_LABEL = "@bazel_tools//tools/jdk:proguard_whitelister",
     EXTRA_SRCS_TYPES = [],
@@ -87,4 +86,4 @@
     postprocess_plugin = _postprocess_plugin,
     check_proto_registry_collision = _check_proto_registry_collision,
     get_coverage_runner = _get_coverage_runner,
-)
\ No newline at end of file
+)
diff --git a/src/main/starlark/builtins_bzl/common/java/proto/java_lite_proto_library.bzl b/src/main/starlark/builtins_bzl/common/java/proto/java_lite_proto_library.bzl
index a10d25e..a4320a1 100644
--- a/src/main/starlark/builtins_bzl/common/java/proto/java_lite_proto_library.bzl
+++ b/src/main/starlark/builtins_bzl/common/java/proto/java_lite_proto_library.bzl
@@ -109,7 +109,7 @@
     attr_aspects = ["deps"],
     attrs = {
         PROTO_TOOLCHAIN_ATTR: attr.label(
-            default = Label(semantics.JAVA_LITE_PROTO_TOOLCHAIN_LABEL),
+            default = configuration_field(fragment = "proto", name = "proto_toolchain_for_java_lite"),
         ),
         JAVA_TOOLCHAIN_ATTR: attr.label(
             default = Label(semantics.JAVA_TOOLCHAIN_LABEL),
diff --git a/src/test/java/com/google/devtools/build/lib/rules/java/proto/StarlarkJavaLiteProtoLibraryTest.java b/src/test/java/com/google/devtools/build/lib/rules/java/proto/StarlarkJavaLiteProtoLibraryTest.java
index feecc89..23ba12e 100644
--- a/src/test/java/com/google/devtools/build/lib/rules/java/proto/StarlarkJavaLiteProtoLibraryTest.java
+++ b/src/test/java/com/google/devtools/build/lib/rules/java/proto/StarlarkJavaLiteProtoLibraryTest.java
@@ -57,7 +57,10 @@
 
   @Before
   public final void setUpMocks() throws Exception {
-    useConfiguration("--proto_compiler=//proto:compiler");
+    useConfiguration(
+        "--proto_compiler=//proto:compiler",
+        "--proto_toolchain_for_javalite=//tools/proto/toolchains:javalite");
+
     scratch.file("proto/BUILD", "licenses(['notice'])", "exports_files(['compiler'])");
 
     mockToolchains();
@@ -265,7 +268,10 @@
         "    mnemonics = ['Javac'],",
         "    extra_actions = [':xa'])");
 
-    useConfiguration("--experimental_action_listener=//xa:al", "--proto_compiler=//proto:compiler");
+    useConfiguration(
+        "--experimental_action_listener=//xa:al",
+        "--proto_compiler=//proto:compiler",
+        "--proto_toolchain_for_javalite=//tools/proto/toolchains:javalite");
     ConfiguredTarget ct = getConfiguredTarget("//x:lite_pb2");
     NestedSet<DerivedArtifact> artifacts =
         ct.getProvider(ExtraActionArtifactsProvider.class).getTransitiveExtraActionArtifacts();