Use attained composability of java_library and java_plugin rule's to handle implementation differences.
No-op semantics calls are removed.
PiperOrigin-RevId: 424365686
diff --git a/src/main/starlark/builtins_bzl/bazel/exports.bzl b/src/main/starlark/builtins_bzl/bazel/exports.bzl
index 3d5df8f..88553bb 100644
--- a/src/main/starlark/builtins_bzl/bazel/exports.bzl
+++ b/src/main/starlark/builtins_bzl/bazel/exports.bzl
@@ -14,6 +14,12 @@
"""Exported builtins symbols that are specific to OSS Bazel."""
+load("@_builtins//:common/java/java_library.bzl", "java_library")
+load("@_builtins//:common/java/java_plugin.bzl", "java_plugin")
+
exported_toplevels = {}
-exported_rules = {}
+exported_rules = {
+ "+java_library": java_library,
+ "+java_plugin": java_plugin,
+}
exported_to_java = {}
diff --git a/src/main/starlark/builtins_bzl/common/exports.bzl b/src/main/starlark/builtins_bzl/common/exports.bzl
index 19d4a24..71d93c0 100644
--- a/src/main/starlark/builtins_bzl/common/exports.bzl
+++ b/src/main/starlark/builtins_bzl/common/exports.bzl
@@ -17,8 +17,6 @@
load("@_builtins//:common/cc/cc_import.bzl", "cc_import")
load("@_builtins//:common/cc/cc_binary.bzl", "cc_binary")
load("@_builtins//:common/cc/cc_test.bzl", "cc_test")
-load("@_builtins//:common/java/java_library_macro.bzl", "java_library")
-load("@_builtins//:common/java/java_plugin.bzl", "java_plugin")
load("@_builtins//:common/cc/experimental_cc_shared_library.bzl", "cc_shared_library", "cc_shared_library_permissions")
load("@_builtins//:common/objc/objc_import.bzl", "objc_import")
load("@_builtins//:common/objc/objc_library.bzl", "objc_library")
@@ -36,8 +34,6 @@
}
exported_rules = {
"+cc_import": cc_import,
- "+java_library": java_library,
- "+java_plugin": java_plugin,
"-java_lite_proto_library": java_lite_proto_library,
"objc_import": objc_import,
"objc_library": objc_library,
diff --git a/src/main/starlark/builtins_bzl/common/java/java_library.bzl b/src/main/starlark/builtins_bzl/common/java/java_library.bzl
index ec538a0..fc9a223 100644
--- a/src/main/starlark/builtins_bzl/common/java/java_library.bzl
+++ b/src/main/starlark/builtins_bzl/common/java/java_library.bzl
@@ -25,7 +25,7 @@
JavaPluginInfo = _builtins.toplevel.JavaPluginInfo
CcInfo = _builtins.toplevel.CcInfo
-def java_library_rule(
+def bazel_java_library_rule(
ctx,
srcs = [],
deps = [],
@@ -62,15 +62,10 @@
if not srcs and deps:
fail("deps not allowed without srcs; move to runtime_deps?")
- semantics.check_rule(ctx)
- semantics.check_dependency_rule_kinds(ctx, "java_library")
-
- extra_resources = semantics.preprocess(ctx)
-
base_info = JAVA_COMMON_DEP.call(
ctx,
srcs = srcs,
- resources = resources + extra_resources,
+ resources = resources,
plugins = plugins,
deps = deps,
runtime_deps = runtime_deps,
@@ -88,8 +83,6 @@
base_info.output_groups["_hidden_top_level_INTERNAL_"] = proguard_specs_provider.specs
base_info.extra_providers["ProguardSpecProvider"] = proguard_specs_provider
- java_info = semantics.postprocess(ctx, base_info)
-
default_info = construct_defaultinfo(
ctx,
base_info.files_to_build,
@@ -101,13 +94,13 @@
return dict({
"DefaultInfo": default_info,
- "JavaInfo": java_info,
+ "JavaInfo": base_info.java_info,
"InstrumentedFilesInfo": base_info.instrumented_files_info,
"OutputGroupInfo": OutputGroupInfo(**base_info.output_groups),
}, **base_info.extra_providers)
def _proxy(ctx):
- return java_library_rule(
+ return bazel_java_library_rule(
ctx,
srcs = ctx.files.srcs,
deps = ctx.attr.deps,
@@ -129,7 +122,7 @@
},
**semantics.EXTRA_ATTRIBUTES
),
- deps = [JAVA_COMMON_DEP, VALIDATE_PROGUARD_SPECS] + semantics.EXTRA_DEPS,
+ deps = [JAVA_COMMON_DEP, VALIDATE_PROGUARD_SPECS],
provides = [JavaInfo],
outputs = {
"classjar": "lib%{name}.jar",
diff --git a/src/main/starlark/builtins_bzl/common/java/java_library_macro.bzl b/src/main/starlark/builtins_bzl/common/java/java_library_macro.bzl
deleted file mode 100644
index 0251848..0000000
--- a/src/main/starlark/builtins_bzl/common/java/java_library_macro.bzl
+++ /dev/null
@@ -1,27 +0,0 @@
-# Copyright 2021 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.
-
-"""
-Definition of java_library macro (handles implicit outputs).
-"""
-
-load(":common/java/java_semantics.bzl", "semantics")
-load(":common/java/java_library.bzl", _java_library = "java_library")
-
-filegroup = _builtins.toplevel.native.filegroup
-
-def java_library(name, **kwargs):
- semantics.macro_preprocess(kwargs)
-
- _java_library(name = name, **kwargs)
diff --git a/src/main/starlark/builtins_bzl/common/java/java_plugin.bzl b/src/main/starlark/builtins_bzl/common/java/java_plugin.bzl
index 71b45a3..fb76975 100644
--- a/src/main/starlark/builtins_bzl/common/java/java_plugin.bzl
+++ b/src/main/starlark/builtins_bzl/common/java/java_plugin.bzl
@@ -23,7 +23,7 @@
JavaPluginInfo = _builtins.toplevel.JavaPluginInfo
-def java_plugin_rule(
+def bazel_java_plugin_rule(
ctx,
srcs = [],
data = [],
@@ -57,15 +57,10 @@
(list[provider]) A list containing DefaultInfo, JavaInfo,
InstrumentedFilesInfo, OutputGroupsInfo, ProguardSpecProvider providers.
"""
- semantics.check_rule(ctx)
- semantics.check_dependency_rule_kinds(ctx, "java_plugin")
-
- extra_resources = semantics.preprocess(ctx)
-
base_info = JAVA_COMMON_DEP.call(
ctx,
srcs = srcs,
- resources = resources + extra_resources,
+ resources = resources,
plugins = plugins,
deps = deps,
javacopts = javacopts,
@@ -100,7 +95,7 @@
}, **base_info.extra_providers)
def _proxy(ctx):
- return java_plugin_rule(
+ return bazel_java_plugin_rule(
ctx,
srcs = ctx.files.srcs,
data = ctx.files.data,
@@ -128,7 +123,7 @@
deps = [
JAVA_COMMON_DEP,
VALIDATE_PROGUARD_SPECS,
- ] + semantics.EXTRA_PLUGIN_DEPS,
+ ],
provides = [JavaPluginInfo],
outputs = {
"classjar": "lib%{name}.jar",
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 f93ca7d..108f6b7 100644
--- a/src/main/starlark/builtins_bzl/common/java/java_semantics.bzl
+++ b/src/main/starlark/builtins_bzl/common/java/java_semantics.bzl
@@ -20,18 +20,6 @@
JavaPluginInfo = _builtins.toplevel.JavaPluginInfo
JavaInfo = _builtins.toplevel.JavaInfo
-def _macro_preprocess(kwargs):
- pass
-
-def _check_rule(ctx):
- pass
-
-def _check_dependency_rule_kinds(ctx, rule_class = ""):
- pass
-
-def _preprocess(ctx):
- return []
-
def _postprocess(ctx, base_info):
return base_info.java_info
@@ -62,8 +50,6 @@
EXTRA_PLUGIN_ATTRIBUTES = {
"resource_strip_prefix": attr.string(),
},
- EXTRA_DEPS = [],
- EXTRA_PLUGIN_DEPS = [],
ALLOWED_RULES_IN_DEPS = [
"cc_binary", # NB: linkshared=1
"cc_library",
@@ -79,11 +65,6 @@
],
ALLOWED_RULES_IN_DEPS_WITH_WARNING = [],
LINT_PROGRESS_MESSAGE = "Running Android Lint for: %{label}",
- macro_preprocess = _macro_preprocess,
- check_rule = _check_rule,
- check_dependency_rule_kinds = _check_dependency_rule_kinds,
- preprocess = _preprocess,
- postprocess = _postprocess,
postprocess_plugin = _postprocess_plugin,
check_proto_registry_collision = _check_proto_registry_collision,
get_coverage_runner = _get_coverage_runner,