xref: /aosp_15_r20/external/bazelbuild-rules_java/java/extensions.bzl (revision abe8e1b943c923005d847f1e3cf6637de4ed1a1f)
1# Copyright 2021 The Bazel Authors. All rights reserved.
2#
3# Licensed under the Apache License, Version 2.0 (the "License");
4# you may not use this file except in compliance with the License.
5# You may obtain a copy of the License at
6#
7#    http://www.apache.org/licenses/LICENSE-2.0
8#
9# Unless required by applicable law or agreed to in writing, software
10# distributed under the License is distributed on an "AS IS" BASIS,
11# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12# See the License for the specific language governing permissions and
13# limitations under the License.
14"""Module extensions for rules_java."""
15
16load("@bazel_features//:features.bzl", "bazel_features")
17load(
18    "//java:repositories.bzl",
19    "java_tools_repos",
20    "local_jdk_repo",
21    "remote_jdk11_repos",
22    "remote_jdk17_repos",
23    "remote_jdk21_repos",
24    "remote_jdk8_repos",
25)
26
27def _toolchains_impl(module_ctx):
28    java_tools_repos()
29    local_jdk_repo()
30    remote_jdk8_repos()
31    remote_jdk11_repos()
32    remote_jdk17_repos()
33    remote_jdk21_repos()
34
35    if bazel_features.external_deps.extension_metadata_has_reproducible:
36        return module_ctx.extension_metadata(reproducible = True)
37    else:
38        return None
39
40toolchains = module_extension(_toolchains_impl)
41