Rollforward of https://github.com/rules_java/bazel/commit/befbd4f6b4bb258c07eddf8009b2fcf93ca5e943: Restructure rules_java BEGIN_PUBLIC Restructure rules_java Design doc: https://docs.google.com/document/d/1L1JFgjpZ7SrBinb24DC_5nTIELeYDacikcme-YcA7xs/edit NEW: fixed bzl_libraries END_PUBLIC Automated rollback of commit ddaf86494a4699971c896f1b360354f8b33be48c. *** Reason for rollback *** rollforward *** Original change description *** Automated rollback of commit befbd4f6b4bb258c07eddf8009b2fcf93ca5e943. *** Reason for rollback *** postsubmit breakage: [] *** Original change description *** Restructure rules_java BEGIN_PUBLIC Restructure rules_java Design doc: https://docs.google.com/document/d/1L1JFgjpZ7SrBinb24DC_5nTIELeYDacikcme-YcA7xs/edit END_ *** PiperOrigin-RevId: 605710436 Change-Id: I4e5f2c3fe0343cf2c77dc532b97049f2686907a5
diff --git a/java/BUILD b/java/BUILD index dec049e..3a6043b 100644 --- a/java/BUILD +++ b/java/BUILD
@@ -7,8 +7,10 @@ filegroup( name = "srcs", srcs = glob(["**"]) + [ + "//java/modules:srcs", "//java/private:srcs", "//java/proto:srcs", + "//java/toolchains:srcs", ], visibility = ["//:__pkg__"], ) @@ -17,6 +19,25 @@ name = "rules", srcs = ["defs.bzl"], visibility = ["//visibility:public"], + deps = [ + ":core_rules", + "//java/modules", + "//java/proto:proto_rules", + "//java/toolchains:toolchain_rules", + ], +) + +bzl_library( + name = "core_rules", + srcs = [ + "java_binary.bzl", + "java_import.bzl", + "java_library.bzl", + "java_plugin.bzl", + "java_single_jar.bzl", + "java_test.bzl", + ], + visibility = ["//visibility:public"], deps = ["//java/private"], )
diff --git a/java/defs.bzl b/java/defs.bzl index 31cd01d..51a235b 100644 --- a/java/defs.bzl +++ b/java/defs.bzl
@@ -13,142 +13,43 @@ # limitations under the License. """Starlark rules for building Java projects.""" -load("//java/private:native.bzl", "NativeJavaInfo", "NativeJavaPluginInfo", "native_java_common") +load("//java:java_binary.bzl", _java_binary = "java_binary") +load("//java:java_import.bzl", _java_import = "java_import") +load("//java:java_library.bzl", _java_library = "java_library") +load("//java:java_plugin.bzl", _java_plugin = "java_plugin") +load("//java:java_test.bzl", _java_test = "java_test") +load("//java/modules:java_common.bzl", _java_common = "java_common") +load("//java/modules:java_info.bzl", _JavaInfo = "JavaInfo") +load("//java/modules:java_plugin_info.bzl", _JavaPluginInfo = "JavaPluginInfo") +load("//java/proto:java_lite_proto_library.bzl", _java_lite_proto_library = "java_lite_proto_library") +load("//java/proto:java_proto_library.bzl", _java_proto_library = "java_proto_library") +load("//java/toolchains:java_package_configuration.bzl", _java_package_configuration = "java_package_configuration") +load("//java/toolchains:java_runtime.bzl", _java_runtime = "java_runtime") +load("//java/toolchains:java_toolchain.bzl", _java_toolchain = "java_toolchain") -# Do not touch: This line marks the end of loads; needed for PR importing. - -_MIGRATION_TAG = "__JAVA_RULES_MIGRATION_DO_NOT_USE_WILL_BREAK__" version = "7.4.0" -def _add_tags(attrs): - if "tags" in attrs and attrs["tags"] != None: - attrs["tags"] = attrs["tags"] + [_MIGRATION_TAG] - else: - attrs["tags"] = [_MIGRATION_TAG] - return attrs +# Language rules -def java_binary(**attrs): - """Bazel java_binary rule. +java_binary = _java_binary +java_test = _java_test +java_library = _java_library +java_plugin = _java_plugin +java_import = _java_import - https://docs.bazel.build/versions/master/be/java.html#java_binary +# Toolchain rules - Args: - **attrs: Rule attributes - """ +java_runtime = _java_runtime +java_toolchain = _java_toolchain +java_package_configuration = _java_package_configuration - # buildifier: disable=native-java - native.java_binary(**_add_tags(attrs)) +# Proto rules -def java_import(**attrs): - """Bazel java_import rule. +java_proto_library = _java_proto_library +java_lite_proto_library = _java_lite_proto_library - https://docs.bazel.build/versions/master/be/java.html#java_import +# Modules and providers - Args: - **attrs: Rule attributes - """ - - # buildifier: disable=native-java - native.java_import(**_add_tags(attrs)) - -def java_library(**attrs): - """Bazel java_library rule. - - https://docs.bazel.build/versions/master/be/java.html#java_library - - Args: - **attrs: Rule attributes - """ - - # buildifier: disable=native-java - native.java_library(**_add_tags(attrs)) - -def java_lite_proto_library(**attrs): - """Bazel java_lite_proto_library rule. - - https://docs.bazel.build/versions/master/be/java.html#java_lite_proto_library - - Args: - **attrs: Rule attributes - """ - - # buildifier: disable=native-java - native.java_lite_proto_library(**_add_tags(attrs)) - -def java_proto_library(**attrs): - """Bazel java_proto_library rule. - - https://docs.bazel.build/versions/master/be/java.html#java_proto_library - - Args: - **attrs: Rule attributes - """ - - # buildifier: disable=native-java - native.java_proto_library(**_add_tags(attrs)) - -def java_test(**attrs): - """Bazel java_test rule. - - https://docs.bazel.build/versions/master/be/java.html#java_test - - Args: - **attrs: Rule attributes - """ - - # buildifier: disable=native-java - native.java_test(**_add_tags(attrs)) - -def java_package_configuration(**attrs): - """Bazel java_package_configuration rule. - - https://docs.bazel.build/versions/master/be/java.html#java_package_configuration - - Args: - **attrs: Rule attributes - """ - - # buildifier: disable=native-java - native.java_package_configuration(**_add_tags(attrs)) - -def java_plugin(**attrs): - """Bazel java_plugin rule. - - https://docs.bazel.build/versions/master/be/java.html#java_plugin - - Args: - **attrs: Rule attributes - """ - - # buildifier: disable=native-java - native.java_plugin(**_add_tags(attrs)) - -def java_runtime(**attrs): - """Bazel java_runtime rule. - - https://docs.bazel.build/versions/master/be/java.html#java_runtime - - Args: - **attrs: Rule attributes - """ - - # buildifier: disable=native-java - native.java_runtime(**_add_tags(attrs)) - -def java_toolchain(**attrs): - """Bazel java_toolchain rule. - - https://docs.bazel.build/versions/master/be/java.html#java_toolchain - - Args: - **attrs: Rule attributes - """ - - # buildifier: disable=native-java - native.java_toolchain(**_add_tags(attrs)) - -java_common = native_java_common - -JavaInfo = NativeJavaInfo - -JavaPluginInfo = NativeJavaPluginInfo +JavaInfo = _JavaInfo +JavaPluginInfo = _JavaPluginInfo +java_common = _java_common
diff --git a/java/java_binary.bzl b/java/java_binary.bzl new file mode 100644 index 0000000..18f5b86 --- /dev/null +++ b/java/java_binary.bzl
@@ -0,0 +1,30 @@ +# Copyright 2023 The Bazel Authors. All rights reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +"""java_binary rule""" + +load("//java/private:add_tags.bzl", "add_tags") + +# Do not touch: This line marks the end of loads; needed for PR importing. + +def java_binary(**attrs): + """Bazel java_binary rule. + + https://docs.bazel.build/versions/master/be/java.html#java_binary + + Args: + **attrs: Rule attributes + """ + + # buildifier: disable=native-java + native.java_binary(**add_tags(attrs))
diff --git a/java/java_import.bzl b/java/java_import.bzl new file mode 100644 index 0000000..dd23653 --- /dev/null +++ b/java/java_import.bzl
@@ -0,0 +1,28 @@ +# Copyright 2023 The Bazel Authors. All rights reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +"""java_import rule""" + +load("//java/private:add_tags.bzl", "add_tags") + +def java_import(**attrs): + """Bazel java_import rule. + + https://docs.bazel.build/versions/master/be/java.html#java_import + + Args: + **attrs: Rule attributes + """ + + # buildifier: disable=native-java + native.java_import(**add_tags(attrs))
diff --git a/java/java_library.bzl b/java/java_library.bzl new file mode 100644 index 0000000..3bc0a53 --- /dev/null +++ b/java/java_library.bzl
@@ -0,0 +1,30 @@ +# Copyright 2023 The Bazel Authors. All rights reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +"""java_library rule""" + +load("//java/private:add_tags.bzl", "add_tags") + +# Do not touch: This line marks the end of loads; needed for PR importing. + +def java_library(**attrs): + """Bazel java_library rule. + + https://docs.bazel.build/versions/master/be/java.html#java_library + + Args: + **attrs: Rule attributes + """ + + # buildifier: disable=native-java + native.java_library(**add_tags(attrs))
diff --git a/java/java_plugin.bzl b/java/java_plugin.bzl new file mode 100644 index 0000000..a95fc44 --- /dev/null +++ b/java/java_plugin.bzl
@@ -0,0 +1,28 @@ +# Copyright 2023 The Bazel Authors. All rights reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +"""java_plugin rule""" + +load("//java/private:add_tags.bzl", "add_tags") + +def java_plugin(**attrs): + """Bazel java_plugin rule. + + https://docs.bazel.build/versions/master/be/java.html#java_plugin + + Args: + **attrs: Rule attributes + """ + + # buildifier: disable=native-java + native.java_plugin(**add_tags(attrs))
diff --git a/java/java_test.bzl b/java/java_test.bzl new file mode 100644 index 0000000..76a63a1 --- /dev/null +++ b/java/java_test.bzl
@@ -0,0 +1,30 @@ +# Copyright 2023 The Bazel Authors. All rights reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +"""java_test rule""" + +load("//java/private:add_tags.bzl", "add_tags") + +# Do not touch: This line marks the end of loads; needed for PR importing. + +def java_test(**attrs): + """Bazel java_test rule. + + https://docs.bazel.build/versions/master/be/java.html#java_test + + Args: + **attrs: Rule attributes + """ + + # buildifier: disable=native-java + native.java_test(**add_tags(attrs))
diff --git a/java/modules/BUILD b/java/modules/BUILD new file mode 100644 index 0000000..d9ed6e6 --- /dev/null +++ b/java/modules/BUILD
@@ -0,0 +1,18 @@ +load("@bazel_skylib//:bzl_library.bzl", "bzl_library") + +package(default_visibility = ["//visibility:public"]) + +licenses(["notice"]) + +filegroup( + name = "srcs", + srcs = glob(["**"]), + visibility = ["//java:__pkg__"], +) + +bzl_library( + name = "modules", + srcs = glob(["*.bzl"]), + visibility = ["//visibility:public"], + deps = ["//java/private"], +)
diff --git a/java/modules/java_common.bzl b/java/modules/java_common.bzl new file mode 100644 index 0000000..201beba --- /dev/null +++ b/java/modules/java_common.bzl
@@ -0,0 +1,18 @@ +# Copyright 2023 The Bazel Authors. All rights reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +"""java_common module""" + +load("//java/private:native.bzl", "native_java_common") + +java_common = native_java_common
diff --git a/java/modules/java_info.bzl b/java/modules/java_info.bzl new file mode 100644 index 0000000..e22fb3d --- /dev/null +++ b/java/modules/java_info.bzl
@@ -0,0 +1,18 @@ +# Copyright 2023 The Bazel Authors. All rights reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +"""JavaInfo provider""" + +load("//java/private:native.bzl", "NativeJavaInfo") + +JavaInfo = NativeJavaInfo
diff --git a/java/modules/java_plugin_info.bzl b/java/modules/java_plugin_info.bzl new file mode 100644 index 0000000..36d84f9 --- /dev/null +++ b/java/modules/java_plugin_info.bzl
@@ -0,0 +1,18 @@ +# Copyright 2023 The Bazel Authors. All rights reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +"""JavaPluginInfo provider""" + +load("//java/private:native.bzl", "NativeJavaPluginInfo") + +JavaPluginInfo = NativeJavaPluginInfo
diff --git a/java/private/BUILD b/java/private/BUILD index 9f50995..444264d 100644 --- a/java/private/BUILD +++ b/java/private/BUILD
@@ -4,8 +4,11 @@ bzl_library( name = "private", - srcs = ["native.bzl"], - visibility = ["//java:__pkg__"], + srcs = [ + "add_tags.bzl", + "native.bzl", + ], + visibility = ["//java:__subpackages__"], ) filegroup(
diff --git a/java/private/add_tags.bzl b/java/private/add_tags.bzl new file mode 100644 index 0000000..6f2e35b --- /dev/null +++ b/java/private/add_tags.bzl
@@ -0,0 +1,23 @@ +# Copyright 2023 The Bazel Authors. All rights reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +"""add_tags migration helper""" + +_MIGRATION_TAG = "__JAVA_RULES_MIGRATION_DO_NOT_USE_WILL_BREAK__" + +def add_tags(attrs): + if "tags" in attrs and attrs["tags"] != None: + attrs["tags"] = attrs["tags"] + [_MIGRATION_TAG] + else: + attrs["tags"] = [_MIGRATION_TAG] + return attrs
diff --git a/java/proto/BUILD b/java/proto/BUILD index 209a5f5..5876189 100644 --- a/java/proto/BUILD +++ b/java/proto/BUILD
@@ -1,3 +1,5 @@ +load("@bazel_skylib//:bzl_library.bzl", "bzl_library") + package(default_visibility = ["//visibility:public"]) # Toolchain type provided by proto_lang_toolchain rule and used by java_proto_library @@ -6,6 +8,13 @@ # Toolchain type provided by proto_lang_toolchain rule and used by java_lite_proto_library toolchain_type(name = "lite_toolchain_type") +bzl_library( + name = "proto_rules", + srcs = glob(["*.bzl"]), + visibility = ["//visibility:public"], + deps = ["//java/private"], +) + filegroup( name = "srcs", srcs = glob(["**"]),
diff --git a/java/proto/java_lite_proto_library.bzl b/java/proto/java_lite_proto_library.bzl new file mode 100644 index 0000000..c800237 --- /dev/null +++ b/java/proto/java_lite_proto_library.bzl
@@ -0,0 +1,28 @@ +# Copyright 2023 The Bazel Authors. All rights reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +"""java_lite_proto_library rule""" + +load("//java/private:add_tags.bzl", "add_tags") + +def java_lite_proto_library(**attrs): + """Bazel java_lite_proto_library rule. + + https://docs.bazel.build/versions/master/be/java.html#java_lite_proto_library + + Args: + **attrs: Rule attributes + """ + + # buildifier: disable=native-java + native.java_lite_proto_library(**add_tags(attrs))
diff --git a/java/proto/java_proto_library.bzl b/java/proto/java_proto_library.bzl new file mode 100644 index 0000000..cb3d3f5 --- /dev/null +++ b/java/proto/java_proto_library.bzl
@@ -0,0 +1,28 @@ +# Copyright 2023 The Bazel Authors. All rights reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +"""java_proto_library rule""" + +load("//java/private:add_tags.bzl", "add_tags") + +def java_proto_library(**attrs): + """Bazel java_proto_library rule. + + https://docs.bazel.build/versions/master/be/java.html#java_proto_library + + Args: + **attrs: Rule attributes + """ + + # buildifier: disable=native-java + native.java_proto_library(**add_tags(attrs))
diff --git a/java/toolchains/BUILD b/java/toolchains/BUILD new file mode 100644 index 0000000..0cc6644 --- /dev/null +++ b/java/toolchains/BUILD
@@ -0,0 +1,18 @@ +load("@bazel_skylib//:bzl_library.bzl", "bzl_library") + +package(default_visibility = ["//visibility:public"]) + +licenses(["notice"]) + +filegroup( + name = "srcs", + srcs = glob(["**"]), + visibility = ["//java:__pkg__"], +) + +bzl_library( + name = "toolchain_rules", + srcs = glob(["*.bzl"]), + visibility = ["//visibility:public"], + deps = ["//java/private"], +)
diff --git a/java/toolchains/java_package_configuration.bzl b/java/toolchains/java_package_configuration.bzl new file mode 100644 index 0000000..b68b5fc --- /dev/null +++ b/java/toolchains/java_package_configuration.bzl
@@ -0,0 +1,28 @@ +# Copyright 2023 The Bazel Authors. All rights reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +"""java_package_configuration rule""" + +load("//java/private:add_tags.bzl", "add_tags") + +def java_package_configuration(**attrs): + """Bazel java_package_configuration rule. + + https://docs.bazel.build/versions/master/be/java.html#java_package_configuration + + Args: + **attrs: Rule attributes + """ + + # buildifier: disable=native-java + native.java_package_configuration(**add_tags(attrs))
diff --git a/java/toolchains/java_runtime.bzl b/java/toolchains/java_runtime.bzl new file mode 100644 index 0000000..0f2eb8b --- /dev/null +++ b/java/toolchains/java_runtime.bzl
@@ -0,0 +1,28 @@ +# Copyright 2023 The Bazel Authors. All rights reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +"""java_runtime rule""" + +load("//java/private:add_tags.bzl", "add_tags") + +def java_runtime(**attrs): + """Bazel java_runtime rule. + + https://docs.bazel.build/versions/master/be/java.html#java_runtime + + Args: + **attrs: Rule attributes + """ + + # buildifier: disable=native-java + native.java_runtime(**add_tags(attrs))
diff --git a/java/toolchains/java_toolchain.bzl b/java/toolchains/java_toolchain.bzl new file mode 100644 index 0000000..a5f1cda --- /dev/null +++ b/java/toolchains/java_toolchain.bzl
@@ -0,0 +1,28 @@ +# Copyright 2023 The Bazel Authors. All rights reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +"""java_toolchain rule""" + +load("//java/private:add_tags.bzl", "add_tags") + +def java_toolchain(**attrs): + """Bazel java_toolchain rule. + + https://docs.bazel.build/versions/master/be/java.html#java_toolchain + + Args: + **attrs: Rule attributes + """ + + # buildifier: disable=native-java + native.java_toolchain(**add_tags(attrs))