Add `android_lint_tools` to `java_toolchain` for `AndroidLint` action `tools`.

`_android_lint_action` in `android_lint.bzl` passes `linter.data` (`android_lint_data`, used for `android_lint_opts` location expansion) in per-action `inputs` (`transitive_inputs`) rather than `tools`. Add `android_lint_tools` on `java_toolchain` for `android_lint_jvm_opts` location expansion and include `linter.tools` in `AndroidLint` action `tools`, so persistent workers include JVM startup tool files in `WorkerFilesHash` without rebuilding worker snapshots when per-action `android_lint_data` inputs change.

PiperOrigin-RevId: 998493863
Change-Id: I97d05f2e3d10f0948fc0563551f2c098c743d35a
diff --git a/java/common/rules/android_lint.bzl b/java/common/rules/android_lint.bzl
index 7152990..d07bb5e 100644
--- a/java/common/rules/android_lint.bzl
+++ b/java/common/rules/android_lint.bzl
@@ -82,7 +82,7 @@
     executable = linter.tool.executable
     transitive_inputs = []
     if executable.extension != "jar":
-        tools = [linter.tool]
+        tools = [linter.tool, linter.tools]
         transitive_inputs.append(linter.data)
         args_list = [args]
     else:
@@ -91,7 +91,7 @@
         jvm_args.add_all(linter.jvm_opts)
         jvm_args.add("-jar", executable)
         executable = java_runtime.java_executable_exec_path
-        tools = [java_runtime.files, linter.tool.executable]
+        tools = [java_runtime.files, linter.tool.executable, linter.tools]
         transitive_inputs.append(linter.data)
         args_list = [jvm_args, args]
 
diff --git a/java/common/rules/java_toolchain.bzl b/java/common/rules/java_toolchain.bzl
index a24ae4f..1205083 100644
--- a/java/common/rules/java_toolchain.bzl
+++ b/java/common/rules/java_toolchain.bzl
@@ -176,8 +176,9 @@
         fail(ctx.attr.android_lint_runner.label, "does not refer to a valid executable target")
     return struct(
         tool = files_to_run,
+        tools = depset(ctx.files.android_lint_tools),
         data = depset(ctx.files.android_lint_data),
-        jvm_opts = depset([ctx.expand_location(opt, ctx.attr.android_lint_data) for opt in ctx.attr.android_lint_jvm_opts]),
+        jvm_opts = depset([ctx.expand_location(opt, ctx.attr.android_lint_tools) for opt in ctx.attr.android_lint_jvm_opts]),
         lint_opts = [ctx.expand_location(opt, ctx.attr.android_lint_data) for opt in ctx.attr.android_lint_opts],
         package_config = [dep[JavaPackageConfigurationInfo] for dep in ctx.attr.android_lint_package_configuration],
     )
@@ -297,6 +298,13 @@
             cfg = "exec",
             allow_files = True,
             doc = """
+Labels of files available for label-expansion in android_lint_opts.
+            """,
+        ),
+        "android_lint_tools": attr.label_list(
+            cfg = "exec",
+            allow_files = True,
+            doc = """
 Labels of tools available for label-expansion in android_lint_jvm_opts.
             """,
         ),