From 20bc11faccba4687499dd995b1479ef4682e9af5 Mon Sep 17 00:00:00 2001 From: Googler Date: Mon, 2 Oct 2023 06:56:47 -0700 Subject: [PATCH] Decouple java_lite_proto_library from java_proto_library Remove call to java_proto_library_impl from java_proto_library. Remove hasattr from java_proto_library_impl, which handled java_lite_proto_library. Code reuse in this case made little sense, and it incurrent more maintenance cost than benefit. Issue: https://github.com/bazelbuild/rules_proto/issues/179 PiperOrigin-RevId: 570053518 Change-Id: Ie43cadfd1fc324b6aaad08acaca8eea7df1a3669 --- .../java/proto/java_lite_proto_library.bzl | 20 ++++++++++++------- .../common/java/proto/java_proto_library.bzl | 7 +++---- 2 files changed, 16 insertions(+), 11 deletions(-) diff --git a/src/main/starlark/builtins_bzl/common/java/proto/java_lite_proto_library.bzl b/src/main/starlark/builtins_bzl/common/java/proto/java_lite_proto_library.bzl index 145ae045965e68..f39c7b40d55fdb 100644 --- a/src/main/starlark/builtins_bzl/common/java/proto/java_lite_proto_library.bzl +++ b/src/main/starlark/builtins_bzl/common/java/proto/java_lite_proto_library.bzl @@ -14,12 +14,12 @@ """A Starlark implementation of the java_lite_proto_library rule.""" -load(":common/proto/proto_info.bzl", "ProtoInfo") +load(":common/java/java_common.bzl", "java_common") +load(":common/java/java_info.bzl", "JavaInfo", _merge_private_for_builtins = "merge") load(":common/java/java_semantics.bzl", "semantics") +load(":common/java/proto/java_proto_library.bzl", "JavaProtoAspectInfo", "java_compile_for_protos") load(":common/proto/proto_common.bzl", "ProtoLangToolchainInfo", proto_common = "proto_common_do_not_use") -load(":common/java/proto/java_proto_library.bzl", "JavaProtoAspectInfo", "bazel_java_proto_library_rule", "java_compile_for_protos") -load(":common/java/java_info.bzl", "JavaInfo") -load(":common/java/java_common.bzl", "java_common") +load(":common/proto/proto_info.bzl", "ProtoInfo") PROTO_TOOLCHAIN_ATTR = "_aspect_proto_toolchain_for_javalite" @@ -109,15 +109,21 @@ def _rule_impl(ctx): else: proguard_provider_specs = ProguardSpecProvider(depset()) - java_info, DefaultInfo, OutputGroupInfo = bazel_java_proto_library_rule(ctx) + java_info = _merge_private_for_builtins([dep[JavaInfo] for dep in ctx.attr.deps], merge_java_outputs = False) + + transitive_src_and_runtime_jars = depset(transitive = [dep[JavaProtoAspectInfo].jars for dep in ctx.attr.deps]) + transitive_runtime_jars = depset(transitive = [java_info.transitive_runtime_jars]) if hasattr(java_common, "add_constraints"): java_info = java_common.add_constraints(java_info, constraints = ["android"]) return [ java_info, - DefaultInfo, - OutputGroupInfo, + DefaultInfo( + files = transitive_src_and_runtime_jars, + runfiles = ctx.runfiles(transitive_files = transitive_runtime_jars), + ), + OutputGroupInfo(default = depset()), proguard_provider_specs, ] diff --git a/src/main/starlark/builtins_bzl/common/java/proto/java_proto_library.bzl b/src/main/starlark/builtins_bzl/common/java/proto/java_proto_library.bzl index e2118aabea0924..540ba886617a0f 100644 --- a/src/main/starlark/builtins_bzl/common/java/proto/java_proto_library.bzl +++ b/src/main/starlark/builtins_bzl/common/java/proto/java_proto_library.bzl @@ -151,10 +151,9 @@ def bazel_java_proto_library_rule(ctx): Returns: ([JavaInfo, DefaultInfo, OutputGroupInfo]) """ - if hasattr(ctx.attr, "_aspect_java_proto_toolchain"): - proto_toolchain = ctx.attr._aspect_java_proto_toolchain[ProtoLangToolchainInfo] - for dep in ctx.attr.deps: - proto_common.check_collocated(ctx.label, dep[ProtoInfo], proto_toolchain) + proto_toolchain = ctx.attr._aspect_java_proto_toolchain[ProtoLangToolchainInfo] + for dep in ctx.attr.deps: + proto_common.check_collocated(ctx.label, dep[ProtoInfo], proto_toolchain) java_info = _merge_private_for_builtins([dep[JavaInfo] for dep in ctx.attr.deps], merge_java_outputs = False) transitive_src_and_runtime_jars = depset(transitive = [dep[JavaProtoAspectInfo].jars for dep in ctx.attr.deps])