| package(default_visibility = ["//visibility:public"]) | 
 |  | 
 | load("@rules_java//java:defs.bzl", "java_import") | 
 | load("@rules_python//python:defs.bzl", "py_binary", "py_test") | 
 | load(":launcher_flag_alias.bzl", "launcher_flag_alias") | 
 |  | 
 | exports_files([ | 
 |     "BUILD.java_tools", | 
 | ]) | 
 |  | 
 | # A single binary distribution of a JDK (e.g., OpenJDK 17 for Windows arm64) provides three | 
 | # different types of toolchains from the perspective of Bazel: | 
 |  | 
 | # The compilation toolchain, which provides the Java runtime used to execute the Java compiler, as | 
 | # well as various helper tools and settings. | 
 | # | 
 | # Toolchains of this type typically have constraints on the execution platform so that their Java | 
 | # runtime can run the compiler, but not on the target platform as Java compilation outputs are | 
 | # platform independent. | 
 | # | 
 | # Obtain the associated JavaToolchainInfo via: | 
 | #   ctx.toolchains["@bazel_tools//tools/jdk:toolchain_type"].java | 
 | toolchain_type(name = "toolchain_type") | 
 |  | 
 | # The Java runtime that executable Java compilation outputs (e.g., java_binary with | 
 | # create_executable = True) will run on. | 
 | # | 
 | # Toolchains of this type typically have constraints on the target platform so that the runtime's | 
 | # native 'java' binary can be run there, but not on the execution platform as building an executable | 
 | # Java target only requires copying or symlinking the runtime, which can be done on any platform. | 
 | # | 
 | # Obtain the associated JavaRuntimeInfo via: | 
 | #   ctx.toolchains["@bazel_tools//tools/jdk:runtime_toolchain_type"].java_runtime | 
 | toolchain_type(name = "runtime_toolchain_type") | 
 |  | 
 | # The Java runtime to extract the bootclasspath from that is then used to compile Java sources. | 
 | # | 
 | # As the bootclasspath is platform independent, toolchains of this type may have no constraints. | 
 | # Purely as an optimization to prevent unnecessary fetches of remote runtimes for other | 
 | # architectures, toolchains of this type may have constraints on the execution platform that match | 
 | # those on the corresponding compilation toolchain. | 
 | # | 
 | # Toolchains of this type are only consumed internally by the bootclasspath rule and should not be | 
 | # accessed from Starlark. | 
 | toolchain_type(name = "bootstrap_runtime_toolchain_type") | 
 |  | 
 | # Aliases value of --plugins flag as a JavaPluginInfo | 
 | java_plugins_flag_alias( | 
 |     name = "java_plugins_flag_alias", | 
 | ) | 
 |  | 
 | alias( | 
 |     name = "genclass", | 
 |     actual = "@remote_java_tools//:GenClass", | 
 | ) | 
 |  | 
 | alias( | 
 |     name = "GenClass_deploy.jar", | 
 |     actual = "@remote_java_tools//:GenClass", | 
 | ) | 
 |  | 
 | alias( | 
 |     name = "turbine_direct", | 
 |     actual = "@remote_java_tools//:TurbineDirect", | 
 | ) | 
 |  | 
 | alias( | 
 |     name = "turbine_direct_binary_deploy.jar", | 
 |     actual = "@remote_java_tools//:TurbineDirect", | 
 | ) | 
 |  | 
 | alias( | 
 |     name = "javabuilder", | 
 |     actual = "@remote_java_tools//:JavaBuilder", | 
 | ) | 
 |  | 
 | alias( | 
 |     name = "JavaBuilder_deploy.jar", | 
 |     actual = "@remote_java_tools//:JavaBuilder", | 
 | ) | 
 |  | 
 | alias( | 
 |     name = "vanillajavabuilder", | 
 |     actual = "@remote_java_tools//:VanillaJavaBuilder", | 
 | ) | 
 |  | 
 | alias( | 
 |     name = "JacocoCoverageRunner", | 
 |     actual = "@remote_java_tools//:jacoco_coverage_runner", | 
 | ) | 
 |  | 
 | alias( | 
 |     name = "JacocoCoverage", | 
 |     actual = "@remote_java_tools//:jacoco_coverage_runner", | 
 | ) | 
 |  | 
 | java_import( | 
 |     name = "TestRunner", | 
 |     jars = ["@remote_java_tools//:Runner"], | 
 | ) | 
 |  | 
 | alias( | 
 |     name = "TestRunner_deploy.jar", | 
 |     actual = "@remote_java_tools//:Runner", | 
 | ) | 
 |  | 
 | alias( | 
 |     name = "proguard", | 
 |     actual = "@remote_java_tools//:proguard", | 
 | ) | 
 |  | 
 | alias( | 
 |     name = "jre", | 
 |     actual = "@local_jdk//:jre", | 
 | ) | 
 |  | 
 | alias( | 
 |     name = "jdk", | 
 |     actual = "@local_jdk//:jdk", | 
 | ) | 
 |  | 
 | alias( | 
 |     name = "host_jdk", | 
 |     actual = ":remote_jdk11", | 
 | ) | 
 |  | 
 | filegroup( | 
 |     name = "bzl_srcs", | 
 |     srcs = glob(["*.bzl"]) + ["@rules_java//toolchains:bzl_srcs"], | 
 |     visibility = ["//tools:__pkg__"], | 
 | ) | 
 |  | 
 | # TODO(cushon): Delete this alias in the fullness of time. | 
 | alias( | 
 |     name = "proguard_whitelister", | 
 |     actual = ":proguard_allowlister", | 
 | ) | 
 |  | 
 | py_binary( | 
 |     name = "proguard_allowlister", | 
 |     srcs = [ | 
 |         "proguard_allowlister.py", | 
 |     ], | 
 | ) | 
 |  | 
 | py_test( | 
 |     name = "proguard_allowlister_test", | 
 |     srcs = ["proguard_allowlister_test.py"], | 
 |     data = ["proguard_allowlister_test_input.pgcfg"], | 
 |     deps = [ | 
 |         ":proguard_allowlister", | 
 |     ], | 
 | ) | 
 |  | 
 | #### Aliases to rules_java to keep backward-compatibility (begin) #### | 
 |  | 
 | TARGET_NAMES = [ | 
 |     "java_runtime_alias", | 
 |     "current_host_java_runtime", | 
 |     "current_java_runtime", | 
 |     "current_java_toolchain", | 
 |     "jni", | 
 |     "jni_header", | 
 |     "jni_md_header-darwin", | 
 |     "jni_md_header-freebsd", | 
 |     "jni_md_header-linux", | 
 |     "jni_md_header-openbsd", | 
 |     "jni_md_header-windows", | 
 |     "platformclasspath", | 
 |     "remote_jdk11", | 
 |     "remotejdk_17", | 
 |     "remote_toolchain", | 
 |     "ijar", | 
 |     "singlejar", | 
 |     "toolchain", | 
 | ] + [ | 
 |     "toolchain_java%d" % version | 
 |     for version in (8, 9, 10, 11) | 
 | ] + [ | 
 |     "toolchain_java%d_definition" % version | 
 |     for version in (8, 9, 10, 11) | 
 | ] + [ | 
 |     "toolchain_jdk_%d" % version | 
 |     for version in (14, 15, 16, 17, 21) | 
 | ] + [ | 
 |      "toolchain_jdk_%d_definition" % version | 
 |      for version in (14, 15, 16, 17, 21) | 
 | ] | 
 |  | 
 | [ | 
 |     alias( | 
 |         name = name, | 
 |         actual = "@rules_java//toolchains:" + name, | 
 |     ) | 
 |     for name in TARGET_NAMES | 
 | ] | 
 |  | 
 | #### Aliases to rules_java to keep backward-compatibility (end) #### | 
 |  | 
 | # TODO(b/295221112): replace this with Starlark label_flag (or an alias resolving to either java_launcher or host_java_launcher flag) | 
 | launcher_flag_alias( | 
 |     name = "launcher_flag_alias", | 
 |     visibility = ["//visibility:public"], | 
 | ) |