diff --git a/MODULE.bazel b/MODULE.bazel index e5d955dc88..1de9779c14 100644 --- a/MODULE.bazel +++ b/MODULE.bazel @@ -35,6 +35,17 @@ go_deps.module( sum = "h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q=", version = "v1.3.2", ) + +# TODO Request addition to DEFAULT_BUILD_FILE_GENERATION_BY_PATH in https://github.com/bazelbuild/bazel-gazelle/tree/master/internal/bzlmod/default_gazelle_overrides.bzl +# go_deps.gazelle_override( +# path = "google.golang.org/grpc", +# build_file_generation = "on", +# ) +# go_deps.module_override( +# path = "google.golang.org/grpc", +# patches = ["//third_party:com_github_golang_protobuf-gazelle.patch"], +# patch_strip = 1, +# ) use_repo( go_deps, "com_github_gogo_protobuf", diff --git a/go/private/context.bzl b/go/private/context.bzl index 83a6f556e6..c024db2cc6 100644 --- a/go/private/context.bzl +++ b/go/private/context.bzl @@ -36,6 +36,7 @@ load( "GoContextInfo", "GoLibrary", "GoSource", + "GoProtoInfo", "GoStdLib", "INFERRED_PATH", "get_source", @@ -231,6 +232,8 @@ def _dedup_deps(deps): for dep in deps: if hasattr(dep, "data") and hasattr(dep.data, "importpath"): importpath = dep.data.importpath + elif GoProtoInfo in dep: + importpath = dep[GoProtoInfo].library.importpath else: importpath = dep[GoLibrary].importpath if importpath in importpaths: @@ -321,6 +324,8 @@ def _collect_cc_infos(deps, cdeps): # dep may be a struct, which doesn't support indexing by providers. if is_struct(dep): continue + if GoProtoInfo in dep: + cc_infos.append(dep[GoProtoInfo].source.cc_info) if GoSource in dep: cc_infos.append(dep[GoSource].cc_info) return cc_common.merge_cc_infos(cc_infos = cc_infos) diff --git a/go/private/providers.bzl b/go/private/providers.bzl index 16a106aa86..6f0a31094f 100644 --- a/go/private/providers.bzl +++ b/go/private/providers.bzl @@ -34,6 +34,15 @@ GoArchiveData = provider() # See go/providers.rst#GoArchive for full documentation. GoArchive = provider() +GoProtoInfo = provider( + doc = "Info generated by the go_proto_library aspect.", + fields = { + "library": "Generated GoLibrary", + "source": "Generated GoSource", + "archive": "Generated GoArchive", + }, +) + GoPath = provider() GoSDK = provider( @@ -76,11 +85,15 @@ EXPORT_PATH = "export" def get_source(dep): if type(dep) == "struct": return dep + if GoProtoInfo in dep: + return dep[GoProtoInfo].source return dep[GoSource] def get_archive(dep): if type(dep) == "struct": return dep + if GoProtoInfo in dep: + return dep[GoProtoInfo].archive return dep[GoArchive] def effective_importpath_pkgpath(lib): diff --git a/go/private/repositories.bzl b/go/private/repositories.bzl index e52b882a18..dad64210cd 100644 --- a/go/private/repositories.bzl +++ b/go/private/repositories.bzl @@ -173,9 +173,25 @@ def go_rules_dependencies(force = False): patch_args = ["-p1"], ) + # releaser:upgrade-dep grpc grpc-go + wrapper( + http_archive, + name = "org_golang_google_grpc", + # v1.59.0, latest as of 2023-11-24 + urls = [ + "https://mirror.bazel.build/github.com/grpc/grpc-go/archive/refs/tags/v1.59.0.zip", + "https://github.com/grpc/grpc-go/archive/refs/tags/v1.59.0.zip", + ], + sha256 = "70b184f6deb7beb99e91777a5ec062b1c37de5d6310864e214b0ec54f7c4728f", + strip_prefix = "grpc-go-1.59.0", + patches = [ + # releaser:patch-cmd gazelle -repo_root . -go_prefix google.golang.org/grpc -go_naming_convention import_alias -proto disable_global + Label("//third_party:org_golang_google_grpc-gazelle.patch"), + ], + patch_args = ["-p1"], + ) + # Legacy protobuf compiler, runtime, and utilities. - # We still use protoc-gen-go because the new one doesn't support gRPC, and - # the gRPC compiler doesn't exist yet. # We need to apply a patch to enable both go_proto_library and # go_library with pre-generated sources. # releaser:upgrade-dep golang protobuf diff --git a/proto/BUILD.bazel b/proto/BUILD.bazel index 908fa41841..fe1905da5c 100644 --- a/proto/BUILD.bazel +++ b/proto/BUILD.bazel @@ -23,13 +23,16 @@ go_proto_compiler( go_proto_compiler( name = "go_proto", + plugin = "@org_golang_google_protobuf//cmd/protoc-gen-go", visibility = ["//visibility:public"], deps = PROTO_RUNTIME_DEPS + WELL_KNOWN_TYPES_APIV2, ) go_proto_compiler( name = "go_grpc", - options = ["plugins=grpc"], + options = ["require_unimplemented_servers=false"], + plugin = "@org_golang_google_grpc//cmd/protoc-gen-go-grpc", + suffix = "_grpc.pb.go", visibility = ["//visibility:public"], deps = PROTO_RUNTIME_DEPS + WELL_KNOWN_TYPES_APIV2 + [ "@org_golang_google_grpc//:go_default_library", diff --git a/proto/def.bzl b/proto/def.bzl index 93ce850915..7325e79da6 100644 --- a/proto/def.bzl +++ b/proto/def.bzl @@ -183,9 +183,24 @@ go_proto_library = rule( # go_proto_library is a rule that takes a proto_library (in the proto # attribute) and produces a go library for it. -def go_grpc_library(**kwargs): - # TODO: Deprecate once gazelle generates just go_proto_library - go_proto_library(compilers = [Label("//proto:go_grpc")], **kwargs) +def go_grpc_library(name, importpath = None, **kwargs): + # Importpath needs to be the same for embed to work correctly. + # This is roughly equivalent to _infer_importpath() from rules_go/go/private/context.bzl + if not importpath: + importpath = "%s/%s" % (native.package_name(), name) + + go_proto_library( + name = name + "_proto", + importpath = importpath, + **kwargs + ) + go_proto_library( + name = name, + compilers = [Label("//proto:go_grpc")], + embed = [":" + name + "_proto"], + importpath = importpath, + **kwargs + ) def proto_register_toolchains(): print("You no longer need to call proto_register_toolchains(), it does nothing") diff --git a/proto/def_v2.bzl b/proto/def_v2.bzl new file mode 100644 index 0000000000..4604cddc11 --- /dev/null +++ b/proto/def_v2.bzl @@ -0,0 +1,185 @@ +# Copyright 2017 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. + +load( + "//go:def.bzl", + "GoArchive", + "GoLibrary", + "GoSource", + "go_context", +) +load( + "//proto:compiler.bzl", + "GoProtoCompiler", + "proto_path", +) +load( + "//go/private:common.bzl", + "GO_TOOLCHAIN", +) +load( + "@rules_proto//proto:defs.bzl", + "ProtoInfo", +) +load( + "//go/private:providers.bzl", + "GoProtoInfo", +) + +GoProtoImports = provider() + +def get_imports(target, attr, importpath): + direct = dict() + for src in target[ProtoInfo].check_deps_sources.to_list(): + direct["{}={}".format(proto_path(src, target[ProtoInfo]), importpath)] = True + + transitive = [ + dep[GoProtoImports].imports + for dep in getattr(attr, "deps", []) + if GoProtoImports in dep + ] + return depset(direct = direct.keys(), transitive = transitive) + +def _library_to_source(_go, attr, source, merge): + compiler = attr._compiler + if GoSource in compiler: + merge(source, compiler[GoSource]) + +def _compile_proto(ctx, target, attr): + go = go_context(ctx) + go_srcs = [] + proto_info = target[ProtoInfo] + imports = get_imports(target, attr, go.importpath) + compiler = ctx.attr._compiler[GoProtoCompiler] + if proto_info.direct_sources: + go_srcs.extend(compiler.compile( + go, + compiler = compiler, + protos = [proto_info], + imports = imports, + importpath = go.importpath, + )) + + go_deps = getattr(attr, "deps", []) + library = go.new_library( + go, + resolver = _library_to_source, + srcs = go_srcs, + deps = go_deps + compiler.deps, + ) + source = go.library_to_source(go, ctx.attr, library, False) + archive = go.archive(go, source) + return { + "imports": GoProtoImports( + imports = imports, + ), + "info": GoProtoInfo( + library = library, + source = source, + archive = archive, + ), + } + +def _go_proto_aspect_impl(target, ctx): + providers = _compile_proto(ctx, target, ctx.rule.attr) + + return [ + providers["imports"], + providers["info"], + ] + +_go_proto_aspect = aspect( + _go_proto_aspect_impl, + attrs = { + "_compiler": attr.label( + default = "//proto:go_proto", + ), + "_go_context_data": attr.label( + default = "//:go_context_data", + ), + }, + attr_aspects = [ + "deps", + ], + required_providers = [ProtoInfo], + provides = [GoProtoImports, GoProtoInfo], + toolchains = [GO_TOOLCHAIN], +) + +def _go_proto_library_impl(ctx): + if len(ctx.attr.protos) != 1: + fail("'protos' attribute must contain exactly one element. Got %s." % len(ctx.attr.protos)) + proto = ctx.attr.protos[0] + + return [ + proto[GoProtoImports], + proto[GoProtoInfo].library, + proto[GoProtoInfo].source, + proto[GoProtoInfo].archive, + ] + +go_proto_library = rule( + implementation = _go_proto_library_impl, + attrs = { + "protos": attr.label_list( + providers = [ProtoInfo], + aspects = [_go_proto_aspect], + mandatory = True, + ), + }, + provides = [ + GoProtoImports, # This is used by go_grpc_library to determine importpaths for proto deps + GoLibrary, + GoSource, + GoArchive, + ], +) + +def _go_grpc_library_impl(ctx): + if len(ctx.attr.protos) != 1: + fail("protos attribute must be exactly one target") + + providers = _compile_proto(ctx, ctx.attr.protos[0], ctx.attr) + + return [ + providers["info"].library, + providers["info"].source, + providers["info"].archive, + ] + +go_grpc_library = rule( + implementation = _go_grpc_library_impl, + attrs = { + "protos": attr.label_list( + providers = [ProtoInfo], + mandatory = True, + ), + "deps": attr.label_list( + providers = [GoLibrary], + ), + "importpath": attr.string(), + "_compiler": attr.label( + default = "//proto:go_grpc", + ), + "_go_context_data": attr.label( + default = "//:go_context_data", + ), + }, + provides = [ + GoLibrary, + GoSource, + GoArchive, + ], + toolchains = [GO_TOOLCHAIN], +) diff --git a/proto/wkt/well_known_types.bzl b/proto/wkt/well_known_types.bzl index 649c6fbaf3..b2739ffdd3 100644 --- a/proto/wkt/well_known_types.bzl +++ b/proto/wkt/well_known_types.bzl @@ -45,6 +45,7 @@ PROTO_RUNTIME_DEPS = [ "@com_github_golang_protobuf//proto:go_default_library", "@org_golang_google_protobuf//proto:go_default_library", "@org_golang_google_protobuf//reflect/protoreflect:go_default_library", + "@org_golang_google_protobuf//reflect/protoregistry:go_default_library", "@org_golang_google_protobuf//runtime/protoiface:go_default_library", "@org_golang_google_protobuf//runtime/protoimpl:go_default_library", ] diff --git a/tests/integration/googleapis/BUILD.bazel b/tests/integration/googleapis/BUILD.bazel index 4c062ad47f..70e0094f61 100644 --- a/tests/integration/googleapis/BUILD.bazel +++ b/tests/integration/googleapis/BUILD.bazel @@ -1,5 +1,5 @@ load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test") -load("@io_bazel_rules_go//proto:def.bzl", "go_proto_library") +load("@io_bazel_rules_go//proto:def.bzl", "go_grpc_library") load("@rules_proto//proto:defs.bzl", "proto_library") proto_library( @@ -11,9 +11,8 @@ proto_library( ], ) -go_proto_library( +go_grpc_library( name = "color_service_go_proto", - compilers = ["@io_bazel_rules_go//proto:go_grpc"], importpath = "github.com/bazelbuild/rules_go/tests/integration/googleapis/color_service_proto", proto = ":color_service_proto", deps = [ diff --git a/third_party/org_golang_google_grpc-gazelle.patch b/third_party/org_golang_google_grpc-gazelle.patch new file mode 100644 index 0000000000..f1b2baa75b --- /dev/null +++ b/third_party/org_golang_google_grpc-gazelle.patch @@ -0,0 +1,9863 @@ +diff -urN a/admin/BUILD.bazel b/admin/BUILD.bazel +--- a/admin/BUILD.bazel 1970-01-01 00:00:00.000000000 +0000 ++++ b/admin/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000 +@@ -0,0 +1,28 @@ ++load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test") ++ ++go_library( ++ name = "admin", ++ srcs = ["admin.go"], ++ importpath = "google.golang.org/grpc/admin", ++ visibility = ["//visibility:public"], ++ deps = [ ++ "//:grpc", ++ "//channelz/service", ++ "//internal/admin", ++ ], ++) ++ ++alias( ++ name = "go_default_library", ++ actual = ":admin", ++ visibility = ["//visibility:public"], ++) ++ ++go_test( ++ name = "admin_test", ++ srcs = ["admin_test.go"], ++ deps = [ ++ "//admin/test", ++ "//codes", ++ ], ++) +diff -urN a/admin/test/BUILD.bazel b/admin/test/BUILD.bazel +--- a/admin/test/BUILD.bazel 1970-01-01 00:00:00.000000000 +0000 ++++ b/admin/test/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000 +@@ -0,0 +1,35 @@ ++load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test") ++ ++go_library( ++ name = "test", ++ srcs = ["utils.go"], ++ importpath = "google.golang.org/grpc/admin/test", ++ visibility = ["//visibility:public"], ++ deps = [ ++ "//:grpc", ++ "//admin", ++ "//channelz/grpc_channelz_v1", ++ "//codes", ++ "//credentials/insecure", ++ "//internal/testutils/xds/bootstrap", ++ "//status", ++ "@com_github_envoyproxy_go_control_plane//envoy/service/status/v3:go_default_library", ++ "@com_github_google_uuid//:go_default_library", ++ ], ++) ++ ++alias( ++ name = "go_default_library", ++ actual = ":test", ++ visibility = ["//visibility:public"], ++) ++ ++go_test( ++ name = "test_test", ++ srcs = ["admin_test.go"], ++ deps = [ ++ ":test", ++ "//codes", ++ "//xds", ++ ], ++) +diff -urN a/attributes/BUILD.bazel b/attributes/BUILD.bazel +--- a/attributes/BUILD.bazel 1970-01-01 00:00:00.000000000 +0000 ++++ b/attributes/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000 +@@ -0,0 +1,20 @@ ++load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test") ++ ++go_library( ++ name = "attributes", ++ srcs = ["attributes.go"], ++ importpath = "google.golang.org/grpc/attributes", ++ visibility = ["//visibility:public"], ++) ++ ++alias( ++ name = "go_default_library", ++ actual = ":attributes", ++ visibility = ["//visibility:public"], ++) ++ ++go_test( ++ name = "attributes_test", ++ srcs = ["attributes_test.go"], ++ deps = [":attributes"], ++) +diff -urN a/authz/audit/BUILD.bazel b/authz/audit/BUILD.bazel +--- a/authz/audit/BUILD.bazel 1970-01-01 00:00:00.000000000 +0000 ++++ b/authz/audit/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000 +@@ -0,0 +1,33 @@ ++load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test") ++ ++go_library( ++ name = "audit", ++ srcs = ["audit_logger.go"], ++ importpath = "google.golang.org/grpc/authz/audit", ++ visibility = ["//visibility:public"], ++) ++ ++alias( ++ name = "go_default_library", ++ actual = ":audit", ++ visibility = ["//visibility:public"], ++) ++ ++go_test( ++ name = "audit_test", ++ srcs = ["audit_logging_test.go"], ++ deps = [ ++ ":audit", ++ "//:grpc", ++ "//authz", ++ "//authz/audit/stdout", ++ "//codes", ++ "//credentials", ++ "//internal/grpctest", ++ "//internal/stubserver", ++ "//interop/grpc_testing", ++ "//status", ++ "//testdata", ++ "@com_github_google_go_cmp//cmp:go_default_library", ++ ], ++) +diff -urN a/authz/audit/stdout/BUILD.bazel b/authz/audit/stdout/BUILD.bazel +--- a/authz/audit/stdout/BUILD.bazel 1970-01-01 00:00:00.000000000 +0000 ++++ b/authz/audit/stdout/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000 +@@ -0,0 +1,29 @@ ++load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test") ++ ++go_library( ++ name = "stdout", ++ srcs = ["stdout_logger.go"], ++ importpath = "google.golang.org/grpc/authz/audit/stdout", ++ visibility = ["//visibility:public"], ++ deps = [ ++ "//authz/audit", ++ "//grpclog", ++ ], ++) ++ ++alias( ++ name = "go_default_library", ++ actual = ":stdout", ++ visibility = ["//visibility:public"], ++) ++ ++go_test( ++ name = "stdout_test", ++ srcs = ["stdout_logger_test.go"], ++ embed = [":stdout"], ++ deps = [ ++ "//authz/audit", ++ "//internal/grpctest", ++ "@com_github_google_go_cmp//cmp:go_default_library", ++ ], ++) +diff -urN a/authz/BUILD.bazel b/authz/BUILD.bazel +--- a/authz/BUILD.bazel 1970-01-01 00:00:00.000000000 +0000 ++++ b/authz/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000 +@@ -0,0 +1,61 @@ ++load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test") ++ ++go_library( ++ name = "authz", ++ srcs = [ ++ "grpc_authz_server_interceptors.go", ++ "rbac_translator.go", ++ ], ++ importpath = "google.golang.org/grpc/authz", ++ visibility = ["//visibility:public"], ++ deps = [ ++ "//:grpc", ++ "//codes", ++ "//grpclog", ++ "//internal/xds/rbac", ++ "//status", ++ "@com_github_cncf_xds_go//udpa/type/v1:go_default_library", ++ "@com_github_envoyproxy_go_control_plane//envoy/config/core/v3:go_default_library", ++ "@com_github_envoyproxy_go_control_plane//envoy/config/rbac/v3:go_default_library", ++ "@com_github_envoyproxy_go_control_plane//envoy/config/route/v3:go_default_library", ++ "@com_github_envoyproxy_go_control_plane//envoy/type/matcher/v3:go_default_library", ++ "@org_golang_google_protobuf//types/known/anypb:go_default_library", ++ "@org_golang_google_protobuf//types/known/structpb:go_default_library", ++ ], ++) ++ ++alias( ++ name = "go_default_library", ++ actual = ":authz", ++ visibility = ["//visibility:public"], ++) ++ ++go_test( ++ name = "authz_test", ++ srcs = [ ++ "grpc_authz_end2end_test.go", ++ "grpc_authz_server_interceptors_test.go", ++ "rbac_translator_test.go", ++ ], ++ embed = [":authz"], ++ deps = [ ++ "//:grpc", ++ "//codes", ++ "//credentials", ++ "//credentials/insecure", ++ "//internal/grpctest", ++ "//interop/grpc_testing", ++ "//metadata", ++ "//status", ++ "//testdata", ++ "@com_github_cncf_xds_go//udpa/type/v1:go_default_library", ++ "@com_github_envoyproxy_go_control_plane//envoy/config/core/v3:go_default_library", ++ "@com_github_envoyproxy_go_control_plane//envoy/config/rbac/v3:go_default_library", ++ "@com_github_envoyproxy_go_control_plane//envoy/config/route/v3:go_default_library", ++ "@com_github_envoyproxy_go_control_plane//envoy/type/matcher/v3:go_default_library", ++ "@com_github_google_go_cmp//cmp:go_default_library", ++ "@org_golang_google_protobuf//testing/protocmp:go_default_library", ++ "@org_golang_google_protobuf//types/known/anypb:go_default_library", ++ "@org_golang_google_protobuf//types/known/structpb:go_default_library", ++ ], ++) +diff -urN a/backoff/BUILD.bazel b/backoff/BUILD.bazel +--- a/backoff/BUILD.bazel 1970-01-01 00:00:00.000000000 +0000 ++++ b/backoff/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000 +@@ -0,0 +1,14 @@ ++load("@io_bazel_rules_go//go:def.bzl", "go_library") ++ ++go_library( ++ name = "backoff", ++ srcs = ["backoff.go"], ++ importpath = "google.golang.org/grpc/backoff", ++ visibility = ["//visibility:public"], ++) ++ ++alias( ++ name = "go_default_library", ++ actual = ":backoff", ++ visibility = ["//visibility:public"], ++) +diff -urN a/balancer/base/BUILD.bazel b/balancer/base/BUILD.bazel +--- a/balancer/base/BUILD.bazel 1970-01-01 00:00:00.000000000 +0000 ++++ b/balancer/base/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000 +@@ -0,0 +1,35 @@ ++load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test") ++ ++go_library( ++ name = "base", ++ srcs = [ ++ "balancer.go", ++ "base.go", ++ ], ++ importpath = "google.golang.org/grpc/balancer/base", ++ visibility = ["//visibility:public"], ++ deps = [ ++ "//balancer", ++ "//connectivity", ++ "//grpclog", ++ "//resolver", ++ ], ++) ++ ++alias( ++ name = "go_default_library", ++ actual = ":base", ++ visibility = ["//visibility:public"], ++) ++ ++go_test( ++ name = "base_test", ++ srcs = ["balancer_test.go"], ++ embed = [":base"], ++ deps = [ ++ "//attributes", ++ "//balancer", ++ "//connectivity", ++ "//resolver", ++ ], ++) +diff -urN a/balancer/BUILD.bazel b/balancer/BUILD.bazel +--- a/balancer/BUILD.bazel 1970-01-01 00:00:00.000000000 +0000 ++++ b/balancer/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000 +@@ -0,0 +1,37 @@ ++load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test") ++ ++go_library( ++ name = "balancer", ++ srcs = [ ++ "balancer.go", ++ "conn_state_evaluator.go", ++ ], ++ importpath = "google.golang.org/grpc/balancer", ++ visibility = ["//visibility:public"], ++ deps = [ ++ "//channelz", ++ "//connectivity", ++ "//credentials", ++ "//grpclog", ++ "//internal", ++ "//metadata", ++ "//resolver", ++ "//serviceconfig", ++ ], ++) ++ ++alias( ++ name = "go_default_library", ++ actual = ":balancer", ++ visibility = ["//visibility:public"], ++) ++ ++go_test( ++ name = "balancer_test", ++ srcs = ["conn_state_evaluator_test.go"], ++ embed = [":balancer"], ++ deps = [ ++ "//connectivity", ++ "//internal/grpctest", ++ ], ++) +diff -urN a/balancer/grpclb/BUILD.bazel b/balancer/grpclb/BUILD.bazel +--- a/balancer/grpclb/BUILD.bazel 1970-01-01 00:00:00.000000000 +0000 ++++ b/balancer/grpclb/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000 +@@ -0,0 +1,82 @@ ++load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test") ++ ++go_library( ++ name = "grpclb", ++ srcs = [ ++ "grpclb.go", ++ "grpclb_config.go", ++ "grpclb_picker.go", ++ "grpclb_remote_balancer.go", ++ "grpclb_util.go", ++ ], ++ importpath = "google.golang.org/grpc/balancer/grpclb", ++ visibility = ["//visibility:public"], ++ deps = [ ++ "//:grpc", ++ "//balancer", ++ "//balancer/base", ++ "//balancer/grpclb/grpc_lb_v1", ++ "//balancer/grpclb/state", ++ "//balancer/roundrobin", ++ "//codes", ++ "//connectivity", ++ "//credentials", ++ "//credentials/insecure", ++ "//grpclog", ++ "//internal", ++ "//internal/backoff", ++ "//internal/grpclog", ++ "//internal/grpcrand", ++ "//internal/metadata", ++ "//internal/pretty", ++ "//internal/resolver/dns", ++ "//keepalive", ++ "//metadata", ++ "//resolver", ++ "//resolver/manual", ++ "//serviceconfig", ++ "//status", ++ "@com_github_golang_protobuf//proto:go_default_library", ++ "@com_github_golang_protobuf//ptypes/duration:go_default_library", ++ "@com_github_golang_protobuf//ptypes/timestamp:go_default_library", ++ ], ++) ++ ++alias( ++ name = "go_default_library", ++ actual = ":grpclb", ++ visibility = ["//visibility:public"], ++) ++ ++go_test( ++ name = "grpclb_test", ++ srcs = [ ++ "grpclb_config_test.go", ++ "grpclb_test.go", ++ "grpclb_util_test.go", ++ ], ++ embed = [":grpclb"], ++ deps = [ ++ "//:grpc", ++ "//balancer", ++ "//balancer/grpclb/grpc_lb_v1", ++ "//balancer/grpclb/state", ++ "//codes", ++ "//credentials", ++ "//internal", ++ "//internal/grpctest", ++ "//internal/testutils", ++ "//internal/testutils/pickfirst", ++ "//internal/testutils/roundrobin", ++ "//interop/grpc_testing", ++ "//metadata", ++ "//peer", ++ "//resolver", ++ "//resolver/manual", ++ "//serviceconfig", ++ "//status", ++ "@com_github_golang_protobuf//ptypes/duration:go_default_library", ++ "@com_github_google_go_cmp//cmp:go_default_library", ++ "@com_github_google_go_cmp//cmp/cmpopts:go_default_library", ++ ], ++) +diff -urN a/balancer/grpclb/grpc_lb_v1/BUILD.bazel b/balancer/grpclb/grpc_lb_v1/BUILD.bazel +--- a/balancer/grpclb/grpc_lb_v1/BUILD.bazel 1970-01-01 00:00:00.000000000 +0000 ++++ b/balancer/grpclb/grpc_lb_v1/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000 +@@ -0,0 +1,26 @@ ++load("@io_bazel_rules_go//go:def.bzl", "go_library") ++ ++go_library( ++ name = "grpc_lb_v1", ++ srcs = [ ++ "load_balancer.pb.go", ++ "load_balancer_grpc.pb.go", ++ ], ++ importpath = "google.golang.org/grpc/balancer/grpclb/grpc_lb_v1", ++ visibility = ["//visibility:public"], ++ deps = [ ++ "//:grpc", ++ "//codes", ++ "//status", ++ "@org_golang_google_protobuf//reflect/protoreflect:go_default_library", ++ "@org_golang_google_protobuf//runtime/protoimpl:go_default_library", ++ "@org_golang_google_protobuf//types/known/durationpb:go_default_library", ++ "@org_golang_google_protobuf//types/known/timestamppb:go_default_library", ++ ], ++) ++ ++alias( ++ name = "go_default_library", ++ actual = ":grpc_lb_v1", ++ visibility = ["//visibility:public"], ++) +diff -urN a/balancer/grpclb/state/BUILD.bazel b/balancer/grpclb/state/BUILD.bazel +--- a/balancer/grpclb/state/BUILD.bazel 1970-01-01 00:00:00.000000000 +0000 ++++ b/balancer/grpclb/state/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000 +@@ -0,0 +1,15 @@ ++load("@io_bazel_rules_go//go:def.bzl", "go_library") ++ ++go_library( ++ name = "state", ++ srcs = ["state.go"], ++ importpath = "google.golang.org/grpc/balancer/grpclb/state", ++ visibility = ["//visibility:public"], ++ deps = ["//resolver"], ++) ++ ++alias( ++ name = "go_default_library", ++ actual = ":state", ++ visibility = ["//visibility:public"], ++) +diff -urN a/balancer/leastrequest/BUILD.bazel b/balancer/leastrequest/BUILD.bazel +--- a/balancer/leastrequest/BUILD.bazel 1970-01-01 00:00:00.000000000 +0000 ++++ b/balancer/leastrequest/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000 +@@ -0,0 +1,40 @@ ++load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test") ++ ++go_library( ++ name = "leastrequest", ++ srcs = ["leastrequest.go"], ++ importpath = "google.golang.org/grpc/balancer/leastrequest", ++ visibility = ["//visibility:public"], ++ deps = [ ++ "//balancer", ++ "//balancer/base", ++ "//grpclog", ++ "//internal/grpcrand", ++ "//serviceconfig", ++ ], ++) ++ ++alias( ++ name = "go_default_library", ++ actual = ":leastrequest", ++ visibility = ["//visibility:public"], ++) ++ ++go_test( ++ name = "leastrequest_test", ++ srcs = ["balancer_test.go"], ++ embed = [":leastrequest"], ++ deps = [ ++ "//:grpc", ++ "//credentials/insecure", ++ "//internal", ++ "//internal/grpctest", ++ "//internal/stubserver", ++ "//interop/grpc_testing", ++ "//peer", ++ "//resolver", ++ "//resolver/manual", ++ "//serviceconfig", ++ "@com_github_google_go_cmp//cmp:go_default_library", ++ ], ++) +diff -urN a/balancer/rls/BUILD.bazel b/balancer/rls/BUILD.bazel +--- a/balancer/rls/BUILD.bazel 1970-01-01 00:00:00.000000000 +0000 ++++ b/balancer/rls/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000 +@@ -0,0 +1,92 @@ ++load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test") ++ ++go_library( ++ name = "rls", ++ srcs = [ ++ "balancer.go", ++ "cache.go", ++ "child_policy.go", ++ "config.go", ++ "control_channel.go", ++ "picker.go", ++ ], ++ importpath = "google.golang.org/grpc/balancer/rls", ++ visibility = ["//visibility:public"], ++ deps = [ ++ "//:grpc", ++ "//balancer", ++ "//balancer/base", ++ "//balancer/rls/internal/adaptive", ++ "//balancer/rls/internal/keys", ++ "//codes", ++ "//connectivity", ++ "//credentials/insecure", ++ "//grpclog", ++ "//internal", ++ "//internal/backoff", ++ "//internal/balancergroup", ++ "//internal/buffer", ++ "//internal/grpclog", ++ "//internal/grpcsync", ++ "//internal/pretty", ++ "//internal/proto/grpc_lookup_v1", ++ "//metadata", ++ "//resolver", ++ "//serviceconfig", ++ "//status", ++ "@com_github_golang_protobuf//ptypes:go_default_library", ++ "@com_github_golang_protobuf//ptypes/duration:go_default_library", ++ "@org_golang_google_protobuf//encoding/protojson:go_default_library", ++ ], ++) ++ ++alias( ++ name = "go_default_library", ++ actual = ":rls", ++ visibility = ["//visibility:public"], ++) ++ ++go_test( ++ name = "rls_test", ++ srcs = [ ++ "balancer_test.go", ++ "cache_test.go", ++ "config_test.go", ++ "control_channel_test.go", ++ "helpers_test.go", ++ "picker_test.go", ++ ], ++ embed = [":rls"], ++ deps = [ ++ "//:grpc", ++ "//balancer", ++ "//balancer/grpclb", ++ "//balancer/rls/internal/test/e2e", ++ "//codes", ++ "//connectivity", ++ "//credentials", ++ "//credentials/insecure", ++ "//internal", ++ "//internal/backoff", ++ "//internal/balancer/stub", ++ "//internal/grpcsync", ++ "//internal/grpctest", ++ "//internal/proto/grpc_lookup_v1", ++ "//internal/resolver/passthrough", ++ "//internal/serviceconfig", ++ "//internal/stubserver", ++ "//internal/testutils", ++ "//internal/testutils/rls", ++ "//interop/grpc_testing", ++ "//metadata", ++ "//resolver", ++ "//resolver/manual", ++ "//serviceconfig", ++ "//status", ++ "//testdata", ++ "@com_github_google_go_cmp//cmp:go_default_library", ++ "@com_github_google_go_cmp//cmp/cmpopts:go_default_library", ++ "@org_golang_google_protobuf//proto:go_default_library", ++ "@org_golang_google_protobuf//types/known/durationpb:go_default_library", ++ ], ++) +diff -urN a/balancer/rls/internal/adaptive/BUILD.bazel b/balancer/rls/internal/adaptive/BUILD.bazel +--- a/balancer/rls/internal/adaptive/BUILD.bazel 1970-01-01 00:00:00.000000000 +0000 ++++ b/balancer/rls/internal/adaptive/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000 +@@ -0,0 +1,27 @@ ++load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test") ++ ++go_library( ++ name = "adaptive", ++ srcs = [ ++ "adaptive.go", ++ "lookback.go", ++ ], ++ importpath = "google.golang.org/grpc/balancer/rls/internal/adaptive", ++ visibility = ["//balancer/rls:__subpackages__"], ++ deps = ["//internal/grpcrand"], ++) ++ ++alias( ++ name = "go_default_library", ++ actual = ":adaptive", ++ visibility = ["//balancer/rls:__subpackages__"], ++) ++ ++go_test( ++ name = "adaptive_test", ++ srcs = [ ++ "adaptive_test.go", ++ "lookback_test.go", ++ ], ++ embed = [":adaptive"], ++) +diff -urN a/balancer/rls/internal/keys/BUILD.bazel b/balancer/rls/internal/keys/BUILD.bazel +--- a/balancer/rls/internal/keys/BUILD.bazel 1970-01-01 00:00:00.000000000 +0000 ++++ b/balancer/rls/internal/keys/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000 +@@ -0,0 +1,29 @@ ++load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test") ++ ++go_library( ++ name = "keys", ++ srcs = ["builder.go"], ++ importpath = "google.golang.org/grpc/balancer/rls/internal/keys", ++ visibility = ["//balancer/rls:__subpackages__"], ++ deps = [ ++ "//internal/proto/grpc_lookup_v1", ++ "//metadata", ++ ], ++) ++ ++alias( ++ name = "go_default_library", ++ actual = ":keys", ++ visibility = ["//balancer/rls:__subpackages__"], ++) ++ ++go_test( ++ name = "keys_test", ++ srcs = ["builder_test.go"], ++ embed = [":keys"], ++ deps = [ ++ "//internal/proto/grpc_lookup_v1", ++ "//metadata", ++ "@com_github_google_go_cmp//cmp:go_default_library", ++ ], ++) +diff -urN a/balancer/rls/internal/test/e2e/BUILD.bazel b/balancer/rls/internal/test/e2e/BUILD.bazel +--- a/balancer/rls/internal/test/e2e/BUILD.bazel 1970-01-01 00:00:00.000000000 +0000 ++++ b/balancer/rls/internal/test/e2e/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000 +@@ -0,0 +1,28 @@ ++load("@io_bazel_rules_go//go:def.bzl", "go_library") ++ ++go_library( ++ name = "e2e", ++ srcs = [ ++ "e2e.go", ++ "rls_child_policy.go", ++ "rls_lb_config.go", ++ ], ++ importpath = "google.golang.org/grpc/balancer/rls/internal/test/e2e", ++ visibility = ["//balancer/rls:__subpackages__"], ++ deps = [ ++ "//:grpc", ++ "//balancer", ++ "//internal/grpcsync", ++ "//internal/proto/grpc_lookup_v1", ++ "//internal/serviceconfig", ++ "//resolver", ++ "//serviceconfig", ++ "@org_golang_google_protobuf//encoding/protojson:go_default_library", ++ ], ++) ++ ++alias( ++ name = "go_default_library", ++ actual = ":e2e", ++ visibility = ["//balancer/rls:__subpackages__"], ++) +diff -urN a/balancer/roundrobin/BUILD.bazel b/balancer/roundrobin/BUILD.bazel +--- a/balancer/roundrobin/BUILD.bazel 1970-01-01 00:00:00.000000000 +0000 ++++ b/balancer/roundrobin/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000 +@@ -0,0 +1,20 @@ ++load("@io_bazel_rules_go//go:def.bzl", "go_library") ++ ++go_library( ++ name = "roundrobin", ++ srcs = ["roundrobin.go"], ++ importpath = "google.golang.org/grpc/balancer/roundrobin", ++ visibility = ["//visibility:public"], ++ deps = [ ++ "//balancer", ++ "//balancer/base", ++ "//grpclog", ++ "//internal/grpcrand", ++ ], ++) ++ ++alias( ++ name = "go_default_library", ++ actual = ":roundrobin", ++ visibility = ["//visibility:public"], ++) +diff -urN a/balancer/weightedroundrobin/BUILD.bazel b/balancer/weightedroundrobin/BUILD.bazel +--- a/balancer/weightedroundrobin/BUILD.bazel 1970-01-01 00:00:00.000000000 +0000 ++++ b/balancer/weightedroundrobin/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000 +@@ -0,0 +1,57 @@ ++load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test") ++ ++go_library( ++ name = "weightedroundrobin", ++ srcs = [ ++ "balancer.go", ++ "config.go", ++ "logging.go", ++ "scheduler.go", ++ "weightedroundrobin.go", ++ ], ++ importpath = "google.golang.org/grpc/balancer/weightedroundrobin", ++ visibility = ["//visibility:public"], ++ deps = [ ++ "//balancer", ++ "//balancer/base", ++ "//balancer/weightedroundrobin/internal", ++ "//connectivity", ++ "//grpclog", ++ "//internal/grpclog", ++ "//internal/grpcrand", ++ "//internal/serviceconfig", ++ "//orca", ++ "//resolver", ++ "//serviceconfig", ++ "@com_github_cncf_xds_go//xds/data/orca/v3:go_default_library", ++ ], ++) ++ ++alias( ++ name = "go_default_library", ++ actual = ":weightedroundrobin", ++ visibility = ["//visibility:public"], ++) ++ ++go_test( ++ name = "weightedroundrobin_test", ++ srcs = [ ++ "balancer_test.go", ++ "weightedroundrobin_test.go", ++ ], ++ embed = [":weightedroundrobin"], ++ deps = [ ++ "//:grpc", ++ "//attributes", ++ "//balancer/weightedroundrobin/internal", ++ "//internal", ++ "//internal/grpctest", ++ "//internal/stubserver", ++ "//internal/testutils/roundrobin", ++ "//interop/grpc_testing", ++ "//orca", ++ "//peer", ++ "//resolver", ++ "@com_github_google_go_cmp//cmp:go_default_library", ++ ], ++) +diff -urN a/balancer/weightedroundrobin/internal/BUILD.bazel b/balancer/weightedroundrobin/internal/BUILD.bazel +--- a/balancer/weightedroundrobin/internal/BUILD.bazel 1970-01-01 00:00:00.000000000 +0000 ++++ b/balancer/weightedroundrobin/internal/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000 +@@ -0,0 +1,14 @@ ++load("@io_bazel_rules_go//go:def.bzl", "go_library") ++ ++go_library( ++ name = "internal", ++ srcs = ["internal.go"], ++ importpath = "google.golang.org/grpc/balancer/weightedroundrobin/internal", ++ visibility = ["//balancer/weightedroundrobin:__subpackages__"], ++) ++ ++alias( ++ name = "go_default_library", ++ actual = ":internal", ++ visibility = ["//balancer/weightedroundrobin:__subpackages__"], ++) +diff -urN a/balancer/weightedtarget/BUILD.bazel b/balancer/weightedtarget/BUILD.bazel +--- a/balancer/weightedtarget/BUILD.bazel 1970-01-01 00:00:00.000000000 +0000 ++++ b/balancer/weightedtarget/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000 +@@ -0,0 +1,55 @@ ++load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test") ++ ++go_library( ++ name = "weightedtarget", ++ srcs = [ ++ "logging.go", ++ "weightedtarget.go", ++ "weightedtarget_config.go", ++ ], ++ importpath = "google.golang.org/grpc/balancer/weightedtarget", ++ visibility = ["//visibility:public"], ++ deps = [ ++ "//balancer", ++ "//balancer/weightedtarget/weightedaggregator", ++ "//grpclog", ++ "//internal/balancergroup", ++ "//internal/grpclog", ++ "//internal/hierarchy", ++ "//internal/pretty", ++ "//internal/serviceconfig", ++ "//internal/wrr", ++ "//resolver", ++ "//serviceconfig", ++ ], ++) ++ ++alias( ++ name = "go_default_library", ++ actual = ":weightedtarget", ++ visibility = ["//visibility:public"], ++) ++ ++go_test( ++ name = "weightedtarget_test", ++ srcs = [ ++ "weightedtarget_config_test.go", ++ "weightedtarget_test.go", ++ ], ++ embed = [":weightedtarget"], ++ deps = [ ++ "//attributes", ++ "//balancer", ++ "//balancer/grpclb", ++ "//balancer/roundrobin", ++ "//connectivity", ++ "//internal/balancer/stub", ++ "//internal/grpctest", ++ "//internal/hierarchy", ++ "//internal/serviceconfig", ++ "//internal/testutils", ++ "//resolver", ++ "//serviceconfig", ++ "@com_github_google_go_cmp//cmp:go_default_library", ++ ], ++) +diff -urN a/balancer/weightedtarget/weightedaggregator/BUILD.bazel b/balancer/weightedtarget/weightedaggregator/BUILD.bazel +--- a/balancer/weightedtarget/weightedaggregator/BUILD.bazel 1970-01-01 00:00:00.000000000 +0000 ++++ b/balancer/weightedtarget/weightedaggregator/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000 +@@ -0,0 +1,21 @@ ++load("@io_bazel_rules_go//go:def.bzl", "go_library") ++ ++go_library( ++ name = "weightedaggregator", ++ srcs = ["aggregator.go"], ++ importpath = "google.golang.org/grpc/balancer/weightedtarget/weightedaggregator", ++ visibility = ["//visibility:public"], ++ deps = [ ++ "//balancer", ++ "//balancer/base", ++ "//connectivity", ++ "//internal/grpclog", ++ "//internal/wrr", ++ ], ++) ++ ++alias( ++ name = "go_default_library", ++ actual = ":weightedaggregator", ++ visibility = ["//visibility:public"], ++) +diff -urN a/benchmark/benchmain/BUILD.bazel b/benchmark/benchmain/BUILD.bazel +--- a/benchmark/benchmain/BUILD.bazel 1970-01-01 00:00:00.000000000 +0000 ++++ b/benchmark/benchmain/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000 +@@ -0,0 +1,28 @@ ++load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library") ++ ++go_library( ++ name = "benchmain_lib", ++ srcs = ["main.go"], ++ importpath = "google.golang.org/grpc/benchmark/benchmain", ++ visibility = ["//visibility:private"], ++ deps = [ ++ "//:grpc", ++ "//benchmark", ++ "//benchmark/flags", ++ "//benchmark/latency", ++ "//benchmark/stats", ++ "//credentials/insecure", ++ "//grpclog", ++ "//internal/channelz", ++ "//interop/grpc_testing", ++ "//keepalive", ++ "//metadata", ++ "//test/bufconn", ++ ], ++) ++ ++go_binary( ++ name = "benchmain", ++ embed = [":benchmain_lib"], ++ visibility = ["//visibility:public"], ++) +diff -urN a/benchmark/benchresult/BUILD.bazel b/benchmark/benchresult/BUILD.bazel +--- a/benchmark/benchresult/BUILD.bazel 1970-01-01 00:00:00.000000000 +0000 ++++ b/benchmark/benchresult/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000 +@@ -0,0 +1,15 @@ ++load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library") ++ ++go_library( ++ name = "benchresult_lib", ++ srcs = ["main.go"], ++ importpath = "google.golang.org/grpc/benchmark/benchresult", ++ visibility = ["//visibility:private"], ++ deps = ["//benchmark/stats"], ++) ++ ++go_binary( ++ name = "benchresult", ++ embed = [":benchresult_lib"], ++ visibility = ["//visibility:public"], ++) +diff -urN a/benchmark/BUILD.bazel b/benchmark/BUILD.bazel +--- a/benchmark/BUILD.bazel 1970-01-01 00:00:00.000000000 +0000 ++++ b/benchmark/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000 +@@ -0,0 +1,22 @@ ++load("@io_bazel_rules_go//go:def.bzl", "go_library") ++ ++go_library( ++ name = "benchmark", ++ srcs = ["benchmark.go"], ++ importpath = "google.golang.org/grpc/benchmark", ++ visibility = ["//visibility:public"], ++ deps = [ ++ "//:grpc", ++ "//codes", ++ "//grpclog", ++ "//interop/grpc_testing", ++ "//metadata", ++ "//status", ++ ], ++) ++ ++alias( ++ name = "go_default_library", ++ actual = ":benchmark", ++ visibility = ["//visibility:public"], ++) +diff -urN a/benchmark/client/BUILD.bazel b/benchmark/client/BUILD.bazel +--- a/benchmark/client/BUILD.bazel 1970-01-01 00:00:00.000000000 +0000 ++++ b/benchmark/client/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000 +@@ -0,0 +1,23 @@ ++load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library") ++ ++go_library( ++ name = "client_lib", ++ srcs = ["main.go"], ++ importpath = "google.golang.org/grpc/benchmark/client", ++ visibility = ["//visibility:private"], ++ deps = [ ++ "//:grpc", ++ "//benchmark", ++ "//benchmark/stats", ++ "//credentials/insecure", ++ "//grpclog", ++ "//internal/syscall", ++ "//interop/grpc_testing", ++ ], ++) ++ ++go_binary( ++ name = "client", ++ embed = [":client_lib"], ++ visibility = ["//visibility:public"], ++) +diff -urN a/benchmark/flags/BUILD.bazel b/benchmark/flags/BUILD.bazel +--- a/benchmark/flags/BUILD.bazel 1970-01-01 00:00:00.000000000 +0000 ++++ b/benchmark/flags/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000 +@@ -0,0 +1,21 @@ ++load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test") ++ ++go_library( ++ name = "flags", ++ srcs = ["flags.go"], ++ importpath = "google.golang.org/grpc/benchmark/flags", ++ visibility = ["//visibility:public"], ++) ++ ++alias( ++ name = "go_default_library", ++ actual = ":flags", ++ visibility = ["//visibility:public"], ++) ++ ++go_test( ++ name = "flags_test", ++ srcs = ["flags_test.go"], ++ embed = [":flags"], ++ deps = ["//internal/grpctest"], ++) +diff -urN a/benchmark/latency/BUILD.bazel b/benchmark/latency/BUILD.bazel +--- a/benchmark/latency/BUILD.bazel 1970-01-01 00:00:00.000000000 +0000 ++++ b/benchmark/latency/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000 +@@ -0,0 +1,21 @@ ++load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test") ++ ++go_library( ++ name = "latency", ++ srcs = ["latency.go"], ++ importpath = "google.golang.org/grpc/benchmark/latency", ++ visibility = ["//visibility:public"], ++) ++ ++alias( ++ name = "go_default_library", ++ actual = ":latency", ++ visibility = ["//visibility:public"], ++) ++ ++go_test( ++ name = "latency_test", ++ srcs = ["latency_test.go"], ++ embed = [":latency"], ++ deps = ["//internal/grpctest"], ++) +diff -urN a/benchmark/primitives/BUILD.bazel b/benchmark/primitives/BUILD.bazel +--- a/benchmark/primitives/BUILD.bazel 1970-01-01 00:00:00.000000000 +0000 ++++ b/benchmark/primitives/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000 +@@ -0,0 +1,13 @@ ++load("@io_bazel_rules_go//go:def.bzl", "go_test") ++ ++go_test( ++ name = "primitives_test", ++ srcs = [ ++ "code_string_test.go", ++ "context_test.go", ++ "primitives_test.go", ++ "safe_config_selector_test.go", ++ "syncmap_test.go", ++ ], ++ deps = ["//codes"], ++) +diff -urN a/benchmark/server/BUILD.bazel b/benchmark/server/BUILD.bazel +--- a/benchmark/server/BUILD.bazel 1970-01-01 00:00:00.000000000 +0000 ++++ b/benchmark/server/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000 +@@ -0,0 +1,20 @@ ++load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library") ++ ++go_library( ++ name = "server_lib", ++ srcs = ["main.go"], ++ importpath = "google.golang.org/grpc/benchmark/server", ++ visibility = ["//visibility:private"], ++ deps = [ ++ "//:grpc", ++ "//benchmark", ++ "//grpclog", ++ "//internal/syscall", ++ ], ++) ++ ++go_binary( ++ name = "server", ++ embed = [":server_lib"], ++ visibility = ["//visibility:public"], ++) +diff -urN a/benchmark/stats/BUILD.bazel b/benchmark/stats/BUILD.bazel +--- a/benchmark/stats/BUILD.bazel 1970-01-01 00:00:00.000000000 +0000 ++++ b/benchmark/stats/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000 +@@ -0,0 +1,19 @@ ++load("@io_bazel_rules_go//go:def.bzl", "go_library") ++ ++go_library( ++ name = "stats", ++ srcs = [ ++ "curve.go", ++ "histogram.go", ++ "stats.go", ++ ], ++ importpath = "google.golang.org/grpc/benchmark/stats", ++ visibility = ["//visibility:public"], ++ deps = ["//:grpc"], ++) ++ ++alias( ++ name = "go_default_library", ++ actual = ":stats", ++ visibility = ["//visibility:public"], ++) +diff -urN a/benchmark/worker/BUILD.bazel b/benchmark/worker/BUILD.bazel +--- a/benchmark/worker/BUILD.bazel 1970-01-01 00:00:00.000000000 +0000 ++++ b/benchmark/worker/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000 +@@ -0,0 +1,33 @@ ++load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library") ++ ++go_library( ++ name = "worker_lib", ++ srcs = [ ++ "benchmark_client.go", ++ "benchmark_server.go", ++ "main.go", ++ ], ++ importpath = "google.golang.org/grpc/benchmark/worker", ++ visibility = ["//visibility:private"], ++ deps = [ ++ "//:grpc", ++ "//benchmark", ++ "//benchmark/stats", ++ "//codes", ++ "//credentials", ++ "//credentials/insecure", ++ "//grpclog", ++ "//internal/grpcrand", ++ "//internal/syscall", ++ "//interop/grpc_testing", ++ "//status", ++ "//testdata", ++ "//xds", ++ ], ++) ++ ++go_binary( ++ name = "worker", ++ embed = [":worker_lib"], ++ visibility = ["//visibility:public"], ++) +diff -urN a/binarylog/BUILD.bazel b/binarylog/BUILD.bazel +--- a/binarylog/BUILD.bazel 1970-01-01 00:00:00.000000000 +0000 ++++ b/binarylog/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000 +@@ -0,0 +1,38 @@ ++load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test") ++ ++go_library( ++ name = "binarylog", ++ srcs = ["sink.go"], ++ importpath = "google.golang.org/grpc/binarylog", ++ visibility = ["//visibility:public"], ++ deps = [ ++ "//binarylog/grpc_binarylog_v1", ++ "//internal/binarylog", ++ ], ++) ++ ++alias( ++ name = "go_default_library", ++ actual = ":binarylog", ++ visibility = ["//visibility:public"], ++) ++ ++go_test( ++ name = "binarylog_test", ++ srcs = ["binarylog_end2end_test.go"], ++ deps = [ ++ ":binarylog", ++ "//:grpc", ++ "//binarylog/grpc_binarylog_v1", ++ "//codes", ++ "//credentials/insecure", ++ "//grpclog", ++ "//internal/binarylog", ++ "//internal/grpctest", ++ "//internal/stubserver", ++ "//interop/grpc_testing", ++ "//metadata", ++ "//status", ++ "@com_github_golang_protobuf//proto:go_default_library", ++ ], ++) +diff -urN a/binarylog/grpc_binarylog_v1/BUILD.bazel b/binarylog/grpc_binarylog_v1/BUILD.bazel +--- a/binarylog/grpc_binarylog_v1/BUILD.bazel 1970-01-01 00:00:00.000000000 +0000 ++++ b/binarylog/grpc_binarylog_v1/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000 +@@ -0,0 +1,20 @@ ++load("@io_bazel_rules_go//go:def.bzl", "go_library") ++ ++go_library( ++ name = "grpc_binarylog_v1", ++ srcs = ["binarylog.pb.go"], ++ importpath = "google.golang.org/grpc/binarylog/grpc_binarylog_v1", ++ visibility = ["//visibility:public"], ++ deps = [ ++ "@org_golang_google_protobuf//reflect/protoreflect:go_default_library", ++ "@org_golang_google_protobuf//runtime/protoimpl:go_default_library", ++ "@org_golang_google_protobuf//types/known/durationpb:go_default_library", ++ "@org_golang_google_protobuf//types/known/timestamppb:go_default_library", ++ ], ++) ++ ++alias( ++ name = "go_default_library", ++ actual = ":grpc_binarylog_v1", ++ visibility = ["//visibility:public"], ++) +diff -urN a/BUILD.bazel b/BUILD.bazel +--- a/BUILD.bazel 1970-01-01 00:00:00.000000000 +0000 ++++ b/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000 +@@ -0,0 +1,131 @@ ++load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test") ++ ++go_library( ++ name = "grpc", ++ srcs = [ ++ "backoff.go", ++ "balancer_conn_wrappers.go", ++ "call.go", ++ "clientconn.go", ++ "codec.go", ++ "dialoptions.go", ++ "doc.go", ++ "interceptor.go", ++ "picker_wrapper.go", ++ "pickfirst.go", ++ "preloader.go", ++ "resolver_conn_wrapper.go", ++ "rpc_util.go", ++ "server.go", ++ "service_config.go", ++ "shared_buffer_pool.go", ++ "stream.go", ++ "trace.go", ++ "version.go", ++ ], ++ importpath = "google.golang.org/grpc", ++ visibility = ["//visibility:public"], ++ deps = [ ++ "//backoff", ++ "//balancer", ++ "//balancer/base", ++ "//balancer/roundrobin", ++ "//channelz", ++ "//codes", ++ "//connectivity", ++ "//credentials", ++ "//credentials/insecure", ++ "//encoding", ++ "//encoding/proto", ++ "//grpclog", ++ "//internal", ++ "//internal/backoff", ++ "//internal/balancer/gracefulswitch", ++ "//internal/balancerload", ++ "//internal/binarylog", ++ "//internal/channelz", ++ "//internal/envconfig", ++ "//internal/grpclog", ++ "//internal/grpcrand", ++ "//internal/grpcsync", ++ "//internal/grpcutil", ++ "//internal/idle", ++ "//internal/metadata", ++ "//internal/pretty", ++ "//internal/resolver", ++ "//internal/resolver/dns", ++ "//internal/resolver/passthrough", ++ "//internal/resolver/unix", ++ "//internal/serviceconfig", ++ "//internal/status", ++ "//internal/transport", ++ "//keepalive", ++ "//metadata", ++ "//peer", ++ "//resolver", ++ "//serviceconfig", ++ "//stats", ++ "//status", ++ "//tap", ++ "@org_golang_x_net//trace:go_default_library", ++ ], ++) ++ ++alias( ++ name = "go_default_library", ++ actual = ":grpc", ++ visibility = ["//visibility:public"], ++) ++ ++go_test( ++ name = "grpc_test", ++ srcs = [ ++ "balancer_conn_wrappers_test.go", ++ "clientconn_authority_test.go", ++ "clientconn_parsed_target_test.go", ++ "clientconn_test.go", ++ "codec_test.go", ++ "default_dial_option_server_option_test.go", ++ "grpc_test.go", ++ "picker_wrapper_test.go", ++ "resolver_test.go", ++ "rpc_util_test.go", ++ "server_ext_test.go", ++ "server_test.go", ++ "service_config_test.go", ++ "shared_buffer_pool_test.go", ++ "stream_test.go", ++ "trace_test.go", ++ ], ++ embed = [":grpc"], ++ deps = [ ++ "//attributes", ++ "//backoff", ++ "//balancer", ++ "//codes", ++ "//connectivity", ++ "//credentials", ++ "//credentials/insecure", ++ "//encoding", ++ "//encoding/proto", ++ "//internal", ++ "//internal/backoff", ++ "//internal/balancer/stub", ++ "//internal/grpcsync", ++ "//internal/grpctest", ++ "//internal/stubserver", ++ "//internal/testutils", ++ "//internal/transport", ++ "//interop/grpc_testing", ++ "//keepalive", ++ "//resolver", ++ "//resolver/manual", ++ "//serviceconfig", ++ "//status", ++ "//test/codec_perf", ++ "//testdata", ++ "@com_github_golang_protobuf//proto:go_default_library", ++ "@com_github_google_go_cmp//cmp:go_default_library", ++ "@org_golang_x_net//http2:go_default_library", ++ ], ++) +diff -urN a/channelz/BUILD.bazel b/channelz/BUILD.bazel +--- a/channelz/BUILD.bazel 1970-01-01 00:00:00.000000000 +0000 ++++ b/channelz/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000 +@@ -0,0 +1,15 @@ ++load("@io_bazel_rules_go//go:def.bzl", "go_library") ++ ++go_library( ++ name = "channelz", ++ srcs = ["channelz.go"], ++ importpath = "google.golang.org/grpc/channelz", ++ visibility = ["//visibility:public"], ++ deps = ["//internal/channelz"], ++) ++ ++alias( ++ name = "go_default_library", ++ actual = ":channelz", ++ visibility = ["//visibility:public"], ++) +diff -urN a/channelz/grpc_channelz_v1/BUILD.bazel b/channelz/grpc_channelz_v1/BUILD.bazel +--- a/channelz/grpc_channelz_v1/BUILD.bazel 1970-01-01 00:00:00.000000000 +0000 ++++ b/channelz/grpc_channelz_v1/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000 +@@ -0,0 +1,28 @@ ++load("@io_bazel_rules_go//go:def.bzl", "go_library") ++ ++go_library( ++ name = "grpc_channelz_v1", ++ srcs = [ ++ "channelz.pb.go", ++ "channelz_grpc.pb.go", ++ ], ++ importpath = "google.golang.org/grpc/channelz/grpc_channelz_v1", ++ visibility = ["//visibility:public"], ++ deps = [ ++ "//:grpc", ++ "//codes", ++ "//status", ++ "@org_golang_google_protobuf//reflect/protoreflect:go_default_library", ++ "@org_golang_google_protobuf//runtime/protoimpl:go_default_library", ++ "@org_golang_google_protobuf//types/known/anypb:go_default_library", ++ "@org_golang_google_protobuf//types/known/durationpb:go_default_library", ++ "@org_golang_google_protobuf//types/known/timestamppb:go_default_library", ++ "@org_golang_google_protobuf//types/known/wrapperspb:go_default_library", ++ ], ++) ++ ++alias( ++ name = "go_default_library", ++ actual = ":grpc_channelz_v1", ++ visibility = ["//visibility:public"], ++) +diff -urN a/channelz/service/BUILD.bazel b/channelz/service/BUILD.bazel +--- a/channelz/service/BUILD.bazel 1970-01-01 00:00:00.000000000 +0000 ++++ b/channelz/service/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000 +@@ -0,0 +1,80 @@ ++load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test") ++ ++go_library( ++ name = "service", ++ srcs = [ ++ "func_linux.go", ++ "func_nonlinux.go", ++ "service.go", ++ ], ++ importpath = "google.golang.org/grpc/channelz/service", ++ visibility = ["//visibility:public"], ++ deps = [ ++ "//:grpc", ++ "//channelz/grpc_channelz_v1", ++ "//codes", ++ "//connectivity", ++ "//credentials", ++ "//grpclog", ++ "//internal/channelz", ++ "//status", ++ "@com_github_golang_protobuf//ptypes:go_default_library", ++ "@com_github_golang_protobuf//ptypes/wrappers:go_default_library", ++ "@org_golang_google_protobuf//protoadapt:go_default_library", ++ "@org_golang_google_protobuf//types/known/anypb:go_default_library", ++ ] + select({ ++ "@io_bazel_rules_go//go/platform:android": [ ++ "@com_github_golang_protobuf//ptypes/duration:go_default_library", ++ ], ++ "@io_bazel_rules_go//go/platform:linux": [ ++ "@com_github_golang_protobuf//ptypes/duration:go_default_library", ++ ], ++ "//conditions:default": [], ++ }), ++) ++ ++alias( ++ name = "go_default_library", ++ actual = ":service", ++ visibility = ["//visibility:public"], ++) ++ ++go_test( ++ name = "service_test", ++ srcs = [ ++ "service_sktopt_test.go", ++ "service_test.go", ++ "util_sktopt_386_test.go", ++ "util_sktopt_amd64_test.go", ++ ], ++ embed = [":service"], ++ deps = [ ++ "//channelz/grpc_channelz_v1", ++ "//connectivity", ++ "//credentials", ++ "//internal/channelz", ++ "//internal/grpctest", ++ "@com_github_golang_protobuf//proto:go_default_library", ++ "@com_github_golang_protobuf//ptypes:go_default_library", ++ "@com_github_google_go_cmp//cmp:go_default_library", ++ "@org_golang_google_protobuf//testing/protocmp:go_default_library", ++ ] + select({ ++ "@io_bazel_rules_go//go/platform:android_386": [ ++ "@com_github_golang_protobuf//ptypes/duration:go_default_library", ++ "@org_golang_x_sys//unix:go_default_library", ++ ], ++ "@io_bazel_rules_go//go/platform:android_amd64": [ ++ "@com_github_golang_protobuf//ptypes/duration:go_default_library", ++ "@org_golang_x_sys//unix:go_default_library", ++ ], ++ "@io_bazel_rules_go//go/platform:linux_386": [ ++ "@com_github_golang_protobuf//ptypes/duration:go_default_library", ++ "@org_golang_x_sys//unix:go_default_library", ++ ], ++ "@io_bazel_rules_go//go/platform:linux_amd64": [ ++ "@com_github_golang_protobuf//ptypes/duration:go_default_library", ++ "@org_golang_x_sys//unix:go_default_library", ++ ], ++ "//conditions:default": [], ++ }), ++) +diff -urN a/cmd/protoc-gen-go-grpc/BUILD.bazel b/cmd/protoc-gen-go-grpc/BUILD.bazel +--- a/cmd/protoc-gen-go-grpc/BUILD.bazel 1970-01-01 00:00:00.000000000 +0000 ++++ b/cmd/protoc-gen-go-grpc/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000 +@@ -0,0 +1,23 @@ ++load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library") ++ ++go_library( ++ name = "protoc-gen-go-grpc_lib", ++ srcs = [ ++ "grpc.go", ++ "main.go", ++ ], ++ importpath = "google.golang.org/grpc/cmd/protoc-gen-go-grpc", ++ visibility = ["//visibility:private"], ++ deps = [ ++ "@org_golang_google_protobuf//compiler/protogen:go_default_library", ++ "@org_golang_google_protobuf//reflect/protoreflect:go_default_library", ++ "@org_golang_google_protobuf//types/descriptorpb:go_default_library", ++ "@org_golang_google_protobuf//types/pluginpb:go_default_library", ++ ], ++) ++ ++go_binary( ++ name = "protoc-gen-go-grpc", ++ embed = [":protoc-gen-go-grpc_lib"], ++ visibility = ["//visibility:public"], ++) +diff -urN a/codes/BUILD.bazel b/codes/BUILD.bazel +--- a/codes/BUILD.bazel 1970-01-01 00:00:00.000000000 +0000 ++++ b/codes/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000 +@@ -0,0 +1,28 @@ ++load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test") ++ ++go_library( ++ name = "codes", ++ srcs = [ ++ "code_string.go", ++ "codes.go", ++ ], ++ importpath = "google.golang.org/grpc/codes", ++ visibility = ["//visibility:public"], ++ deps = ["//internal"], ++) ++ ++alias( ++ name = "go_default_library", ++ actual = ":codes", ++ visibility = ["//visibility:public"], ++) ++ ++go_test( ++ name = "codes_test", ++ srcs = ["codes_test.go"], ++ embed = [":codes"], ++ deps = [ ++ "//internal/grpctest", ++ "@org_golang_google_genproto_googleapis_rpc//code:go_default_library", ++ ], ++) +diff -urN a/connectivity/BUILD.bazel b/connectivity/BUILD.bazel +--- a/connectivity/BUILD.bazel 1970-01-01 00:00:00.000000000 +0000 ++++ b/connectivity/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000 +@@ -0,0 +1,15 @@ ++load("@io_bazel_rules_go//go:def.bzl", "go_library") ++ ++go_library( ++ name = "connectivity", ++ srcs = ["connectivity.go"], ++ importpath = "google.golang.org/grpc/connectivity", ++ visibility = ["//visibility:public"], ++ deps = ["//grpclog"], ++) ++ ++alias( ++ name = "go_default_library", ++ actual = ":connectivity", ++ visibility = ["//visibility:public"], ++) +diff -urN a/credentials/alts/BUILD.bazel b/credentials/alts/BUILD.bazel +--- a/credentials/alts/BUILD.bazel 1970-01-01 00:00:00.000000000 +0000 ++++ b/credentials/alts/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000 +@@ -0,0 +1,83 @@ ++load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test") ++ ++go_library( ++ name = "alts", ++ srcs = [ ++ "alts.go", ++ "utils.go", ++ ], ++ importpath = "google.golang.org/grpc/credentials/alts", ++ visibility = ["//visibility:public"], ++ deps = [ ++ "//codes", ++ "//credentials", ++ "//credentials/alts/internal", ++ "//credentials/alts/internal/handshaker", ++ "//credentials/alts/internal/handshaker/service", ++ "//credentials/alts/internal/proto/grpc_gcp", ++ "//grpclog", ++ "//internal/googlecloud", ++ "//peer", ++ "//status", ++ ], ++) ++ ++alias( ++ name = "go_default_library", ++ actual = ":alts", ++ visibility = ["//visibility:public"], ++) ++ ++go_test( ++ name = "alts_test", ++ srcs = [ ++ "alts_test.go", ++ "utils_test.go", ++ ], ++ embed = [":alts"], ++ deps = select({ ++ "@io_bazel_rules_go//go/platform:android": [ ++ "//:grpc", ++ "//codes", ++ "//credentials/alts/internal/handshaker", ++ "//credentials/alts/internal/handshaker/service", ++ "//credentials/alts/internal/proto/grpc_gcp", ++ "//credentials/alts/internal/testutil", ++ "//internal/grpctest", ++ "//internal/testutils", ++ "//interop/grpc_testing", ++ "//peer", ++ "//status", ++ "@com_github_golang_protobuf//proto:go_default_library", ++ ], ++ "@io_bazel_rules_go//go/platform:linux": [ ++ "//:grpc", ++ "//codes", ++ "//credentials/alts/internal/handshaker", ++ "//credentials/alts/internal/handshaker/service", ++ "//credentials/alts/internal/proto/grpc_gcp", ++ "//credentials/alts/internal/testutil", ++ "//internal/grpctest", ++ "//internal/testutils", ++ "//interop/grpc_testing", ++ "//peer", ++ "//status", ++ "@com_github_golang_protobuf//proto:go_default_library", ++ ], ++ "@io_bazel_rules_go//go/platform:windows": [ ++ "//:grpc", ++ "//codes", ++ "//credentials/alts/internal/handshaker", ++ "//credentials/alts/internal/handshaker/service", ++ "//credentials/alts/internal/proto/grpc_gcp", ++ "//credentials/alts/internal/testutil", ++ "//internal/grpctest", ++ "//internal/testutils", ++ "//interop/grpc_testing", ++ "//peer", ++ "//status", ++ "@com_github_golang_protobuf//proto:go_default_library", ++ ], ++ "//conditions:default": [], ++ }), ++) +diff -urN a/credentials/alts/internal/authinfo/BUILD.bazel b/credentials/alts/internal/authinfo/BUILD.bazel +--- a/credentials/alts/internal/authinfo/BUILD.bazel 1970-01-01 00:00:00.000000000 +0000 ++++ b/credentials/alts/internal/authinfo/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000 +@@ -0,0 +1,28 @@ ++load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test") ++ ++go_library( ++ name = "authinfo", ++ srcs = ["authinfo.go"], ++ importpath = "google.golang.org/grpc/credentials/alts/internal/authinfo", ++ visibility = ["//credentials/alts:__subpackages__"], ++ deps = [ ++ "//credentials", ++ "//credentials/alts/internal/proto/grpc_gcp", ++ ], ++) ++ ++alias( ++ name = "go_default_library", ++ actual = ":authinfo", ++ visibility = ["//credentials/alts:__subpackages__"], ++) ++ ++go_test( ++ name = "authinfo_test", ++ srcs = ["authinfo_test.go"], ++ embed = [":authinfo"], ++ deps = [ ++ "//credentials/alts/internal/proto/grpc_gcp", ++ "//internal/grpctest", ++ ], ++) +diff -urN a/credentials/alts/internal/BUILD.bazel b/credentials/alts/internal/BUILD.bazel +--- a/credentials/alts/internal/BUILD.bazel 1970-01-01 00:00:00.000000000 +0000 ++++ b/credentials/alts/internal/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000 +@@ -0,0 +1,15 @@ ++load("@io_bazel_rules_go//go:def.bzl", "go_library") ++ ++go_library( ++ name = "internal", ++ srcs = ["common.go"], ++ importpath = "google.golang.org/grpc/credentials/alts/internal", ++ visibility = ["//credentials/alts:__subpackages__"], ++ deps = ["//credentials"], ++) ++ ++alias( ++ name = "go_default_library", ++ actual = ":internal", ++ visibility = ["//credentials/alts:__subpackages__"], ++) +diff -urN a/credentials/alts/internal/conn/BUILD.bazel b/credentials/alts/internal/conn/BUILD.bazel +--- a/credentials/alts/internal/conn/BUILD.bazel 1970-01-01 00:00:00.000000000 +0000 ++++ b/credentials/alts/internal/conn/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000 +@@ -0,0 +1,39 @@ ++load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test") ++ ++go_library( ++ name = "conn", ++ srcs = [ ++ "aeadrekey.go", ++ "aes128gcm.go", ++ "aes128gcmrekey.go", ++ "common.go", ++ "counter.go", ++ "record.go", ++ "utils.go", ++ ], ++ importpath = "google.golang.org/grpc/credentials/alts/internal/conn", ++ visibility = ["//credentials/alts:__subpackages__"], ++ deps = ["//credentials/alts/internal"], ++) ++ ++alias( ++ name = "go_default_library", ++ actual = ":conn", ++ visibility = ["//credentials/alts:__subpackages__"], ++) ++ ++go_test( ++ name = "conn_test", ++ srcs = [ ++ "aeadrekey_test.go", ++ "aes128gcm_test.go", ++ "aes128gcmrekey_test.go", ++ "counter_test.go", ++ "record_test.go", ++ ], ++ embed = [":conn"], ++ deps = [ ++ "//credentials/alts/internal", ++ "//internal/grpctest", ++ ], ++) +diff -urN a/credentials/alts/internal/handshaker/BUILD.bazel b/credentials/alts/internal/handshaker/BUILD.bazel +--- a/credentials/alts/internal/handshaker/BUILD.bazel 1970-01-01 00:00:00.000000000 +0000 ++++ b/credentials/alts/internal/handshaker/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000 +@@ -0,0 +1,41 @@ ++load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test") ++ ++go_library( ++ name = "handshaker", ++ srcs = ["handshaker.go"], ++ importpath = "google.golang.org/grpc/credentials/alts/internal/handshaker", ++ visibility = ["//credentials/alts:__subpackages__"], ++ deps = [ ++ "//:grpc", ++ "//codes", ++ "//credentials", ++ "//credentials/alts/internal", ++ "//credentials/alts/internal/authinfo", ++ "//credentials/alts/internal/conn", ++ "//credentials/alts/internal/proto/grpc_gcp", ++ "//internal/envconfig", ++ "@org_golang_x_sync//semaphore:go_default_library", ++ ], ++) ++ ++alias( ++ name = "go_default_library", ++ actual = ":handshaker", ++ visibility = ["//credentials/alts:__subpackages__"], ++) ++ ++go_test( ++ name = "handshaker_test", ++ srcs = ["handshaker_test.go"], ++ embed = [":handshaker"], ++ deps = [ ++ "//:grpc", ++ "//credentials/alts/internal", ++ "//credentials/alts/internal/proto/grpc_gcp", ++ "//credentials/alts/internal/testutil", ++ "//internal/envconfig", ++ "//internal/grpctest", ++ "@com_github_google_go_cmp//cmp:go_default_library", ++ "@com_github_google_go_cmp//cmp/cmpopts:go_default_library", ++ ], ++) +diff -urN a/credentials/alts/internal/handshaker/service/BUILD.bazel b/credentials/alts/internal/handshaker/service/BUILD.bazel +--- a/credentials/alts/internal/handshaker/service/BUILD.bazel 1970-01-01 00:00:00.000000000 +0000 ++++ b/credentials/alts/internal/handshaker/service/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000 +@@ -0,0 +1,25 @@ ++load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test") ++ ++go_library( ++ name = "service", ++ srcs = ["service.go"], ++ importpath = "google.golang.org/grpc/credentials/alts/internal/handshaker/service", ++ visibility = ["//credentials/alts:__subpackages__"], ++ deps = [ ++ "//:grpc", ++ "//credentials/insecure", ++ ], ++) ++ ++alias( ++ name = "go_default_library", ++ actual = ":service", ++ visibility = ["//credentials/alts:__subpackages__"], ++) ++ ++go_test( ++ name = "service_test", ++ srcs = ["service_test.go"], ++ embed = [":service"], ++ deps = ["//:grpc"], ++) +diff -urN a/credentials/alts/internal/proto/grpc_gcp/BUILD.bazel b/credentials/alts/internal/proto/grpc_gcp/BUILD.bazel +--- a/credentials/alts/internal/proto/grpc_gcp/BUILD.bazel 1970-01-01 00:00:00.000000000 +0000 ++++ b/credentials/alts/internal/proto/grpc_gcp/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000 +@@ -0,0 +1,26 @@ ++load("@io_bazel_rules_go//go:def.bzl", "go_library") ++ ++go_library( ++ name = "grpc_gcp", ++ srcs = [ ++ "altscontext.pb.go", ++ "handshaker.pb.go", ++ "handshaker_grpc.pb.go", ++ "transport_security_common.pb.go", ++ ], ++ importpath = "google.golang.org/grpc/credentials/alts/internal/proto/grpc_gcp", ++ visibility = ["//credentials/alts:__subpackages__"], ++ deps = [ ++ "//:grpc", ++ "//codes", ++ "//status", ++ "@org_golang_google_protobuf//reflect/protoreflect:go_default_library", ++ "@org_golang_google_protobuf//runtime/protoimpl:go_default_library", ++ ], ++) ++ ++alias( ++ name = "go_default_library", ++ actual = ":grpc_gcp", ++ visibility = ["//credentials/alts:__subpackages__"], ++) +diff -urN a/credentials/alts/internal/testutil/BUILD.bazel b/credentials/alts/internal/testutil/BUILD.bazel +--- a/credentials/alts/internal/testutil/BUILD.bazel 1970-01-01 00:00:00.000000000 +0000 ++++ b/credentials/alts/internal/testutil/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000 +@@ -0,0 +1,19 @@ ++load("@io_bazel_rules_go//go:def.bzl", "go_library") ++ ++go_library( ++ name = "testutil", ++ srcs = ["testutil.go"], ++ importpath = "google.golang.org/grpc/credentials/alts/internal/testutil", ++ visibility = ["//credentials/alts:__subpackages__"], ++ deps = [ ++ "//codes", ++ "//credentials/alts/internal/conn", ++ "//credentials/alts/internal/proto/grpc_gcp", ++ ], ++) ++ ++alias( ++ name = "go_default_library", ++ actual = ":testutil", ++ visibility = ["//credentials/alts:__subpackages__"], ++) +diff -urN a/credentials/BUILD.bazel b/credentials/BUILD.bazel +--- a/credentials/BUILD.bazel 1970-01-01 00:00:00.000000000 +0000 ++++ b/credentials/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000 +@@ -0,0 +1,32 @@ ++load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test") ++ ++go_library( ++ name = "credentials", ++ srcs = [ ++ "credentials.go", ++ "tls.go", ++ ], ++ importpath = "google.golang.org/grpc/credentials", ++ visibility = ["//visibility:public"], ++ deps = [ ++ "//attributes", ++ "//internal/credentials", ++ "@com_github_golang_protobuf//proto:go_default_library", ++ ], ++) ++ ++alias( ++ name = "go_default_library", ++ actual = ":credentials", ++ visibility = ["//visibility:public"], ++) ++ ++go_test( ++ name = "credentials_test", ++ srcs = ["credentials_test.go"], ++ embed = [":credentials"], ++ deps = [ ++ "//internal/grpctest", ++ "//testdata", ++ ], ++) +diff -urN a/credentials/google/BUILD.bazel b/credentials/google/BUILD.bazel +--- a/credentials/google/BUILD.bazel 1970-01-01 00:00:00.000000000 +0000 ++++ b/credentials/google/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000 +@@ -0,0 +1,40 @@ ++load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test") ++ ++go_library( ++ name = "google", ++ srcs = [ ++ "google.go", ++ "xds.go", ++ ], ++ importpath = "google.golang.org/grpc/credentials/google", ++ visibility = ["//visibility:public"], ++ deps = [ ++ "//credentials", ++ "//credentials/alts", ++ "//credentials/oauth", ++ "//grpclog", ++ "//internal", ++ ], ++) ++ ++alias( ++ name = "go_default_library", ++ actual = ":google", ++ visibility = ["//visibility:public"], ++) ++ ++go_test( ++ name = "google_test", ++ srcs = [ ++ "google_test.go", ++ "xds_test.go", ++ ], ++ embed = [":google"], ++ deps = [ ++ "//credentials", ++ "//internal", ++ "//internal/credentials", ++ "//internal/grpctest", ++ "//resolver", ++ ], ++) +diff -urN a/credentials/insecure/BUILD.bazel b/credentials/insecure/BUILD.bazel +--- a/credentials/insecure/BUILD.bazel 1970-01-01 00:00:00.000000000 +0000 ++++ b/credentials/insecure/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000 +@@ -0,0 +1,15 @@ ++load("@io_bazel_rules_go//go:def.bzl", "go_library") ++ ++go_library( ++ name = "insecure", ++ srcs = ["insecure.go"], ++ importpath = "google.golang.org/grpc/credentials/insecure", ++ visibility = ["//visibility:public"], ++ deps = ["//credentials"], ++) ++ ++alias( ++ name = "go_default_library", ++ actual = ":insecure", ++ visibility = ["//visibility:public"], ++) +diff -urN a/credentials/local/BUILD.bazel b/credentials/local/BUILD.bazel +--- a/credentials/local/BUILD.bazel 1970-01-01 00:00:00.000000000 +0000 ++++ b/credentials/local/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000 +@@ -0,0 +1,25 @@ ++load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test") ++ ++go_library( ++ name = "local", ++ srcs = ["local.go"], ++ importpath = "google.golang.org/grpc/credentials/local", ++ visibility = ["//visibility:public"], ++ deps = ["//credentials"], ++) ++ ++alias( ++ name = "go_default_library", ++ actual = ":local", ++ visibility = ["//visibility:public"], ++) ++ ++go_test( ++ name = "local_test", ++ srcs = ["local_test.go"], ++ embed = [":local"], ++ deps = [ ++ "//credentials", ++ "//internal/grpctest", ++ ], ++) +diff -urN a/credentials/oauth/BUILD.bazel b/credentials/oauth/BUILD.bazel +--- a/credentials/oauth/BUILD.bazel 1970-01-01 00:00:00.000000000 +0000 ++++ b/credentials/oauth/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000 +@@ -0,0 +1,26 @@ ++load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test") ++ ++go_library( ++ name = "oauth", ++ srcs = ["oauth.go"], ++ importpath = "google.golang.org/grpc/credentials/oauth", ++ visibility = ["//visibility:public"], ++ deps = [ ++ "//credentials", ++ "@org_golang_x_oauth2//:go_default_library", ++ "@org_golang_x_oauth2//google:go_default_library", ++ "@org_golang_x_oauth2//jwt:go_default_library", ++ ], ++) ++ ++alias( ++ name = "go_default_library", ++ actual = ":oauth", ++ visibility = ["//visibility:public"], ++) ++ ++go_test( ++ name = "oauth_test", ++ srcs = ["oauth_test.go"], ++ embed = [":oauth"], ++) +diff -urN a/credentials/sts/BUILD.bazel b/credentials/sts/BUILD.bazel +--- a/credentials/sts/BUILD.bazel 1970-01-01 00:00:00.000000000 +0000 ++++ b/credentials/sts/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000 +@@ -0,0 +1,31 @@ ++load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test") ++ ++go_library( ++ name = "sts", ++ srcs = ["sts.go"], ++ importpath = "google.golang.org/grpc/credentials/sts", ++ visibility = ["//visibility:public"], ++ deps = [ ++ "//credentials", ++ "//grpclog", ++ ], ++) ++ ++alias( ++ name = "go_default_library", ++ actual = ":sts", ++ visibility = ["//visibility:public"], ++) ++ ++go_test( ++ name = "sts_test", ++ srcs = ["sts_test.go"], ++ embed = [":sts"], ++ deps = [ ++ "//credentials", ++ "//internal/credentials", ++ "//internal/grpctest", ++ "//internal/testutils", ++ "@com_github_google_go_cmp//cmp:go_default_library", ++ ], ++) +diff -urN a/credentials/tls/certprovider/BUILD.bazel b/credentials/tls/certprovider/BUILD.bazel +--- a/credentials/tls/certprovider/BUILD.bazel 1970-01-01 00:00:00.000000000 +0000 ++++ b/credentials/tls/certprovider/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000 +@@ -0,0 +1,38 @@ ++load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test") ++ ++go_library( ++ name = "certprovider", ++ srcs = [ ++ "distributor.go", ++ "provider.go", ++ "store.go", ++ ], ++ importpath = "google.golang.org/grpc/credentials/tls/certprovider", ++ visibility = ["//visibility:public"], ++ deps = [ ++ "//internal", ++ "//internal/grpcsync", ++ ], ++) ++ ++alias( ++ name = "go_default_library", ++ actual = ":certprovider", ++ visibility = ["//visibility:public"], ++) ++ ++go_test( ++ name = "certprovider_test", ++ srcs = [ ++ "distributor_test.go", ++ "store_test.go", ++ ], ++ embed = [":certprovider"], ++ deps = [ ++ "//internal/grpctest", ++ "//internal/testutils", ++ "//testdata", ++ "@com_github_google_go_cmp//cmp:go_default_library", ++ "@com_github_google_go_cmp//cmp/cmpopts:go_default_library", ++ ], ++) +diff -urN a/credentials/tls/certprovider/pemfile/BUILD.bazel b/credentials/tls/certprovider/pemfile/BUILD.bazel +--- a/credentials/tls/certprovider/pemfile/BUILD.bazel 1970-01-01 00:00:00.000000000 +0000 ++++ b/credentials/tls/certprovider/pemfile/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000 +@@ -0,0 +1,40 @@ ++load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test") ++ ++go_library( ++ name = "pemfile", ++ srcs = [ ++ "builder.go", ++ "watcher.go", ++ ], ++ importpath = "google.golang.org/grpc/credentials/tls/certprovider/pemfile", ++ visibility = ["//visibility:public"], ++ deps = [ ++ "//credentials/tls/certprovider", ++ "//grpclog", ++ "@org_golang_google_protobuf//encoding/protojson:go_default_library", ++ "@org_golang_google_protobuf//types/known/durationpb:go_default_library", ++ ], ++) ++ ++alias( ++ name = "go_default_library", ++ actual = ":pemfile", ++ visibility = ["//visibility:public"], ++) ++ ++go_test( ++ name = "pemfile_test", ++ srcs = [ ++ "builder_test.go", ++ "watcher_test.go", ++ ], ++ embed = [":pemfile"], ++ deps = [ ++ "//credentials/tls/certprovider", ++ "//internal/grpctest", ++ "//internal/testutils", ++ "//testdata", ++ "@com_github_google_go_cmp//cmp:go_default_library", ++ "@com_github_google_go_cmp//cmp/cmpopts:go_default_library", ++ ], ++) +diff -urN a/credentials/xds/BUILD.bazel b/credentials/xds/BUILD.bazel +--- a/credentials/xds/BUILD.bazel 1970-01-01 00:00:00.000000000 +0000 ++++ b/credentials/xds/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000 +@@ -0,0 +1,39 @@ ++load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test") ++ ++go_library( ++ name = "xds", ++ srcs = ["xds.go"], ++ importpath = "google.golang.org/grpc/credentials/xds", ++ visibility = ["//visibility:public"], ++ deps = [ ++ "//credentials", ++ "//internal/credentials", ++ "//internal/credentials/xds", ++ ], ++) ++ ++alias( ++ name = "go_default_library", ++ actual = ":xds", ++ visibility = ["//visibility:public"], ++) ++ ++go_test( ++ name = "xds_test", ++ srcs = [ ++ "xds_client_test.go", ++ "xds_server_test.go", ++ ], ++ embed = [":xds"], ++ deps = [ ++ "//credentials", ++ "//credentials/tls/certprovider", ++ "//internal/credentials", ++ "//internal/credentials/xds", ++ "//internal/grpctest", ++ "//internal/testutils", ++ "//internal/xds/matcher", ++ "//resolver", ++ "//testdata", ++ ], ++) +diff -urN a/encoding/BUILD.bazel b/encoding/BUILD.bazel +--- a/encoding/BUILD.bazel 1970-01-01 00:00:00.000000000 +0000 ++++ b/encoding/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000 +@@ -0,0 +1,25 @@ ++load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test") ++ ++go_library( ++ name = "encoding", ++ srcs = ["encoding.go"], ++ importpath = "google.golang.org/grpc/encoding", ++ visibility = ["//visibility:public"], ++ deps = ["//internal/grpcutil"], ++) ++ ++alias( ++ name = "go_default_library", ++ actual = ":encoding", ++ visibility = ["//visibility:public"], ++) ++ ++go_test( ++ name = "encoding_test", ++ srcs = ["encoding_test.go"], ++ embed = [":encoding"], ++ deps = [ ++ "//internal/grpcutil", ++ "@com_github_google_go_cmp//cmp:go_default_library", ++ ], ++) +diff -urN a/encoding/gzip/BUILD.bazel b/encoding/gzip/BUILD.bazel +--- a/encoding/gzip/BUILD.bazel 1970-01-01 00:00:00.000000000 +0000 ++++ b/encoding/gzip/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000 +@@ -0,0 +1,15 @@ ++load("@io_bazel_rules_go//go:def.bzl", "go_library") ++ ++go_library( ++ name = "gzip", ++ srcs = ["gzip.go"], ++ importpath = "google.golang.org/grpc/encoding/gzip", ++ visibility = ["//visibility:public"], ++ deps = ["//encoding"], ++) ++ ++alias( ++ name = "go_default_library", ++ actual = ":gzip", ++ visibility = ["//visibility:public"], ++) +diff -urN a/encoding/proto/BUILD.bazel b/encoding/proto/BUILD.bazel +--- a/encoding/proto/BUILD.bazel 1970-01-01 00:00:00.000000000 +0000 ++++ b/encoding/proto/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000 +@@ -0,0 +1,33 @@ ++load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test") ++ ++go_library( ++ name = "proto", ++ srcs = ["proto.go"], ++ importpath = "google.golang.org/grpc/encoding/proto", ++ visibility = ["//visibility:public"], ++ deps = [ ++ "//encoding", ++ "@com_github_golang_protobuf//proto:go_default_library", ++ ], ++) ++ ++alias( ++ name = "go_default_library", ++ actual = ":proto", ++ visibility = ["//visibility:public"], ++) ++ ++go_test( ++ name = "proto_test", ++ srcs = [ ++ "proto_benchmark_test.go", ++ "proto_test.go", ++ ], ++ embed = [":proto"], ++ deps = [ ++ "//encoding", ++ "//internal/grpctest", ++ "//test/codec_perf", ++ "@com_github_golang_protobuf//proto:go_default_library", ++ ], ++) +diff -urN a/examples/data/BUILD.bazel b/examples/data/BUILD.bazel +--- a/examples/data/BUILD.bazel 1970-01-01 00:00:00.000000000 +0000 ++++ b/examples/data/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000 +@@ -0,0 +1,14 @@ ++load("@io_bazel_rules_go//go:def.bzl", "go_library") ++ ++go_library( ++ name = "data", ++ srcs = ["data.go"], ++ importpath = "google.golang.org/grpc/examples/data", ++ visibility = ["//visibility:public"], ++) ++ ++alias( ++ name = "go_default_library", ++ actual = ":data", ++ visibility = ["//visibility:public"], ++) +diff -urN a/examples/features/authentication/client/BUILD.bazel b/examples/features/authentication/client/BUILD.bazel +--- a/examples/features/authentication/client/BUILD.bazel 1970-01-01 00:00:00.000000000 +0000 ++++ b/examples/features/authentication/client/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000 +@@ -0,0 +1,22 @@ ++load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library") ++ ++go_library( ++ name = "client_lib", ++ srcs = ["main.go"], ++ importpath = "google.golang.org/grpc/examples/features/authentication/client", ++ visibility = ["//visibility:private"], ++ deps = [ ++ "//:grpc", ++ "//credentials", ++ "//credentials/oauth", ++ "//examples/data", ++ "//examples/features/proto/echo", ++ "@org_golang_x_oauth2//:go_default_library", ++ ], ++) ++ ++go_binary( ++ name = "client", ++ embed = [":client_lib"], ++ visibility = ["//visibility:public"], ++) +diff -urN a/examples/features/authentication/server/BUILD.bazel b/examples/features/authentication/server/BUILD.bazel +--- a/examples/features/authentication/server/BUILD.bazel 1970-01-01 00:00:00.000000000 +0000 ++++ b/examples/features/authentication/server/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000 +@@ -0,0 +1,23 @@ ++load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library") ++ ++go_library( ++ name = "server_lib", ++ srcs = ["main.go"], ++ importpath = "google.golang.org/grpc/examples/features/authentication/server", ++ visibility = ["//visibility:private"], ++ deps = [ ++ "//:grpc", ++ "//codes", ++ "//credentials", ++ "//examples/data", ++ "//examples/features/proto/echo", ++ "//metadata", ++ "//status", ++ ], ++) ++ ++go_binary( ++ name = "server", ++ embed = [":server_lib"], ++ visibility = ["//visibility:public"], ++) +diff -urN a/examples/features/authz/client/BUILD.bazel b/examples/features/authz/client/BUILD.bazel +--- a/examples/features/authz/client/BUILD.bazel 1970-01-01 00:00:00.000000000 +0000 ++++ b/examples/features/authz/client/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000 +@@ -0,0 +1,25 @@ ++load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library") ++ ++go_library( ++ name = "client_lib", ++ srcs = ["main.go"], ++ importpath = "google.golang.org/grpc/examples/features/authz/client", ++ visibility = ["//visibility:private"], ++ deps = [ ++ "//:grpc", ++ "//codes", ++ "//credentials", ++ "//credentials/oauth", ++ "//examples/data", ++ "//examples/features/authz/token", ++ "//examples/features/proto/echo", ++ "//status", ++ "@org_golang_x_oauth2//:go_default_library", ++ ], ++) ++ ++go_binary( ++ name = "client", ++ embed = [":client_lib"], ++ visibility = ["//visibility:public"], ++) +diff -urN a/examples/features/authz/server/BUILD.bazel b/examples/features/authz/server/BUILD.bazel +--- a/examples/features/authz/server/BUILD.bazel 1970-01-01 00:00:00.000000000 +0000 ++++ b/examples/features/authz/server/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000 +@@ -0,0 +1,25 @@ ++load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library") ++ ++go_library( ++ name = "server_lib", ++ srcs = ["main.go"], ++ importpath = "google.golang.org/grpc/examples/features/authz/server", ++ visibility = ["//visibility:private"], ++ deps = [ ++ "//:grpc", ++ "//authz", ++ "//codes", ++ "//credentials", ++ "//examples/data", ++ "//examples/features/authz/token", ++ "//examples/features/proto/echo", ++ "//metadata", ++ "//status", ++ ], ++) ++ ++go_binary( ++ name = "server", ++ embed = [":server_lib"], ++ visibility = ["//visibility:public"], ++) +diff -urN a/examples/features/authz/token/BUILD.bazel b/examples/features/authz/token/BUILD.bazel +--- a/examples/features/authz/token/BUILD.bazel 1970-01-01 00:00:00.000000000 +0000 ++++ b/examples/features/authz/token/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000 +@@ -0,0 +1,14 @@ ++load("@io_bazel_rules_go//go:def.bzl", "go_library") ++ ++go_library( ++ name = "token", ++ srcs = ["token.go"], ++ importpath = "google.golang.org/grpc/examples/features/authz/token", ++ visibility = ["//visibility:public"], ++) ++ ++alias( ++ name = "go_default_library", ++ actual = ":token", ++ visibility = ["//visibility:public"], ++) +diff -urN a/examples/features/cancellation/client/BUILD.bazel b/examples/features/cancellation/client/BUILD.bazel +--- a/examples/features/cancellation/client/BUILD.bazel 1970-01-01 00:00:00.000000000 +0000 ++++ b/examples/features/cancellation/client/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000 +@@ -0,0 +1,21 @@ ++load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library") ++ ++go_library( ++ name = "client_lib", ++ srcs = ["main.go"], ++ importpath = "google.golang.org/grpc/examples/features/cancellation/client", ++ visibility = ["//visibility:private"], ++ deps = [ ++ "//:grpc", ++ "//codes", ++ "//credentials/insecure", ++ "//examples/features/proto/echo", ++ "//status", ++ ], ++) ++ ++go_binary( ++ name = "client", ++ embed = [":client_lib"], ++ visibility = ["//visibility:public"], ++) +diff -urN a/examples/features/cancellation/server/BUILD.bazel b/examples/features/cancellation/server/BUILD.bazel +--- a/examples/features/cancellation/server/BUILD.bazel 1970-01-01 00:00:00.000000000 +0000 ++++ b/examples/features/cancellation/server/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000 +@@ -0,0 +1,18 @@ ++load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library") ++ ++go_library( ++ name = "server_lib", ++ srcs = ["main.go"], ++ importpath = "google.golang.org/grpc/examples/features/cancellation/server", ++ visibility = ["//visibility:private"], ++ deps = [ ++ "//:grpc", ++ "//examples/features/proto/echo", ++ ], ++) ++ ++go_binary( ++ name = "server", ++ embed = [":server_lib"], ++ visibility = ["//visibility:public"], ++) +diff -urN a/examples/features/compression/client/BUILD.bazel b/examples/features/compression/client/BUILD.bazel +--- a/examples/features/compression/client/BUILD.bazel 1970-01-01 00:00:00.000000000 +0000 ++++ b/examples/features/compression/client/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000 +@@ -0,0 +1,20 @@ ++load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library") ++ ++go_library( ++ name = "client_lib", ++ srcs = ["main.go"], ++ importpath = "google.golang.org/grpc/examples/features/compression/client", ++ visibility = ["//visibility:private"], ++ deps = [ ++ "//:grpc", ++ "//credentials/insecure", ++ "//encoding/gzip", ++ "//examples/features/proto/echo", ++ ], ++) ++ ++go_binary( ++ name = "client", ++ embed = [":client_lib"], ++ visibility = ["//visibility:public"], ++) +diff -urN a/examples/features/compression/server/BUILD.bazel b/examples/features/compression/server/BUILD.bazel +--- a/examples/features/compression/server/BUILD.bazel 1970-01-01 00:00:00.000000000 +0000 ++++ b/examples/features/compression/server/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000 +@@ -0,0 +1,19 @@ ++load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library") ++ ++go_library( ++ name = "server_lib", ++ srcs = ["main.go"], ++ importpath = "google.golang.org/grpc/examples/features/compression/server", ++ visibility = ["//visibility:private"], ++ deps = [ ++ "//:grpc", ++ "//encoding/gzip", ++ "//examples/features/proto/echo", ++ ], ++) ++ ++go_binary( ++ name = "server", ++ embed = [":server_lib"], ++ visibility = ["//visibility:public"], ++) +diff -urN a/examples/features/deadline/client/BUILD.bazel b/examples/features/deadline/client/BUILD.bazel +--- a/examples/features/deadline/client/BUILD.bazel 1970-01-01 00:00:00.000000000 +0000 ++++ b/examples/features/deadline/client/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000 +@@ -0,0 +1,21 @@ ++load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library") ++ ++go_library( ++ name = "client_lib", ++ srcs = ["main.go"], ++ importpath = "google.golang.org/grpc/examples/features/deadline/client", ++ visibility = ["//visibility:private"], ++ deps = [ ++ "//:grpc", ++ "//codes", ++ "//credentials/insecure", ++ "//examples/features/proto/echo", ++ "//status", ++ ], ++) ++ ++go_binary( ++ name = "client", ++ embed = [":client_lib"], ++ visibility = ["//visibility:public"], ++) +diff -urN a/examples/features/deadline/server/BUILD.bazel b/examples/features/deadline/server/BUILD.bazel +--- a/examples/features/deadline/server/BUILD.bazel 1970-01-01 00:00:00.000000000 +0000 ++++ b/examples/features/deadline/server/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000 +@@ -0,0 +1,21 @@ ++load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library") ++ ++go_library( ++ name = "server_lib", ++ srcs = ["main.go"], ++ importpath = "google.golang.org/grpc/examples/features/deadline/server", ++ visibility = ["//visibility:private"], ++ deps = [ ++ "//:grpc", ++ "//codes", ++ "//credentials/insecure", ++ "//examples/features/proto/echo", ++ "//status", ++ ], ++) ++ ++go_binary( ++ name = "server", ++ embed = [":server_lib"], ++ visibility = ["//visibility:public"], ++) +diff -urN a/examples/features/debugging/client/BUILD.bazel b/examples/features/debugging/client/BUILD.bazel +--- a/examples/features/debugging/client/BUILD.bazel 1970-01-01 00:00:00.000000000 +0000 ++++ b/examples/features/debugging/client/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000 +@@ -0,0 +1,22 @@ ++load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library") ++ ++go_library( ++ name = "client_lib", ++ srcs = ["main.go"], ++ importpath = "google.golang.org/grpc/examples/features/debugging/client", ++ visibility = ["//visibility:private"], ++ deps = [ ++ "//:grpc", ++ "//channelz/service", ++ "//credentials/insecure", ++ "//examples/helloworld/helloworld", ++ "//resolver", ++ "//resolver/manual", ++ ], ++) ++ ++go_binary( ++ name = "client", ++ embed = [":client_lib"], ++ visibility = ["//visibility:public"], ++) +diff -urN a/examples/features/debugging/server/BUILD.bazel b/examples/features/debugging/server/BUILD.bazel +--- a/examples/features/debugging/server/BUILD.bazel 1970-01-01 00:00:00.000000000 +0000 ++++ b/examples/features/debugging/server/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000 +@@ -0,0 +1,20 @@ ++load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library") ++ ++go_library( ++ name = "server_lib", ++ srcs = ["main.go"], ++ importpath = "google.golang.org/grpc/examples/features/debugging/server", ++ visibility = ["//visibility:private"], ++ deps = [ ++ "//:grpc", ++ "//channelz/service", ++ "//examples/helloworld/helloworld", ++ "//internal/grpcrand", ++ ], ++) ++ ++go_binary( ++ name = "server", ++ embed = [":server_lib"], ++ visibility = ["//visibility:public"], ++) +diff -urN a/examples/features/encryption/ALTS/client/BUILD.bazel b/examples/features/encryption/ALTS/client/BUILD.bazel +--- a/examples/features/encryption/ALTS/client/BUILD.bazel 1970-01-01 00:00:00.000000000 +0000 ++++ b/examples/features/encryption/ALTS/client/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000 +@@ -0,0 +1,19 @@ ++load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library") ++ ++go_library( ++ name = "client_lib", ++ srcs = ["main.go"], ++ importpath = "google.golang.org/grpc/examples/features/encryption/ALTS/client", ++ visibility = ["//visibility:private"], ++ deps = [ ++ "//:grpc", ++ "//credentials/alts", ++ "//examples/features/proto/echo", ++ ], ++) ++ ++go_binary( ++ name = "client", ++ embed = [":client_lib"], ++ visibility = ["//visibility:public"], ++) +diff -urN a/examples/features/encryption/ALTS/server/BUILD.bazel b/examples/features/encryption/ALTS/server/BUILD.bazel +--- a/examples/features/encryption/ALTS/server/BUILD.bazel 1970-01-01 00:00:00.000000000 +0000 ++++ b/examples/features/encryption/ALTS/server/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000 +@@ -0,0 +1,19 @@ ++load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library") ++ ++go_library( ++ name = "server_lib", ++ srcs = ["main.go"], ++ importpath = "google.golang.org/grpc/examples/features/encryption/ALTS/server", ++ visibility = ["//visibility:private"], ++ deps = [ ++ "//:grpc", ++ "//credentials/alts", ++ "//examples/features/proto/echo", ++ ], ++) ++ ++go_binary( ++ name = "server", ++ embed = [":server_lib"], ++ visibility = ["//visibility:public"], ++) +diff -urN a/examples/features/encryption/mTLS/client/BUILD.bazel b/examples/features/encryption/mTLS/client/BUILD.bazel +--- a/examples/features/encryption/mTLS/client/BUILD.bazel 1970-01-01 00:00:00.000000000 +0000 ++++ b/examples/features/encryption/mTLS/client/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000 +@@ -0,0 +1,20 @@ ++load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library") ++ ++go_library( ++ name = "client_lib", ++ srcs = ["main.go"], ++ importpath = "google.golang.org/grpc/examples/features/encryption/mTLS/client", ++ visibility = ["//visibility:private"], ++ deps = [ ++ "//:grpc", ++ "//credentials", ++ "//examples/data", ++ "//examples/features/proto/echo", ++ ], ++) ++ ++go_binary( ++ name = "client", ++ embed = [":client_lib"], ++ visibility = ["//visibility:public"], ++) +diff -urN a/examples/features/encryption/mTLS/server/BUILD.bazel b/examples/features/encryption/mTLS/server/BUILD.bazel +--- a/examples/features/encryption/mTLS/server/BUILD.bazel 1970-01-01 00:00:00.000000000 +0000 ++++ b/examples/features/encryption/mTLS/server/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000 +@@ -0,0 +1,20 @@ ++load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library") ++ ++go_library( ++ name = "server_lib", ++ srcs = ["main.go"], ++ importpath = "google.golang.org/grpc/examples/features/encryption/mTLS/server", ++ visibility = ["//visibility:private"], ++ deps = [ ++ "//:grpc", ++ "//credentials", ++ "//examples/data", ++ "//examples/features/proto/echo", ++ ], ++) ++ ++go_binary( ++ name = "server", ++ embed = [":server_lib"], ++ visibility = ["//visibility:public"], ++) +diff -urN a/examples/features/encryption/TLS/client/BUILD.bazel b/examples/features/encryption/TLS/client/BUILD.bazel +--- a/examples/features/encryption/TLS/client/BUILD.bazel 1970-01-01 00:00:00.000000000 +0000 ++++ b/examples/features/encryption/TLS/client/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000 +@@ -0,0 +1,20 @@ ++load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library") ++ ++go_library( ++ name = "client_lib", ++ srcs = ["main.go"], ++ importpath = "google.golang.org/grpc/examples/features/encryption/TLS/client", ++ visibility = ["//visibility:private"], ++ deps = [ ++ "//:grpc", ++ "//credentials", ++ "//examples/data", ++ "//examples/features/proto/echo", ++ ], ++) ++ ++go_binary( ++ name = "client", ++ embed = [":client_lib"], ++ visibility = ["//visibility:public"], ++) +diff -urN a/examples/features/encryption/TLS/server/BUILD.bazel b/examples/features/encryption/TLS/server/BUILD.bazel +--- a/examples/features/encryption/TLS/server/BUILD.bazel 1970-01-01 00:00:00.000000000 +0000 ++++ b/examples/features/encryption/TLS/server/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000 +@@ -0,0 +1,20 @@ ++load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library") ++ ++go_library( ++ name = "server_lib", ++ srcs = ["main.go"], ++ importpath = "google.golang.org/grpc/examples/features/encryption/TLS/server", ++ visibility = ["//visibility:private"], ++ deps = [ ++ "//:grpc", ++ "//credentials", ++ "//examples/data", ++ "//examples/features/proto/echo", ++ ], ++) ++ ++go_binary( ++ name = "server", ++ embed = [":server_lib"], ++ visibility = ["//visibility:public"], ++) +diff -urN a/examples/features/error_details/client/BUILD.bazel b/examples/features/error_details/client/BUILD.bazel +--- a/examples/features/error_details/client/BUILD.bazel 1970-01-01 00:00:00.000000000 +0000 ++++ b/examples/features/error_details/client/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000 +@@ -0,0 +1,21 @@ ++load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library") ++ ++go_library( ++ name = "client_lib", ++ srcs = ["main.go"], ++ importpath = "google.golang.org/grpc/examples/features/error_details/client", ++ visibility = ["//visibility:private"], ++ deps = [ ++ "//:grpc", ++ "//credentials/insecure", ++ "//examples/helloworld/helloworld", ++ "//status", ++ "@org_golang_google_genproto_googleapis_rpc//errdetails:go_default_library", ++ ], ++) ++ ++go_binary( ++ name = "client", ++ embed = [":client_lib"], ++ visibility = ["//visibility:public"], ++) +diff -urN a/examples/features/error_details/server/BUILD.bazel b/examples/features/error_details/server/BUILD.bazel +--- a/examples/features/error_details/server/BUILD.bazel 1970-01-01 00:00:00.000000000 +0000 ++++ b/examples/features/error_details/server/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000 +@@ -0,0 +1,21 @@ ++load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library") ++ ++go_library( ++ name = "server_lib", ++ srcs = ["main.go"], ++ importpath = "google.golang.org/grpc/examples/features/error_details/server", ++ visibility = ["//visibility:private"], ++ deps = [ ++ "//:grpc", ++ "//codes", ++ "//examples/helloworld/helloworld", ++ "//status", ++ "@org_golang_google_genproto_googleapis_rpc//errdetails:go_default_library", ++ ], ++) ++ ++go_binary( ++ name = "server", ++ embed = [":server_lib"], ++ visibility = ["//visibility:public"], ++) +diff -urN a/examples/features/error_handling/client/BUILD.bazel b/examples/features/error_handling/client/BUILD.bazel +--- a/examples/features/error_handling/client/BUILD.bazel 1970-01-01 00:00:00.000000000 +0000 ++++ b/examples/features/error_handling/client/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000 +@@ -0,0 +1,21 @@ ++load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library") ++ ++go_library( ++ name = "client_lib", ++ srcs = ["main.go"], ++ importpath = "google.golang.org/grpc/examples/features/error_handling/client", ++ visibility = ["//visibility:private"], ++ deps = [ ++ "//:grpc", ++ "//codes", ++ "//credentials/insecure", ++ "//examples/helloworld/helloworld", ++ "//status", ++ ], ++) ++ ++go_binary( ++ name = "client", ++ embed = [":client_lib"], ++ visibility = ["//visibility:public"], ++) +diff -urN a/examples/features/error_handling/server/BUILD.bazel b/examples/features/error_handling/server/BUILD.bazel +--- a/examples/features/error_handling/server/BUILD.bazel 1970-01-01 00:00:00.000000000 +0000 ++++ b/examples/features/error_handling/server/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000 +@@ -0,0 +1,20 @@ ++load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library") ++ ++go_library( ++ name = "server_lib", ++ srcs = ["main.go"], ++ importpath = "google.golang.org/grpc/examples/features/error_handling/server", ++ visibility = ["//visibility:private"], ++ deps = [ ++ "//:grpc", ++ "//codes", ++ "//examples/helloworld/helloworld", ++ "//status", ++ ], ++) ++ ++go_binary( ++ name = "server", ++ embed = [":server_lib"], ++ visibility = ["//visibility:public"], ++) +diff -urN a/examples/features/flow_control/client/BUILD.bazel b/examples/features/flow_control/client/BUILD.bazel +--- a/examples/features/flow_control/client/BUILD.bazel 1970-01-01 00:00:00.000000000 +0000 ++++ b/examples/features/flow_control/client/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000 +@@ -0,0 +1,20 @@ ++load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library") ++ ++go_library( ++ name = "client_lib", ++ srcs = ["main.go"], ++ importpath = "google.golang.org/grpc/examples/features/flow_control/client", ++ visibility = ["//visibility:private"], ++ deps = [ ++ "//:grpc", ++ "//credentials/insecure", ++ "//examples/features/proto/echo", ++ "//internal/grpcsync", ++ ], ++) ++ ++go_binary( ++ name = "client", ++ embed = [":client_lib"], ++ visibility = ["//visibility:public"], ++) +diff -urN a/examples/features/flow_control/server/BUILD.bazel b/examples/features/flow_control/server/BUILD.bazel +--- a/examples/features/flow_control/server/BUILD.bazel 1970-01-01 00:00:00.000000000 +0000 ++++ b/examples/features/flow_control/server/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000 +@@ -0,0 +1,19 @@ ++load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library") ++ ++go_library( ++ name = "server_lib", ++ srcs = ["main.go"], ++ importpath = "google.golang.org/grpc/examples/features/flow_control/server", ++ visibility = ["//visibility:private"], ++ deps = [ ++ "//:grpc", ++ "//examples/features/proto/echo", ++ "//internal/grpcsync", ++ ], ++) ++ ++go_binary( ++ name = "server", ++ embed = [":server_lib"], ++ visibility = ["//visibility:public"], ++) +diff -urN a/examples/features/health/client/BUILD.bazel b/examples/features/health/client/BUILD.bazel +--- a/examples/features/health/client/BUILD.bazel 1970-01-01 00:00:00.000000000 +0000 ++++ b/examples/features/health/client/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000 +@@ -0,0 +1,22 @@ ++load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library") ++ ++go_library( ++ name = "client_lib", ++ srcs = ["main.go"], ++ importpath = "google.golang.org/grpc/examples/features/health/client", ++ visibility = ["//visibility:private"], ++ deps = [ ++ "//:grpc", ++ "//credentials/insecure", ++ "//examples/features/proto/echo", ++ "//health", ++ "//resolver", ++ "//resolver/manual", ++ ], ++) ++ ++go_binary( ++ name = "client", ++ embed = [":client_lib"], ++ visibility = ["//visibility:public"], ++) +diff -urN a/examples/features/health/server/BUILD.bazel b/examples/features/health/server/BUILD.bazel +--- a/examples/features/health/server/BUILD.bazel 1970-01-01 00:00:00.000000000 +0000 ++++ b/examples/features/health/server/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000 +@@ -0,0 +1,20 @@ ++load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library") ++ ++go_library( ++ name = "server_lib", ++ srcs = ["main.go"], ++ importpath = "google.golang.org/grpc/examples/features/health/server", ++ visibility = ["//visibility:private"], ++ deps = [ ++ "//:grpc", ++ "//examples/features/proto/echo", ++ "//health", ++ "//health/grpc_health_v1", ++ ], ++) ++ ++go_binary( ++ name = "server", ++ embed = [":server_lib"], ++ visibility = ["//visibility:public"], ++) +diff -urN a/examples/features/interceptor/client/BUILD.bazel b/examples/features/interceptor/client/BUILD.bazel +--- a/examples/features/interceptor/client/BUILD.bazel 1970-01-01 00:00:00.000000000 +0000 ++++ b/examples/features/interceptor/client/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000 +@@ -0,0 +1,22 @@ ++load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library") ++ ++go_library( ++ name = "client_lib", ++ srcs = ["main.go"], ++ importpath = "google.golang.org/grpc/examples/features/interceptor/client", ++ visibility = ["//visibility:private"], ++ deps = [ ++ "//:grpc", ++ "//credentials", ++ "//credentials/oauth", ++ "//examples/data", ++ "//examples/features/proto/echo", ++ "@org_golang_x_oauth2//:go_default_library", ++ ], ++) ++ ++go_binary( ++ name = "client", ++ embed = [":client_lib"], ++ visibility = ["//visibility:public"], ++) +diff -urN a/examples/features/interceptor/server/BUILD.bazel b/examples/features/interceptor/server/BUILD.bazel +--- a/examples/features/interceptor/server/BUILD.bazel 1970-01-01 00:00:00.000000000 +0000 ++++ b/examples/features/interceptor/server/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000 +@@ -0,0 +1,23 @@ ++load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library") ++ ++go_library( ++ name = "server_lib", ++ srcs = ["main.go"], ++ importpath = "google.golang.org/grpc/examples/features/interceptor/server", ++ visibility = ["//visibility:private"], ++ deps = [ ++ "//:grpc", ++ "//codes", ++ "//credentials", ++ "//examples/data", ++ "//examples/features/proto/echo", ++ "//metadata", ++ "//status", ++ ], ++) ++ ++go_binary( ++ name = "server", ++ embed = [":server_lib"], ++ visibility = ["//visibility:public"], ++) +diff -urN a/examples/features/keepalive/client/BUILD.bazel b/examples/features/keepalive/client/BUILD.bazel +--- a/examples/features/keepalive/client/BUILD.bazel 1970-01-01 00:00:00.000000000 +0000 ++++ b/examples/features/keepalive/client/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000 +@@ -0,0 +1,20 @@ ++load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library") ++ ++go_library( ++ name = "client_lib", ++ srcs = ["main.go"], ++ importpath = "google.golang.org/grpc/examples/features/keepalive/client", ++ visibility = ["//visibility:private"], ++ deps = [ ++ "//:grpc", ++ "//credentials/insecure", ++ "//examples/features/proto/echo", ++ "//keepalive", ++ ], ++) ++ ++go_binary( ++ name = "client", ++ embed = [":client_lib"], ++ visibility = ["//visibility:public"], ++) +diff -urN a/examples/features/keepalive/server/BUILD.bazel b/examples/features/keepalive/server/BUILD.bazel +--- a/examples/features/keepalive/server/BUILD.bazel 1970-01-01 00:00:00.000000000 +0000 ++++ b/examples/features/keepalive/server/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000 +@@ -0,0 +1,19 @@ ++load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library") ++ ++go_library( ++ name = "server_lib", ++ srcs = ["main.go"], ++ importpath = "google.golang.org/grpc/examples/features/keepalive/server", ++ visibility = ["//visibility:private"], ++ deps = [ ++ "//:grpc", ++ "//examples/features/proto/echo", ++ "//keepalive", ++ ], ++) ++ ++go_binary( ++ name = "server", ++ embed = [":server_lib"], ++ visibility = ["//visibility:public"], ++) +diff -urN a/examples/features/load_balancing/client/BUILD.bazel b/examples/features/load_balancing/client/BUILD.bazel +--- a/examples/features/load_balancing/client/BUILD.bazel 1970-01-01 00:00:00.000000000 +0000 ++++ b/examples/features/load_balancing/client/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000 +@@ -0,0 +1,20 @@ ++load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library") ++ ++go_library( ++ name = "client_lib", ++ srcs = ["main.go"], ++ importpath = "google.golang.org/grpc/examples/features/load_balancing/client", ++ visibility = ["//visibility:private"], ++ deps = [ ++ "//:grpc", ++ "//credentials/insecure", ++ "//examples/features/proto/echo", ++ "//resolver", ++ ], ++) ++ ++go_binary( ++ name = "client", ++ embed = [":client_lib"], ++ visibility = ["//visibility:public"], ++) +diff -urN a/examples/features/load_balancing/server/BUILD.bazel b/examples/features/load_balancing/server/BUILD.bazel +--- a/examples/features/load_balancing/server/BUILD.bazel 1970-01-01 00:00:00.000000000 +0000 ++++ b/examples/features/load_balancing/server/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000 +@@ -0,0 +1,18 @@ ++load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library") ++ ++go_library( ++ name = "server_lib", ++ srcs = ["main.go"], ++ importpath = "google.golang.org/grpc/examples/features/load_balancing/server", ++ visibility = ["//visibility:private"], ++ deps = [ ++ "//:grpc", ++ "//examples/features/proto/echo", ++ ], ++) ++ ++go_binary( ++ name = "server", ++ embed = [":server_lib"], ++ visibility = ["//visibility:public"], ++) +diff -urN a/examples/features/metadata/client/BUILD.bazel b/examples/features/metadata/client/BUILD.bazel +--- a/examples/features/metadata/client/BUILD.bazel 1970-01-01 00:00:00.000000000 +0000 ++++ b/examples/features/metadata/client/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000 +@@ -0,0 +1,20 @@ ++load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library") ++ ++go_library( ++ name = "client_lib", ++ srcs = ["main.go"], ++ importpath = "google.golang.org/grpc/examples/features/metadata/client", ++ visibility = ["//visibility:private"], ++ deps = [ ++ "//:grpc", ++ "//credentials/insecure", ++ "//examples/features/proto/echo", ++ "//metadata", ++ ], ++) ++ ++go_binary( ++ name = "client", ++ embed = [":client_lib"], ++ visibility = ["//visibility:public"], ++) +diff -urN a/examples/features/metadata/server/BUILD.bazel b/examples/features/metadata/server/BUILD.bazel +--- a/examples/features/metadata/server/BUILD.bazel 1970-01-01 00:00:00.000000000 +0000 ++++ b/examples/features/metadata/server/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000 +@@ -0,0 +1,21 @@ ++load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library") ++ ++go_library( ++ name = "server_lib", ++ srcs = ["main.go"], ++ importpath = "google.golang.org/grpc/examples/features/metadata/server", ++ visibility = ["//visibility:private"], ++ deps = [ ++ "//:grpc", ++ "//codes", ++ "//examples/features/proto/echo", ++ "//metadata", ++ "//status", ++ ], ++) ++ ++go_binary( ++ name = "server", ++ embed = [":server_lib"], ++ visibility = ["//visibility:public"], ++) +diff -urN a/examples/features/metadata_interceptor/client/BUILD.bazel b/examples/features/metadata_interceptor/client/BUILD.bazel +--- a/examples/features/metadata_interceptor/client/BUILD.bazel 1970-01-01 00:00:00.000000000 +0000 ++++ b/examples/features/metadata_interceptor/client/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000 +@@ -0,0 +1,19 @@ ++load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library") ++ ++go_library( ++ name = "client_lib", ++ srcs = ["main.go"], ++ importpath = "google.golang.org/grpc/examples/features/metadata_interceptor/client", ++ visibility = ["//visibility:private"], ++ deps = [ ++ "//:grpc", ++ "//credentials/insecure", ++ "//examples/features/proto/echo", ++ ], ++) ++ ++go_binary( ++ name = "client", ++ embed = [":client_lib"], ++ visibility = ["//visibility:public"], ++) +diff -urN a/examples/features/metadata_interceptor/server/BUILD.bazel b/examples/features/metadata_interceptor/server/BUILD.bazel +--- a/examples/features/metadata_interceptor/server/BUILD.bazel 1970-01-01 00:00:00.000000000 +0000 ++++ b/examples/features/metadata_interceptor/server/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000 +@@ -0,0 +1,21 @@ ++load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library") ++ ++go_library( ++ name = "server_lib", ++ srcs = ["main.go"], ++ importpath = "google.golang.org/grpc/examples/features/metadata_interceptor/server", ++ visibility = ["//visibility:private"], ++ deps = [ ++ "//:grpc", ++ "//codes", ++ "//examples/features/proto/echo", ++ "//metadata", ++ "//status", ++ ], ++) ++ ++go_binary( ++ name = "server", ++ embed = [":server_lib"], ++ visibility = ["//visibility:public"], ++) +diff -urN a/examples/features/multiplex/client/BUILD.bazel b/examples/features/multiplex/client/BUILD.bazel +--- a/examples/features/multiplex/client/BUILD.bazel 1970-01-01 00:00:00.000000000 +0000 ++++ b/examples/features/multiplex/client/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000 +@@ -0,0 +1,20 @@ ++load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library") ++ ++go_library( ++ name = "client_lib", ++ srcs = ["main.go"], ++ importpath = "google.golang.org/grpc/examples/features/multiplex/client", ++ visibility = ["//visibility:private"], ++ deps = [ ++ "//:grpc", ++ "//credentials/insecure", ++ "//examples/features/proto/echo", ++ "//examples/helloworld/helloworld", ++ ], ++) ++ ++go_binary( ++ name = "client", ++ embed = [":client_lib"], ++ visibility = ["//visibility:public"], ++) +diff -urN a/examples/features/multiplex/server/BUILD.bazel b/examples/features/multiplex/server/BUILD.bazel +--- a/examples/features/multiplex/server/BUILD.bazel 1970-01-01 00:00:00.000000000 +0000 ++++ b/examples/features/multiplex/server/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000 +@@ -0,0 +1,19 @@ ++load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library") ++ ++go_library( ++ name = "server_lib", ++ srcs = ["main.go"], ++ importpath = "google.golang.org/grpc/examples/features/multiplex/server", ++ visibility = ["//visibility:private"], ++ deps = [ ++ "//:grpc", ++ "//examples/features/proto/echo", ++ "//examples/helloworld/helloworld", ++ ], ++) ++ ++go_binary( ++ name = "server", ++ embed = [":server_lib"], ++ visibility = ["//visibility:public"], ++) +diff -urN a/examples/features/name_resolving/client/BUILD.bazel b/examples/features/name_resolving/client/BUILD.bazel +--- a/examples/features/name_resolving/client/BUILD.bazel 1970-01-01 00:00:00.000000000 +0000 ++++ b/examples/features/name_resolving/client/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000 +@@ -0,0 +1,20 @@ ++load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library") ++ ++go_library( ++ name = "client_lib", ++ srcs = ["main.go"], ++ importpath = "google.golang.org/grpc/examples/features/name_resolving/client", ++ visibility = ["//visibility:private"], ++ deps = [ ++ "//:grpc", ++ "//credentials/insecure", ++ "//examples/features/proto/echo", ++ "//resolver", ++ ], ++) ++ ++go_binary( ++ name = "client", ++ embed = [":client_lib"], ++ visibility = ["//visibility:public"], ++) +diff -urN a/examples/features/name_resolving/server/BUILD.bazel b/examples/features/name_resolving/server/BUILD.bazel +--- a/examples/features/name_resolving/server/BUILD.bazel 1970-01-01 00:00:00.000000000 +0000 ++++ b/examples/features/name_resolving/server/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000 +@@ -0,0 +1,18 @@ ++load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library") ++ ++go_library( ++ name = "server_lib", ++ srcs = ["main.go"], ++ importpath = "google.golang.org/grpc/examples/features/name_resolving/server", ++ visibility = ["//visibility:private"], ++ deps = [ ++ "//:grpc", ++ "//examples/features/proto/echo", ++ ], ++) ++ ++go_binary( ++ name = "server", ++ embed = [":server_lib"], ++ visibility = ["//visibility:public"], ++) +diff -urN a/examples/features/observability/client/BUILD.bazel b/examples/features/observability/client/BUILD.bazel +--- a/examples/features/observability/client/BUILD.bazel 1970-01-01 00:00:00.000000000 +0000 ++++ b/examples/features/observability/client/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000 +@@ -0,0 +1,20 @@ ++load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library") ++ ++go_library( ++ name = "client_lib", ++ srcs = ["main.go"], ++ importpath = "google.golang.org/grpc/examples/features/observability/client", ++ visibility = ["//visibility:private"], ++ deps = [ ++ "//:grpc", ++ "//credentials/insecure", ++ "//examples/helloworld/helloworld", ++ "//gcp/observability", ++ ], ++) ++ ++go_binary( ++ name = "client", ++ embed = [":client_lib"], ++ visibility = ["//visibility:public"], ++) +diff -urN a/examples/features/observability/server/BUILD.bazel b/examples/features/observability/server/BUILD.bazel +--- a/examples/features/observability/server/BUILD.bazel 1970-01-01 00:00:00.000000000 +0000 ++++ b/examples/features/observability/server/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000 +@@ -0,0 +1,19 @@ ++load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library") ++ ++go_library( ++ name = "server_lib", ++ srcs = ["main.go"], ++ importpath = "google.golang.org/grpc/examples/features/observability/server", ++ visibility = ["//visibility:private"], ++ deps = [ ++ "//:grpc", ++ "//examples/helloworld/helloworld", ++ "//gcp/observability", ++ ], ++) ++ ++go_binary( ++ name = "server", ++ embed = [":server_lib"], ++ visibility = ["//visibility:public"], ++) +diff -urN a/examples/features/orca/client/BUILD.bazel b/examples/features/orca/client/BUILD.bazel +--- a/examples/features/orca/client/BUILD.bazel 1970-01-01 00:00:00.000000000 +0000 ++++ b/examples/features/orca/client/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000 +@@ -0,0 +1,23 @@ ++load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library") ++ ++go_library( ++ name = "client_lib", ++ srcs = ["main.go"], ++ importpath = "google.golang.org/grpc/examples/features/orca/client", ++ visibility = ["//visibility:private"], ++ deps = [ ++ "//:grpc", ++ "//balancer", ++ "//connectivity", ++ "//credentials/insecure", ++ "//examples/features/proto/echo", ++ "//orca", ++ "@com_github_cncf_xds_go//xds/data/orca/v3:go_default_library", ++ ], ++) ++ ++go_binary( ++ name = "client", ++ embed = [":client_lib"], ++ visibility = ["//visibility:public"], ++) +diff -urN a/examples/features/orca/server/BUILD.bazel b/examples/features/orca/server/BUILD.bazel +--- a/examples/features/orca/server/BUILD.bazel 1970-01-01 00:00:00.000000000 +0000 ++++ b/examples/features/orca/server/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000 +@@ -0,0 +1,22 @@ ++load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library") ++ ++go_library( ++ name = "server_lib", ++ srcs = ["main.go"], ++ importpath = "google.golang.org/grpc/examples/features/orca/server", ++ visibility = ["//visibility:private"], ++ deps = [ ++ "//:grpc", ++ "//codes", ++ "//examples/features/proto/echo", ++ "//internal", ++ "//orca", ++ "//status", ++ ], ++) ++ ++go_binary( ++ name = "server", ++ embed = [":server_lib"], ++ visibility = ["//visibility:public"], ++) +diff -urN a/examples/features/proto/echo/BUILD.bazel b/examples/features/proto/echo/BUILD.bazel +--- a/examples/features/proto/echo/BUILD.bazel 1970-01-01 00:00:00.000000000 +0000 ++++ b/examples/features/proto/echo/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000 +@@ -0,0 +1,24 @@ ++load("@io_bazel_rules_go//go:def.bzl", "go_library") ++ ++go_library( ++ name = "echo", ++ srcs = [ ++ "echo.pb.go", ++ "echo_grpc.pb.go", ++ ], ++ importpath = "google.golang.org/grpc/examples/features/proto/echo", ++ visibility = ["//visibility:public"], ++ deps = [ ++ "//:grpc", ++ "//codes", ++ "//status", ++ "@org_golang_google_protobuf//reflect/protoreflect:go_default_library", ++ "@org_golang_google_protobuf//runtime/protoimpl:go_default_library", ++ ], ++) ++ ++alias( ++ name = "go_default_library", ++ actual = ":echo", ++ visibility = ["//visibility:public"], ++) +diff -urN a/examples/features/reflection/server/BUILD.bazel b/examples/features/reflection/server/BUILD.bazel +--- a/examples/features/reflection/server/BUILD.bazel 1970-01-01 00:00:00.000000000 +0000 ++++ b/examples/features/reflection/server/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000 +@@ -0,0 +1,20 @@ ++load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library") ++ ++go_library( ++ name = "server_lib", ++ srcs = ["main.go"], ++ importpath = "google.golang.org/grpc/examples/features/reflection/server", ++ visibility = ["//visibility:private"], ++ deps = [ ++ "//:grpc", ++ "//examples/features/proto/echo", ++ "//examples/helloworld/helloworld", ++ "//reflection", ++ ], ++) ++ ++go_binary( ++ name = "server", ++ embed = [":server_lib"], ++ visibility = ["//visibility:public"], ++) +diff -urN a/examples/features/retry/client/BUILD.bazel b/examples/features/retry/client/BUILD.bazel +--- a/examples/features/retry/client/BUILD.bazel 1970-01-01 00:00:00.000000000 +0000 ++++ b/examples/features/retry/client/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000 +@@ -0,0 +1,19 @@ ++load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library") ++ ++go_library( ++ name = "client_lib", ++ srcs = ["main.go"], ++ importpath = "google.golang.org/grpc/examples/features/retry/client", ++ visibility = ["//visibility:private"], ++ deps = [ ++ "//:grpc", ++ "//credentials/insecure", ++ "//examples/features/proto/echo", ++ ], ++) ++ ++go_binary( ++ name = "client", ++ embed = [":client_lib"], ++ visibility = ["//visibility:public"], ++) +diff -urN a/examples/features/retry/server/BUILD.bazel b/examples/features/retry/server/BUILD.bazel +--- a/examples/features/retry/server/BUILD.bazel 1970-01-01 00:00:00.000000000 +0000 ++++ b/examples/features/retry/server/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000 +@@ -0,0 +1,20 @@ ++load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library") ++ ++go_library( ++ name = "server_lib", ++ srcs = ["main.go"], ++ importpath = "google.golang.org/grpc/examples/features/retry/server", ++ visibility = ["//visibility:private"], ++ deps = [ ++ "//:grpc", ++ "//codes", ++ "//examples/features/proto/echo", ++ "//status", ++ ], ++) ++ ++go_binary( ++ name = "server", ++ embed = [":server_lib"], ++ visibility = ["//visibility:public"], ++) +diff -urN a/examples/features/stats_monitoring/client/BUILD.bazel b/examples/features/stats_monitoring/client/BUILD.bazel +--- a/examples/features/stats_monitoring/client/BUILD.bazel 1970-01-01 00:00:00.000000000 +0000 ++++ b/examples/features/stats_monitoring/client/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000 +@@ -0,0 +1,20 @@ ++load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library") ++ ++go_library( ++ name = "client_lib", ++ srcs = ["main.go"], ++ importpath = "google.golang.org/grpc/examples/features/stats_monitoring/client", ++ visibility = ["//visibility:private"], ++ deps = [ ++ "//:grpc", ++ "//credentials/insecure", ++ "//examples/features/proto/echo", ++ "//examples/features/stats_monitoring/statshandler", ++ ], ++) ++ ++go_binary( ++ name = "client", ++ embed = [":client_lib"], ++ visibility = ["//visibility:public"], ++) +diff -urN a/examples/features/stats_monitoring/server/BUILD.bazel b/examples/features/stats_monitoring/server/BUILD.bazel +--- a/examples/features/stats_monitoring/server/BUILD.bazel 1970-01-01 00:00:00.000000000 +0000 ++++ b/examples/features/stats_monitoring/server/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000 +@@ -0,0 +1,19 @@ ++load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library") ++ ++go_library( ++ name = "server_lib", ++ srcs = ["main.go"], ++ importpath = "google.golang.org/grpc/examples/features/stats_monitoring/server", ++ visibility = ["//visibility:private"], ++ deps = [ ++ "//:grpc", ++ "//examples/features/proto/echo", ++ "//examples/features/stats_monitoring/statshandler", ++ ], ++) ++ ++go_binary( ++ name = "server", ++ embed = [":server_lib"], ++ visibility = ["//visibility:public"], ++) +diff -urN a/examples/features/stats_monitoring/statshandler/BUILD.bazel b/examples/features/stats_monitoring/statshandler/BUILD.bazel +--- a/examples/features/stats_monitoring/statshandler/BUILD.bazel 1970-01-01 00:00:00.000000000 +0000 ++++ b/examples/features/stats_monitoring/statshandler/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000 +@@ -0,0 +1,15 @@ ++load("@io_bazel_rules_go//go:def.bzl", "go_library") ++ ++go_library( ++ name = "statshandler", ++ srcs = ["handler.go"], ++ importpath = "google.golang.org/grpc/examples/features/stats_monitoring/statshandler", ++ visibility = ["//visibility:public"], ++ deps = ["//stats"], ++) ++ ++alias( ++ name = "go_default_library", ++ actual = ":statshandler", ++ visibility = ["//visibility:public"], ++) +diff -urN a/examples/features/unix_abstract/client/BUILD.bazel b/examples/features/unix_abstract/client/BUILD.bazel +--- a/examples/features/unix_abstract/client/BUILD.bazel 1970-01-01 00:00:00.000000000 +0000 ++++ b/examples/features/unix_abstract/client/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000 +@@ -0,0 +1,27 @@ ++load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library") ++ ++go_library( ++ name = "client_lib", ++ srcs = ["main.go"], ++ importpath = "google.golang.org/grpc/examples/features/unix_abstract/client", ++ visibility = ["//visibility:private"], ++ deps = select({ ++ "@io_bazel_rules_go//go/platform:android": [ ++ "//:grpc", ++ "//credentials/insecure", ++ "//examples/features/proto/echo", ++ ], ++ "@io_bazel_rules_go//go/platform:linux": [ ++ "//:grpc", ++ "//credentials/insecure", ++ "//examples/features/proto/echo", ++ ], ++ "//conditions:default": [], ++ }), ++) ++ ++go_binary( ++ name = "client", ++ embed = [":client_lib"], ++ visibility = ["//visibility:public"], ++) +diff -urN a/examples/features/unix_abstract/server/BUILD.bazel b/examples/features/unix_abstract/server/BUILD.bazel +--- a/examples/features/unix_abstract/server/BUILD.bazel 1970-01-01 00:00:00.000000000 +0000 ++++ b/examples/features/unix_abstract/server/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000 +@@ -0,0 +1,25 @@ ++load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library") ++ ++go_library( ++ name = "server_lib", ++ srcs = ["main.go"], ++ importpath = "google.golang.org/grpc/examples/features/unix_abstract/server", ++ visibility = ["//visibility:private"], ++ deps = select({ ++ "@io_bazel_rules_go//go/platform:android": [ ++ "//:grpc", ++ "//examples/features/proto/echo", ++ ], ++ "@io_bazel_rules_go//go/platform:linux": [ ++ "//:grpc", ++ "//examples/features/proto/echo", ++ ], ++ "//conditions:default": [], ++ }), ++) ++ ++go_binary( ++ name = "server", ++ embed = [":server_lib"], ++ visibility = ["//visibility:public"], ++) +diff -urN a/examples/features/wait_for_ready/BUILD.bazel b/examples/features/wait_for_ready/BUILD.bazel +--- a/examples/features/wait_for_ready/BUILD.bazel 1970-01-01 00:00:00.000000000 +0000 ++++ b/examples/features/wait_for_ready/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000 +@@ -0,0 +1,21 @@ ++load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library") ++ ++go_library( ++ name = "wait_for_ready_lib", ++ srcs = ["main.go"], ++ importpath = "google.golang.org/grpc/examples/features/wait_for_ready", ++ visibility = ["//visibility:private"], ++ deps = [ ++ "//:grpc", ++ "//codes", ++ "//credentials/insecure", ++ "//examples/features/proto/echo", ++ "//status", ++ ], ++) ++ ++go_binary( ++ name = "wait_for_ready", ++ embed = [":wait_for_ready_lib"], ++ visibility = ["//visibility:public"], ++) +diff -urN a/examples/features/xds/client/BUILD.bazel b/examples/features/xds/client/BUILD.bazel +--- a/examples/features/xds/client/BUILD.bazel 1970-01-01 00:00:00.000000000 +0000 ++++ b/examples/features/xds/client/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000 +@@ -0,0 +1,21 @@ ++load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library") ++ ++go_library( ++ name = "client_lib", ++ srcs = ["main.go"], ++ importpath = "google.golang.org/grpc/examples/features/xds/client", ++ visibility = ["//visibility:private"], ++ deps = [ ++ "//:grpc", ++ "//credentials/insecure", ++ "//credentials/xds", ++ "//examples/helloworld/helloworld", ++ "//xds", ++ ], ++) ++ ++go_binary( ++ name = "client", ++ embed = [":client_lib"], ++ visibility = ["//visibility:public"], ++) +diff -urN a/examples/features/xds/server/BUILD.bazel b/examples/features/xds/server/BUILD.bazel +--- a/examples/features/xds/server/BUILD.bazel 1970-01-01 00:00:00.000000000 +0000 ++++ b/examples/features/xds/server/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000 +@@ -0,0 +1,23 @@ ++load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library") ++ ++go_library( ++ name = "server_lib", ++ srcs = ["main.go"], ++ importpath = "google.golang.org/grpc/examples/features/xds/server", ++ visibility = ["//visibility:private"], ++ deps = [ ++ "//:grpc", ++ "//credentials/insecure", ++ "//credentials/xds", ++ "//examples/helloworld/helloworld", ++ "//health", ++ "//health/grpc_health_v1", ++ "//xds", ++ ], ++) ++ ++go_binary( ++ name = "server", ++ embed = [":server_lib"], ++ visibility = ["//visibility:public"], ++) +diff -urN a/examples/helloworld/greeter_client/BUILD.bazel b/examples/helloworld/greeter_client/BUILD.bazel +--- a/examples/helloworld/greeter_client/BUILD.bazel 1970-01-01 00:00:00.000000000 +0000 ++++ b/examples/helloworld/greeter_client/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000 +@@ -0,0 +1,19 @@ ++load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library") ++ ++go_library( ++ name = "greeter_client_lib", ++ srcs = ["main.go"], ++ importpath = "google.golang.org/grpc/examples/helloworld/greeter_client", ++ visibility = ["//visibility:private"], ++ deps = [ ++ "//:grpc", ++ "//credentials/insecure", ++ "//examples/helloworld/helloworld", ++ ], ++) ++ ++go_binary( ++ name = "greeter_client", ++ embed = [":greeter_client_lib"], ++ visibility = ["//visibility:public"], ++) +diff -urN a/examples/helloworld/greeter_server/BUILD.bazel b/examples/helloworld/greeter_server/BUILD.bazel +--- a/examples/helloworld/greeter_server/BUILD.bazel 1970-01-01 00:00:00.000000000 +0000 ++++ b/examples/helloworld/greeter_server/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000 +@@ -0,0 +1,18 @@ ++load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library") ++ ++go_library( ++ name = "greeter_server_lib", ++ srcs = ["main.go"], ++ importpath = "google.golang.org/grpc/examples/helloworld/greeter_server", ++ visibility = ["//visibility:private"], ++ deps = [ ++ "//:grpc", ++ "//examples/helloworld/helloworld", ++ ], ++) ++ ++go_binary( ++ name = "greeter_server", ++ embed = [":greeter_server_lib"], ++ visibility = ["//visibility:public"], ++) +diff -urN a/examples/helloworld/helloworld/BUILD.bazel b/examples/helloworld/helloworld/BUILD.bazel +--- a/examples/helloworld/helloworld/BUILD.bazel 1970-01-01 00:00:00.000000000 +0000 ++++ b/examples/helloworld/helloworld/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000 +@@ -0,0 +1,24 @@ ++load("@io_bazel_rules_go//go:def.bzl", "go_library") ++ ++go_library( ++ name = "helloworld", ++ srcs = [ ++ "helloworld.pb.go", ++ "helloworld_grpc.pb.go", ++ ], ++ importpath = "google.golang.org/grpc/examples/helloworld/helloworld", ++ visibility = ["//visibility:public"], ++ deps = [ ++ "//:grpc", ++ "//codes", ++ "//status", ++ "@org_golang_google_protobuf//reflect/protoreflect:go_default_library", ++ "@org_golang_google_protobuf//runtime/protoimpl:go_default_library", ++ ], ++) ++ ++alias( ++ name = "go_default_library", ++ actual = ":helloworld", ++ visibility = ["//visibility:public"], ++) +diff -urN a/examples/route_guide/client/BUILD.bazel b/examples/route_guide/client/BUILD.bazel +--- a/examples/route_guide/client/BUILD.bazel 1970-01-01 00:00:00.000000000 +0000 ++++ b/examples/route_guide/client/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000 +@@ -0,0 +1,21 @@ ++load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library") ++ ++go_library( ++ name = "client_lib", ++ srcs = ["client.go"], ++ importpath = "google.golang.org/grpc/examples/route_guide/client", ++ visibility = ["//visibility:private"], ++ deps = [ ++ "//:grpc", ++ "//credentials", ++ "//credentials/insecure", ++ "//examples/data", ++ "//examples/route_guide/routeguide", ++ ], ++) ++ ++go_binary( ++ name = "client", ++ embed = [":client_lib"], ++ visibility = ["//visibility:public"], ++) +diff -urN a/examples/route_guide/routeguide/BUILD.bazel b/examples/route_guide/routeguide/BUILD.bazel +--- a/examples/route_guide/routeguide/BUILD.bazel 1970-01-01 00:00:00.000000000 +0000 ++++ b/examples/route_guide/routeguide/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000 +@@ -0,0 +1,24 @@ ++load("@io_bazel_rules_go//go:def.bzl", "go_library") ++ ++go_library( ++ name = "routeguide", ++ srcs = [ ++ "route_guide.pb.go", ++ "route_guide_grpc.pb.go", ++ ], ++ importpath = "google.golang.org/grpc/examples/route_guide/routeguide", ++ visibility = ["//visibility:public"], ++ deps = [ ++ "//:grpc", ++ "//codes", ++ "//status", ++ "@org_golang_google_protobuf//reflect/protoreflect:go_default_library", ++ "@org_golang_google_protobuf//runtime/protoimpl:go_default_library", ++ ], ++) ++ ++alias( ++ name = "go_default_library", ++ actual = ":routeguide", ++ visibility = ["//visibility:public"], ++) +diff -urN a/examples/route_guide/server/BUILD.bazel b/examples/route_guide/server/BUILD.bazel +--- a/examples/route_guide/server/BUILD.bazel 1970-01-01 00:00:00.000000000 +0000 ++++ b/examples/route_guide/server/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000 +@@ -0,0 +1,21 @@ ++load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library") ++ ++go_library( ++ name = "server_lib", ++ srcs = ["server.go"], ++ importpath = "google.golang.org/grpc/examples/route_guide/server", ++ visibility = ["//visibility:private"], ++ deps = [ ++ "//:grpc", ++ "//credentials", ++ "//examples/data", ++ "//examples/route_guide/routeguide", ++ "@com_github_golang_protobuf//proto:go_default_library", ++ ], ++) ++ ++go_binary( ++ name = "server", ++ embed = [":server_lib"], ++ visibility = ["//visibility:public"], ++) +diff -urN a/gcp/observability/BUILD.bazel b/gcp/observability/BUILD.bazel +--- a/gcp/observability/BUILD.bazel 1970-01-01 00:00:00.000000000 +0000 ++++ b/gcp/observability/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000 +@@ -0,0 +1,64 @@ ++load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test") ++ ++go_library( ++ name = "observability", ++ srcs = [ ++ "config.go", ++ "exporting.go", ++ "logging.go", ++ "observability.go", ++ "opencensus.go", ++ ], ++ importpath = "google.golang.org/grpc/gcp/observability", ++ visibility = ["//visibility:public"], ++ deps = [ ++ "//:grpc", ++ "//binarylog/grpc_binarylog_v1", ++ "//codes", ++ "//grpclog", ++ "//internal", ++ "//internal/binarylog", ++ "//internal/envconfig", ++ "//internal/grpcutil", ++ "//stats/opencensus", ++ "@com_github_google_uuid//:go_default_library", ++ "@com_google_cloud_go_logging//:go_default_library", ++ "@io_opencensus_go//stats/view:go_default_library", ++ "@io_opencensus_go//trace:go_default_library", ++ "@io_opencensus_go_contrib_exporter_stackdriver//:go_default_library", ++ "@io_opencensus_go_contrib_exporter_stackdriver//monitoredresource:go_default_library", ++ "@org_golang_google_api//option:go_default_library", ++ "@org_golang_x_oauth2//google:go_default_library", ++ ], ++) ++ ++alias( ++ name = "go_default_library", ++ actual = ":observability", ++ visibility = ["//visibility:public"], ++) ++ ++go_test( ++ name = "observability_test", ++ srcs = [ ++ "logging_test.go", ++ "observability_test.go", ++ ], ++ embed = [":observability"], ++ deps = [ ++ "//binarylog/grpc_binarylog_v1", ++ "//internal/envconfig", ++ "//internal/grpcsync", ++ "//internal/grpctest", ++ "//internal/leakcheck", ++ "//internal/stubserver", ++ "//internal/testutils", ++ "//interop/grpc_testing", ++ "//metadata", ++ "@com_github_google_go_cmp//cmp:go_default_library", ++ "@com_github_google_go_cmp//cmp/cmpopts:go_default_library", ++ "@com_google_cloud_go_logging//:go_default_library", ++ "@io_opencensus_go//stats/view:go_default_library", ++ "@io_opencensus_go//trace:go_default_library", ++ ], ++) +diff -urN a/grpclog/BUILD.bazel b/grpclog/BUILD.bazel +--- a/grpclog/BUILD.bazel 1970-01-01 00:00:00.000000000 +0000 ++++ b/grpclog/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000 +@@ -0,0 +1,26 @@ ++load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test") ++ ++go_library( ++ name = "grpclog", ++ srcs = [ ++ "component.go", ++ "grpclog.go", ++ "logger.go", ++ "loggerv2.go", ++ ], ++ importpath = "google.golang.org/grpc/grpclog", ++ visibility = ["//visibility:public"], ++ deps = ["//internal/grpclog"], ++) ++ ++alias( ++ name = "go_default_library", ++ actual = ":grpclog", ++ visibility = ["//visibility:public"], ++) ++ ++go_test( ++ name = "grpclog_test", ++ srcs = ["loggerv2_test.go"], ++ embed = [":grpclog"], ++) +diff -urN a/grpclog/glogger/BUILD.bazel b/grpclog/glogger/BUILD.bazel +--- a/grpclog/glogger/BUILD.bazel 1970-01-01 00:00:00.000000000 +0000 ++++ b/grpclog/glogger/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000 +@@ -0,0 +1,18 @@ ++load("@io_bazel_rules_go//go:def.bzl", "go_library") ++ ++go_library( ++ name = "glogger", ++ srcs = ["glogger.go"], ++ importpath = "google.golang.org/grpc/grpclog/glogger", ++ visibility = ["//visibility:public"], ++ deps = [ ++ "//grpclog", ++ "@com_github_golang_glog//:go_default_library", ++ ], ++) ++ ++alias( ++ name = "go_default_library", ++ actual = ":glogger", ++ visibility = ["//visibility:public"], ++) +diff -urN a/health/BUILD.bazel b/health/BUILD.bazel +--- a/health/BUILD.bazel 1970-01-01 00:00:00.000000000 +0000 ++++ b/health/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000 +@@ -0,0 +1,44 @@ ++load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test") ++ ++go_library( ++ name = "health", ++ srcs = [ ++ "client.go", ++ "logging.go", ++ "server.go", ++ ], ++ importpath = "google.golang.org/grpc/health", ++ visibility = ["//visibility:public"], ++ deps = [ ++ "//:grpc", ++ "//codes", ++ "//connectivity", ++ "//grpclog", ++ "//health/grpc_health_v1", ++ "//internal", ++ "//internal/backoff", ++ "//status", ++ ], ++) ++ ++alias( ++ name = "go_default_library", ++ actual = ":health", ++ visibility = ["//visibility:public"], ++) ++ ++go_test( ++ name = "health_test", ++ srcs = [ ++ "client_test.go", ++ "server_internal_test.go", ++ "server_test.go", ++ ], ++ embed = [":health"], ++ deps = [ ++ "//:grpc", ++ "//connectivity", ++ "//health/grpc_health_v1", ++ "//internal/grpctest", ++ ], ++) +diff -urN a/health/grpc_health_v1/BUILD.bazel b/health/grpc_health_v1/BUILD.bazel +--- a/health/grpc_health_v1/BUILD.bazel 1970-01-01 00:00:00.000000000 +0000 ++++ b/health/grpc_health_v1/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000 +@@ -0,0 +1,24 @@ ++load("@io_bazel_rules_go//go:def.bzl", "go_library") ++ ++go_library( ++ name = "grpc_health_v1", ++ srcs = [ ++ "health.pb.go", ++ "health_grpc.pb.go", ++ ], ++ importpath = "google.golang.org/grpc/health/grpc_health_v1", ++ visibility = ["//visibility:public"], ++ deps = [ ++ "//:grpc", ++ "//codes", ++ "//status", ++ "@org_golang_google_protobuf//reflect/protoreflect:go_default_library", ++ "@org_golang_google_protobuf//runtime/protoimpl:go_default_library", ++ ], ++) ++ ++alias( ++ name = "go_default_library", ++ actual = ":grpc_health_v1", ++ visibility = ["//visibility:public"], ++) +diff -urN a/internal/admin/BUILD.bazel b/internal/admin/BUILD.bazel +--- a/internal/admin/BUILD.bazel 1970-01-01 00:00:00.000000000 +0000 ++++ b/internal/admin/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000 +@@ -0,0 +1,15 @@ ++load("@io_bazel_rules_go//go:def.bzl", "go_library") ++ ++go_library( ++ name = "admin", ++ srcs = ["admin.go"], ++ importpath = "google.golang.org/grpc/internal/admin", ++ visibility = ["//:__subpackages__"], ++ deps = ["//:grpc"], ++) ++ ++alias( ++ name = "go_default_library", ++ actual = ":admin", ++ visibility = ["//:__subpackages__"], ++) +diff -urN a/internal/backoff/BUILD.bazel b/internal/backoff/BUILD.bazel +--- a/internal/backoff/BUILD.bazel 1970-01-01 00:00:00.000000000 +0000 ++++ b/internal/backoff/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000 +@@ -0,0 +1,18 @@ ++load("@io_bazel_rules_go//go:def.bzl", "go_library") ++ ++go_library( ++ name = "backoff", ++ srcs = ["backoff.go"], ++ importpath = "google.golang.org/grpc/internal/backoff", ++ visibility = ["//:__subpackages__"], ++ deps = [ ++ "//backoff", ++ "//internal/grpcrand", ++ ], ++) ++ ++alias( ++ name = "go_default_library", ++ actual = ":backoff", ++ visibility = ["//:__subpackages__"], ++) +diff -urN a/internal/balancer/gracefulswitch/BUILD.bazel b/internal/balancer/gracefulswitch/BUILD.bazel +--- a/internal/balancer/gracefulswitch/BUILD.bazel 1970-01-01 00:00:00.000000000 +0000 ++++ b/internal/balancer/gracefulswitch/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000 +@@ -0,0 +1,37 @@ ++load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test") ++ ++go_library( ++ name = "gracefulswitch", ++ srcs = ["gracefulswitch.go"], ++ importpath = "google.golang.org/grpc/internal/balancer/gracefulswitch", ++ visibility = ["//:__subpackages__"], ++ deps = [ ++ "//balancer", ++ "//balancer/base", ++ "//connectivity", ++ "//resolver", ++ ], ++) ++ ++alias( ++ name = "go_default_library", ++ actual = ":gracefulswitch", ++ visibility = ["//:__subpackages__"], ++) ++ ++go_test( ++ name = "gracefulswitch_test", ++ srcs = ["gracefulswitch_test.go"], ++ embed = [":gracefulswitch"], ++ deps = [ ++ "//balancer", ++ "//connectivity", ++ "//internal/grpcsync", ++ "//internal/grpctest", ++ "//internal/testutils", ++ "//resolver", ++ "//serviceconfig", ++ "@com_github_google_go_cmp//cmp:go_default_library", ++ "@com_github_google_go_cmp//cmp/cmpopts:go_default_library", ++ ], ++) +diff -urN a/internal/balancer/nop/BUILD.bazel b/internal/balancer/nop/BUILD.bazel +--- a/internal/balancer/nop/BUILD.bazel 1970-01-01 00:00:00.000000000 +0000 ++++ b/internal/balancer/nop/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000 +@@ -0,0 +1,19 @@ ++load("@io_bazel_rules_go//go:def.bzl", "go_library") ++ ++go_library( ++ name = "nop", ++ srcs = ["nop.go"], ++ importpath = "google.golang.org/grpc/internal/balancer/nop", ++ visibility = ["//:__subpackages__"], ++ deps = [ ++ "//balancer", ++ "//balancer/base", ++ "//connectivity", ++ ], ++) ++ ++alias( ++ name = "go_default_library", ++ actual = ":nop", ++ visibility = ["//:__subpackages__"], ++) +diff -urN a/internal/balancer/stub/BUILD.bazel b/internal/balancer/stub/BUILD.bazel +--- a/internal/balancer/stub/BUILD.bazel 1970-01-01 00:00:00.000000000 +0000 ++++ b/internal/balancer/stub/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000 +@@ -0,0 +1,18 @@ ++load("@io_bazel_rules_go//go:def.bzl", "go_library") ++ ++go_library( ++ name = "stub", ++ srcs = ["stub.go"], ++ importpath = "google.golang.org/grpc/internal/balancer/stub", ++ visibility = ["//:__subpackages__"], ++ deps = [ ++ "//balancer", ++ "//serviceconfig", ++ ], ++) ++ ++alias( ++ name = "go_default_library", ++ actual = ":stub", ++ visibility = ["//:__subpackages__"], ++) +diff -urN a/internal/balancergroup/BUILD.bazel b/internal/balancergroup/BUILD.bazel +--- a/internal/balancergroup/BUILD.bazel 1970-01-01 00:00:00.000000000 +0000 ++++ b/internal/balancergroup/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000 +@@ -0,0 +1,45 @@ ++load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test") ++ ++go_library( ++ name = "balancergroup", ++ srcs = [ ++ "balancergroup.go", ++ "balancerstateaggregator.go", ++ ], ++ importpath = "google.golang.org/grpc/internal/balancergroup", ++ visibility = ["//:__subpackages__"], ++ deps = [ ++ "//balancer", ++ "//connectivity", ++ "//internal/balancer/gracefulswitch", ++ "//internal/cache", ++ "//internal/grpclog", ++ "//resolver", ++ ], ++) ++ ++alias( ++ name = "go_default_library", ++ actual = ":balancergroup", ++ visibility = ["//:__subpackages__"], ++) ++ ++go_test( ++ name = "balancergroup_test", ++ srcs = ["balancergroup_test.go"], ++ embed = [":balancergroup"], ++ deps = [ ++ "//:grpc", ++ "//balancer", ++ "//balancer/roundrobin", ++ "//balancer/weightedtarget/weightedaggregator", ++ "//connectivity", ++ "//credentials/insecure", ++ "//internal/balancer/stub", ++ "//internal/channelz", ++ "//internal/grpctest", ++ "//internal/testutils", ++ "//resolver", ++ "@com_github_google_go_cmp//cmp:go_default_library", ++ ], ++) +diff -urN a/internal/balancerload/BUILD.bazel b/internal/balancerload/BUILD.bazel +--- a/internal/balancerload/BUILD.bazel 1970-01-01 00:00:00.000000000 +0000 ++++ b/internal/balancerload/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000 +@@ -0,0 +1,15 @@ ++load("@io_bazel_rules_go//go:def.bzl", "go_library") ++ ++go_library( ++ name = "balancerload", ++ srcs = ["load.go"], ++ importpath = "google.golang.org/grpc/internal/balancerload", ++ visibility = ["//:__subpackages__"], ++ deps = ["//metadata"], ++) ++ ++alias( ++ name = "go_default_library", ++ actual = ":balancerload", ++ visibility = ["//:__subpackages__"], ++) +diff -urN a/internal/binarylog/BUILD.bazel b/internal/binarylog/BUILD.bazel +--- a/internal/binarylog/BUILD.bazel 1970-01-01 00:00:00.000000000 +0000 ++++ b/internal/binarylog/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000 +@@ -0,0 +1,48 @@ ++load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test") ++ ++go_library( ++ name = "binarylog", ++ srcs = [ ++ "binarylog.go", ++ "binarylog_testutil.go", ++ "env_config.go", ++ "method_logger.go", ++ "sink.go", ++ ], ++ importpath = "google.golang.org/grpc/internal/binarylog", ++ visibility = ["//:__subpackages__"], ++ deps = [ ++ "//binarylog/grpc_binarylog_v1", ++ "//grpclog", ++ "//internal/grpcutil", ++ "//metadata", ++ "//status", ++ "@com_github_golang_protobuf//proto:go_default_library", ++ "@com_github_golang_protobuf//ptypes:go_default_library", ++ ], ++) ++ ++alias( ++ name = "go_default_library", ++ actual = ":binarylog", ++ visibility = ["//:__subpackages__"], ++) ++ ++go_test( ++ name = "binarylog_test", ++ srcs = [ ++ "binarylog_test.go", ++ "env_config_test.go", ++ "method_logger_test.go", ++ "regexp_test.go", ++ ], ++ embed = [":binarylog"], ++ deps = [ ++ "//binarylog/grpc_binarylog_v1", ++ "//codes", ++ "//internal/grpctest", ++ "//status", ++ "@com_github_golang_protobuf//proto:go_default_library", ++ "@org_golang_google_protobuf//types/known/durationpb:go_default_library", ++ ], ++) +diff -urN a/internal/buffer/BUILD.bazel b/internal/buffer/BUILD.bazel +--- a/internal/buffer/BUILD.bazel 1970-01-01 00:00:00.000000000 +0000 ++++ b/internal/buffer/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000 +@@ -0,0 +1,21 @@ ++load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test") ++ ++go_library( ++ name = "buffer", ++ srcs = ["unbounded.go"], ++ importpath = "google.golang.org/grpc/internal/buffer", ++ visibility = ["//:__subpackages__"], ++) ++ ++alias( ++ name = "go_default_library", ++ actual = ":buffer", ++ visibility = ["//:__subpackages__"], ++) ++ ++go_test( ++ name = "buffer_test", ++ srcs = ["unbounded_test.go"], ++ embed = [":buffer"], ++ deps = ["//internal/grpctest"], ++) +diff -urN a/internal/BUILD.bazel b/internal/BUILD.bazel +--- a/internal/BUILD.bazel 1970-01-01 00:00:00.000000000 +0000 ++++ b/internal/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000 +@@ -0,0 +1,23 @@ ++load("@io_bazel_rules_go//go:def.bzl", "go_library") ++ ++go_library( ++ name = "internal", ++ srcs = [ ++ "internal.go", ++ "xds_handshake_cluster.go", ++ ], ++ importpath = "google.golang.org/grpc/internal", ++ visibility = ["//:__subpackages__"], ++ deps = [ ++ "//attributes", ++ "//connectivity", ++ "//resolver", ++ "//serviceconfig", ++ ], ++) ++ ++alias( ++ name = "go_default_library", ++ actual = ":internal", ++ visibility = ["//:__subpackages__"], ++) +diff -urN a/internal/cache/BUILD.bazel b/internal/cache/BUILD.bazel +--- a/internal/cache/BUILD.bazel 1970-01-01 00:00:00.000000000 +0000 ++++ b/internal/cache/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000 +@@ -0,0 +1,21 @@ ++load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test") ++ ++go_library( ++ name = "cache", ++ srcs = ["timeoutCache.go"], ++ importpath = "google.golang.org/grpc/internal/cache", ++ visibility = ["//:__subpackages__"], ++) ++ ++alias( ++ name = "go_default_library", ++ actual = ":cache", ++ visibility = ["//:__subpackages__"], ++) ++ ++go_test( ++ name = "cache_test", ++ srcs = ["timeoutCache_test.go"], ++ embed = [":cache"], ++ deps = ["//internal/grpctest"], ++) +diff -urN a/internal/channelz/BUILD.bazel b/internal/channelz/BUILD.bazel +--- a/internal/channelz/BUILD.bazel 1970-01-01 00:00:00.000000000 +0000 ++++ b/internal/channelz/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000 +@@ -0,0 +1,54 @@ ++load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test") ++ ++go_library( ++ name = "channelz", ++ srcs = [ ++ "funcs.go", ++ "id.go", ++ "logging.go", ++ "types.go", ++ "types_linux.go", ++ "types_nonlinux.go", ++ "util_linux.go", ++ "util_nonlinux.go", ++ ], ++ importpath = "google.golang.org/grpc/internal/channelz", ++ visibility = ["//:__subpackages__"], ++ deps = [ ++ "//connectivity", ++ "//credentials", ++ "//grpclog", ++ ] + select({ ++ "@io_bazel_rules_go//go/platform:android": [ ++ "@org_golang_x_sys//unix:go_default_library", ++ ], ++ "@io_bazel_rules_go//go/platform:linux": [ ++ "@org_golang_x_sys//unix:go_default_library", ++ ], ++ "//conditions:default": [], ++ }), ++) ++ ++alias( ++ name = "go_default_library", ++ actual = ":channelz", ++ visibility = ["//:__subpackages__"], ++) ++ ++go_test( ++ name = "channelz_test", ++ srcs = ["util_test.go"], ++ deps = select({ ++ "@io_bazel_rules_go//go/platform:android": [ ++ ":channelz", ++ "//internal/grpctest", ++ "@org_golang_x_sys//unix:go_default_library", ++ ], ++ "@io_bazel_rules_go//go/platform:linux": [ ++ ":channelz", ++ "//internal/grpctest", ++ "@org_golang_x_sys//unix:go_default_library", ++ ], ++ "//conditions:default": [], ++ }), ++) +diff -urN a/internal/credentials/BUILD.bazel b/internal/credentials/BUILD.bazel +--- a/internal/credentials/BUILD.bazel 1970-01-01 00:00:00.000000000 +0000 ++++ b/internal/credentials/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000 +@@ -0,0 +1,34 @@ ++load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test") ++ ++go_library( ++ name = "credentials", ++ srcs = [ ++ "credentials.go", ++ "spiffe.go", ++ "syscallconn.go", ++ "util.go", ++ ], ++ importpath = "google.golang.org/grpc/internal/credentials", ++ visibility = ["//:__subpackages__"], ++ deps = ["//grpclog"], ++) ++ ++alias( ++ name = "go_default_library", ++ actual = ":credentials", ++ visibility = ["//:__subpackages__"], ++) ++ ++go_test( ++ name = "credentials_test", ++ srcs = [ ++ "spiffe_test.go", ++ "syscallconn_test.go", ++ "util_test.go", ++ ], ++ embed = [":credentials"], ++ deps = [ ++ "//internal/grpctest", ++ "//testdata", ++ ], ++) +diff -urN a/internal/credentials/xds/BUILD.bazel b/internal/credentials/xds/BUILD.bazel +--- a/internal/credentials/xds/BUILD.bazel 1970-01-01 00:00:00.000000000 +0000 ++++ b/internal/credentials/xds/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000 +@@ -0,0 +1,28 @@ ++load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test") ++ ++go_library( ++ name = "xds", ++ srcs = ["handshake_info.go"], ++ importpath = "google.golang.org/grpc/internal/credentials/xds", ++ visibility = ["//:__subpackages__"], ++ deps = [ ++ "//attributes", ++ "//credentials/tls/certprovider", ++ "//internal", ++ "//internal/xds/matcher", ++ "//resolver", ++ ], ++) ++ ++alias( ++ name = "go_default_library", ++ actual = ":xds", ++ visibility = ["//:__subpackages__"], ++) ++ ++go_test( ++ name = "xds_test", ++ srcs = ["handshake_info_test.go"], ++ embed = [":xds"], ++ deps = ["//internal/xds/matcher"], ++) +diff -urN a/internal/envconfig/BUILD.bazel b/internal/envconfig/BUILD.bazel +--- a/internal/envconfig/BUILD.bazel 1970-01-01 00:00:00.000000000 +0000 ++++ b/internal/envconfig/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000 +@@ -0,0 +1,25 @@ ++load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test") ++ ++go_library( ++ name = "envconfig", ++ srcs = [ ++ "envconfig.go", ++ "observability.go", ++ "xds.go", ++ ], ++ importpath = "google.golang.org/grpc/internal/envconfig", ++ visibility = ["//:__subpackages__"], ++) ++ ++alias( ++ name = "go_default_library", ++ actual = ":envconfig", ++ visibility = ["//:__subpackages__"], ++) ++ ++go_test( ++ name = "envconfig_test", ++ srcs = ["envconfig_test.go"], ++ embed = [":envconfig"], ++ deps = ["//internal/grpctest"], ++) +diff -urN a/internal/googlecloud/BUILD.bazel b/internal/googlecloud/BUILD.bazel +--- a/internal/googlecloud/BUILD.bazel 1970-01-01 00:00:00.000000000 +0000 ++++ b/internal/googlecloud/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000 +@@ -0,0 +1,29 @@ ++load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test") ++ ++go_library( ++ name = "googlecloud", ++ srcs = [ ++ "googlecloud.go", ++ "manufacturer.go", ++ "manufacturer_linux.go", ++ "manufacturer_windows.go", ++ ], ++ importpath = "google.golang.org/grpc/internal/googlecloud", ++ visibility = ["//:__subpackages__"], ++ deps = [ ++ "//grpclog", ++ "//internal/grpclog", ++ ], ++) ++ ++alias( ++ name = "go_default_library", ++ actual = ":googlecloud", ++ visibility = ["//:__subpackages__"], ++) ++ ++go_test( ++ name = "googlecloud_test", ++ srcs = ["googlecloud_test.go"], ++ embed = [":googlecloud"], ++) +diff -urN a/internal/grpclog/BUILD.bazel b/internal/grpclog/BUILD.bazel +--- a/internal/grpclog/BUILD.bazel 1970-01-01 00:00:00.000000000 +0000 ++++ b/internal/grpclog/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000 +@@ -0,0 +1,17 @@ ++load("@io_bazel_rules_go//go:def.bzl", "go_library") ++ ++go_library( ++ name = "grpclog", ++ srcs = [ ++ "grpclog.go", ++ "prefixLogger.go", ++ ], ++ importpath = "google.golang.org/grpc/internal/grpclog", ++ visibility = ["//:__subpackages__"], ++) ++ ++alias( ++ name = "go_default_library", ++ actual = ":grpclog", ++ visibility = ["//:__subpackages__"], ++) +diff -urN a/internal/grpcrand/BUILD.bazel b/internal/grpcrand/BUILD.bazel +--- a/internal/grpcrand/BUILD.bazel 1970-01-01 00:00:00.000000000 +0000 ++++ b/internal/grpcrand/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000 +@@ -0,0 +1,14 @@ ++load("@io_bazel_rules_go//go:def.bzl", "go_library") ++ ++go_library( ++ name = "grpcrand", ++ srcs = ["grpcrand.go"], ++ importpath = "google.golang.org/grpc/internal/grpcrand", ++ visibility = ["//:__subpackages__"], ++) ++ ++alias( ++ name = "go_default_library", ++ actual = ":grpcrand", ++ visibility = ["//:__subpackages__"], ++) +diff -urN a/internal/grpcsync/BUILD.bazel b/internal/grpcsync/BUILD.bazel +--- a/internal/grpcsync/BUILD.bazel 1970-01-01 00:00:00.000000000 +0000 ++++ b/internal/grpcsync/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000 +@@ -0,0 +1,35 @@ ++load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test") ++ ++go_library( ++ name = "grpcsync", ++ srcs = [ ++ "callback_serializer.go", ++ "event.go", ++ "oncefunc.go", ++ "pubsub.go", ++ ], ++ importpath = "google.golang.org/grpc/internal/grpcsync", ++ visibility = ["//:__subpackages__"], ++ deps = ["//internal/buffer"], ++) ++ ++alias( ++ name = "go_default_library", ++ actual = ":grpcsync", ++ visibility = ["//:__subpackages__"], ++) ++ ++go_test( ++ name = "grpcsync_test", ++ srcs = [ ++ "callback_serializer_test.go", ++ "event_test.go", ++ "oncefunc_test.go", ++ "pubsub_test.go", ++ ], ++ embed = [":grpcsync"], ++ deps = [ ++ "//internal/grpctest", ++ "@com_github_google_go_cmp//cmp:go_default_library", ++ ], ++) +diff -urN a/internal/grpctest/BUILD.bazel b/internal/grpctest/BUILD.bazel +--- a/internal/grpctest/BUILD.bazel 1970-01-01 00:00:00.000000000 +0000 ++++ b/internal/grpctest/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000 +@@ -0,0 +1,35 @@ ++load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test") ++ ++go_library( ++ name = "grpctest", ++ srcs = [ ++ "grpctest.go", ++ "tlogger.go", ++ ], ++ importpath = "google.golang.org/grpc/internal/grpctest", ++ visibility = ["//:__subpackages__"], ++ deps = [ ++ "//grpclog", ++ "//internal/leakcheck", ++ ], ++) ++ ++alias( ++ name = "go_default_library", ++ actual = ":grpctest", ++ visibility = ["//:__subpackages__"], ++) ++ ++go_test( ++ name = "grpctest_test", ++ srcs = [ ++ "example_test.go", ++ "grpctest_test.go", ++ "tlogger_test.go", ++ ], ++ embed = [":grpctest"], ++ deps = [ ++ "//grpclog", ++ "//internal/grpclog", ++ ], ++) +diff -urN a/internal/grpcutil/BUILD.bazel b/internal/grpcutil/BUILD.bazel +--- a/internal/grpcutil/BUILD.bazel 1970-01-01 00:00:00.000000000 +0000 ++++ b/internal/grpcutil/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000 +@@ -0,0 +1,37 @@ ++load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test") ++ ++go_library( ++ name = "grpcutil", ++ srcs = [ ++ "compressor.go", ++ "encode_duration.go", ++ "grpcutil.go", ++ "metadata.go", ++ "method.go", ++ "regex.go", ++ ], ++ importpath = "google.golang.org/grpc/internal/grpcutil", ++ visibility = ["//:__subpackages__"], ++ deps = [ ++ "//internal/envconfig", ++ "//metadata", ++ ], ++) ++ ++alias( ++ name = "go_default_library", ++ actual = ":grpcutil", ++ visibility = ["//:__subpackages__"], ++) ++ ++go_test( ++ name = "grpcutil_test", ++ srcs = [ ++ "compressor_test.go", ++ "encode_duration_test.go", ++ "method_test.go", ++ "regex_test.go", ++ ], ++ embed = [":grpcutil"], ++ deps = ["//internal/envconfig"], ++) +diff -urN a/internal/hierarchy/BUILD.bazel b/internal/hierarchy/BUILD.bazel +--- a/internal/hierarchy/BUILD.bazel 1970-01-01 00:00:00.000000000 +0000 ++++ b/internal/hierarchy/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000 +@@ -0,0 +1,26 @@ ++load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test") ++ ++go_library( ++ name = "hierarchy", ++ srcs = ["hierarchy.go"], ++ importpath = "google.golang.org/grpc/internal/hierarchy", ++ visibility = ["//:__subpackages__"], ++ deps = ["//resolver"], ++) ++ ++alias( ++ name = "go_default_library", ++ actual = ":hierarchy", ++ visibility = ["//:__subpackages__"], ++) ++ ++go_test( ++ name = "hierarchy_test", ++ srcs = ["hierarchy_test.go"], ++ embed = [":hierarchy"], ++ deps = [ ++ "//attributes", ++ "//resolver", ++ "@com_github_google_go_cmp//cmp:go_default_library", ++ ], ++) +diff -urN a/internal/idle/BUILD.bazel b/internal/idle/BUILD.bazel +--- a/internal/idle/BUILD.bazel 1970-01-01 00:00:00.000000000 +0000 ++++ b/internal/idle/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000 +@@ -0,0 +1,43 @@ ++load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test") ++ ++go_library( ++ name = "idle", ++ srcs = ["idle.go"], ++ importpath = "google.golang.org/grpc/internal/idle", ++ visibility = ["//:__subpackages__"], ++ deps = ["//grpclog"], ++) ++ ++alias( ++ name = "go_default_library", ++ actual = ":idle", ++ visibility = ["//:__subpackages__"], ++) ++ ++go_test( ++ name = "idle_test", ++ srcs = [ ++ "idle_e2e_test.go", ++ "idle_test.go", ++ ], ++ embed = [":idle"], ++ deps = [ ++ "//:grpc", ++ "//balancer", ++ "//balancer/roundrobin", ++ "//codes", ++ "//connectivity", ++ "//credentials/insecure", ++ "//grpclog", ++ "//internal", ++ "//internal/balancer/stub", ++ "//internal/channelz", ++ "//internal/grpctest", ++ "//internal/stubserver", ++ "//internal/testutils", ++ "//interop/grpc_testing", ++ "//resolver", ++ "//resolver/manual", ++ "//status", ++ ], ++) +diff -urN a/internal/leakcheck/BUILD.bazel b/internal/leakcheck/BUILD.bazel +--- a/internal/leakcheck/BUILD.bazel 1970-01-01 00:00:00.000000000 +0000 ++++ b/internal/leakcheck/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000 +@@ -0,0 +1,20 @@ ++load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test") ++ ++go_library( ++ name = "leakcheck", ++ srcs = ["leakcheck.go"], ++ importpath = "google.golang.org/grpc/internal/leakcheck", ++ visibility = ["//:__subpackages__"], ++) ++ ++alias( ++ name = "go_default_library", ++ actual = ":leakcheck", ++ visibility = ["//:__subpackages__"], ++) ++ ++go_test( ++ name = "leakcheck_test", ++ srcs = ["leakcheck_test.go"], ++ embed = [":leakcheck"], ++) +diff -urN a/internal/metadata/BUILD.bazel b/internal/metadata/BUILD.bazel +--- a/internal/metadata/BUILD.bazel 1970-01-01 00:00:00.000000000 +0000 ++++ b/internal/metadata/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000 +@@ -0,0 +1,30 @@ ++load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test") ++ ++go_library( ++ name = "metadata", ++ srcs = ["metadata.go"], ++ importpath = "google.golang.org/grpc/internal/metadata", ++ visibility = ["//:__subpackages__"], ++ deps = [ ++ "//metadata", ++ "//resolver", ++ ], ++) ++ ++alias( ++ name = "go_default_library", ++ actual = ":metadata", ++ visibility = ["//:__subpackages__"], ++) ++ ++go_test( ++ name = "metadata_test", ++ srcs = ["metadata_test.go"], ++ embed = [":metadata"], ++ deps = [ ++ "//attributes", ++ "//metadata", ++ "//resolver", ++ "@com_github_google_go_cmp//cmp:go_default_library", ++ ], ++) +diff -urN a/internal/pretty/BUILD.bazel b/internal/pretty/BUILD.bazel +--- a/internal/pretty/BUILD.bazel 1970-01-01 00:00:00.000000000 +0000 ++++ b/internal/pretty/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000 +@@ -0,0 +1,20 @@ ++load("@io_bazel_rules_go//go:def.bzl", "go_library") ++ ++go_library( ++ name = "pretty", ++ srcs = ["pretty.go"], ++ importpath = "google.golang.org/grpc/internal/pretty", ++ visibility = ["//:__subpackages__"], ++ deps = [ ++ "@com_github_golang_protobuf//jsonpb:go_default_library", ++ "@com_github_golang_protobuf//proto:go_default_library", ++ "@org_golang_google_protobuf//encoding/protojson:go_default_library", ++ "@org_golang_google_protobuf//proto:go_default_library", ++ ], ++) ++ ++alias( ++ name = "go_default_library", ++ actual = ":pretty", ++ visibility = ["//:__subpackages__"], ++) +diff -urN a/internal/profiling/buffer/BUILD.bazel b/internal/profiling/buffer/BUILD.bazel +--- a/internal/profiling/buffer/BUILD.bazel 1970-01-01 00:00:00.000000000 +0000 ++++ b/internal/profiling/buffer/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000 +@@ -0,0 +1,21 @@ ++load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test") ++ ++go_library( ++ name = "buffer", ++ srcs = ["buffer.go"], ++ importpath = "google.golang.org/grpc/internal/profiling/buffer", ++ visibility = ["//:__subpackages__"], ++) ++ ++alias( ++ name = "go_default_library", ++ actual = ":buffer", ++ visibility = ["//:__subpackages__"], ++) ++ ++go_test( ++ name = "buffer_test", ++ srcs = ["buffer_test.go"], ++ embed = [":buffer"], ++ deps = ["//internal/grpctest"], ++) +diff -urN a/internal/profiling/BUILD.bazel b/internal/profiling/BUILD.bazel +--- a/internal/profiling/BUILD.bazel 1970-01-01 00:00:00.000000000 +0000 ++++ b/internal/profiling/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000 +@@ -0,0 +1,28 @@ ++load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test") ++ ++go_library( ++ name = "profiling", ++ srcs = [ ++ "goid_regular.go", ++ "profiling.go", ++ ], ++ importpath = "google.golang.org/grpc/internal/profiling", ++ visibility = ["//:__subpackages__"], ++ deps = ["//internal/profiling/buffer"], ++) ++ ++alias( ++ name = "go_default_library", ++ actual = ":profiling", ++ visibility = ["//:__subpackages__"], ++) ++ ++go_test( ++ name = "profiling_test", ++ srcs = ["profiling_test.go"], ++ embed = [":profiling"], ++ deps = [ ++ "//internal/grpctest", ++ "//internal/profiling/buffer", ++ ], ++) +diff -urN a/internal/proto/grpc_lookup_v1/BUILD.bazel b/internal/proto/grpc_lookup_v1/BUILD.bazel +--- a/internal/proto/grpc_lookup_v1/BUILD.bazel 1970-01-01 00:00:00.000000000 +0000 ++++ b/internal/proto/grpc_lookup_v1/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000 +@@ -0,0 +1,27 @@ ++load("@io_bazel_rules_go//go:def.bzl", "go_library") ++ ++go_library( ++ name = "grpc_lookup_v1", ++ srcs = [ ++ "rls.pb.go", ++ "rls_config.pb.go", ++ "rls_grpc.pb.go", ++ ], ++ importpath = "google.golang.org/grpc/internal/proto/grpc_lookup_v1", ++ visibility = ["//:__subpackages__"], ++ deps = [ ++ "//:grpc", ++ "//codes", ++ "//status", ++ "@org_golang_google_protobuf//reflect/protoreflect:go_default_library", ++ "@org_golang_google_protobuf//runtime/protoimpl:go_default_library", ++ "@org_golang_google_protobuf//types/known/anypb:go_default_library", ++ "@org_golang_google_protobuf//types/known/durationpb:go_default_library", ++ ], ++) ++ ++alias( ++ name = "go_default_library", ++ actual = ":grpc_lookup_v1", ++ visibility = ["//:__subpackages__"], ++) +diff -urN a/internal/resolver/BUILD.bazel b/internal/resolver/BUILD.bazel +--- a/internal/resolver/BUILD.bazel 1970-01-01 00:00:00.000000000 +0000 ++++ b/internal/resolver/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000 +@@ -0,0 +1,30 @@ ++load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test") ++ ++go_library( ++ name = "resolver", ++ srcs = ["config_selector.go"], ++ importpath = "google.golang.org/grpc/internal/resolver", ++ visibility = ["//:__subpackages__"], ++ deps = [ ++ "//internal/serviceconfig", ++ "//metadata", ++ "//resolver", ++ ], ++) ++ ++alias( ++ name = "go_default_library", ++ actual = ":resolver", ++ visibility = ["//:__subpackages__"], ++) ++ ++go_test( ++ name = "resolver_test", ++ srcs = ["config_selector_test.go"], ++ embed = [":resolver"], ++ deps = [ ++ "//internal/grpctest", ++ "//internal/serviceconfig", ++ "@com_github_google_go_cmp//cmp:go_default_library", ++ ], ++) +diff -urN a/internal/resolver/dns/BUILD.bazel b/internal/resolver/dns/BUILD.bazel +--- a/internal/resolver/dns/BUILD.bazel 1970-01-01 00:00:00.000000000 +0000 ++++ b/internal/resolver/dns/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000 +@@ -0,0 +1,40 @@ ++load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test") ++ ++go_library( ++ name = "dns", ++ srcs = ["dns_resolver.go"], ++ importpath = "google.golang.org/grpc/internal/resolver/dns", ++ visibility = ["//:__subpackages__"], ++ deps = [ ++ "//balancer/grpclb/state", ++ "//grpclog", ++ "//internal/backoff", ++ "//internal/envconfig", ++ "//internal/grpcrand", ++ "//resolver", ++ "//serviceconfig", ++ ], ++) ++ ++alias( ++ name = "go_default_library", ++ actual = ":dns", ++ visibility = ["//:__subpackages__"], ++) ++ ++go_test( ++ name = "dns_test", ++ srcs = ["dns_resolver_test.go"], ++ embed = [":dns"], ++ deps = [ ++ "//balancer", ++ "//balancer/grpclb/state", ++ "//internal/envconfig", ++ "//internal/leakcheck", ++ "//internal/testutils", ++ "//resolver", ++ "//serviceconfig", ++ "@com_github_google_go_cmp//cmp:go_default_library", ++ "@com_github_google_go_cmp//cmp/cmpopts:go_default_library", ++ ], ++) +diff -urN a/internal/resolver/passthrough/BUILD.bazel b/internal/resolver/passthrough/BUILD.bazel +--- a/internal/resolver/passthrough/BUILD.bazel 1970-01-01 00:00:00.000000000 +0000 ++++ b/internal/resolver/passthrough/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000 +@@ -0,0 +1,15 @@ ++load("@io_bazel_rules_go//go:def.bzl", "go_library") ++ ++go_library( ++ name = "passthrough", ++ srcs = ["passthrough.go"], ++ importpath = "google.golang.org/grpc/internal/resolver/passthrough", ++ visibility = ["//:__subpackages__"], ++ deps = ["//resolver"], ++) ++ ++alias( ++ name = "go_default_library", ++ actual = ":passthrough", ++ visibility = ["//:__subpackages__"], ++) +diff -urN a/internal/resolver/unix/BUILD.bazel b/internal/resolver/unix/BUILD.bazel +--- a/internal/resolver/unix/BUILD.bazel 1970-01-01 00:00:00.000000000 +0000 ++++ b/internal/resolver/unix/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000 +@@ -0,0 +1,18 @@ ++load("@io_bazel_rules_go//go:def.bzl", "go_library") ++ ++go_library( ++ name = "unix", ++ srcs = ["unix.go"], ++ importpath = "google.golang.org/grpc/internal/resolver/unix", ++ visibility = ["//:__subpackages__"], ++ deps = [ ++ "//internal/transport/networktype", ++ "//resolver", ++ ], ++) ++ ++alias( ++ name = "go_default_library", ++ actual = ":unix", ++ visibility = ["//:__subpackages__"], ++) +diff -urN a/internal/serviceconfig/BUILD.bazel b/internal/serviceconfig/BUILD.bazel +--- a/internal/serviceconfig/BUILD.bazel 1970-01-01 00:00:00.000000000 +0000 ++++ b/internal/serviceconfig/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000 +@@ -0,0 +1,38 @@ ++load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test") ++ ++go_library( ++ name = "serviceconfig", ++ srcs = [ ++ "duration.go", ++ "serviceconfig.go", ++ ], ++ importpath = "google.golang.org/grpc/internal/serviceconfig", ++ visibility = ["//:__subpackages__"], ++ deps = [ ++ "//balancer", ++ "//codes", ++ "//grpclog", ++ "//serviceconfig", ++ ], ++) ++ ++alias( ++ name = "go_default_library", ++ actual = ":serviceconfig", ++ visibility = ["//:__subpackages__"], ++) ++ ++go_test( ++ name = "serviceconfig_test", ++ srcs = [ ++ "duration_test.go", ++ "serviceconfig_test.go", ++ ], ++ embed = [":serviceconfig"], ++ deps = [ ++ "//balancer", ++ "//internal/grpcrand", ++ "//serviceconfig", ++ "@com_github_google_go_cmp//cmp:go_default_library", ++ ], ++) +diff -urN a/internal/status/BUILD.bazel b/internal/status/BUILD.bazel +--- a/internal/status/BUILD.bazel 1970-01-01 00:00:00.000000000 +0000 ++++ b/internal/status/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000 +@@ -0,0 +1,20 @@ ++load("@io_bazel_rules_go//go:def.bzl", "go_library") ++ ++go_library( ++ name = "status", ++ srcs = ["status.go"], ++ importpath = "google.golang.org/grpc/internal/status", ++ visibility = ["//:__subpackages__"], ++ deps = [ ++ "//codes", ++ "@com_github_golang_protobuf//proto:go_default_library", ++ "@com_github_golang_protobuf//ptypes:go_default_library", ++ "@org_golang_google_genproto//googleapis/rpc/status:go_default_library", ++ ], ++) ++ ++alias( ++ name = "go_default_library", ++ actual = ":status", ++ visibility = ["//:__subpackages__"], ++) +diff -urN a/internal/stubserver/BUILD.bazel b/internal/stubserver/BUILD.bazel +--- a/internal/stubserver/BUILD.bazel 1970-01-01 00:00:00.000000000 +0000 ++++ b/internal/stubserver/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000 +@@ -0,0 +1,24 @@ ++load("@io_bazel_rules_go//go:def.bzl", "go_library") ++ ++go_library( ++ name = "stubserver", ++ srcs = ["stubserver.go"], ++ importpath = "google.golang.org/grpc/internal/stubserver", ++ visibility = ["//:__subpackages__"], ++ deps = [ ++ "//:grpc", ++ "//connectivity", ++ "//credentials/insecure", ++ "//interop/grpc_testing", ++ "//resolver", ++ "//resolver/manual", ++ "//serviceconfig", ++ "@org_golang_x_net//http2:go_default_library", ++ ], ++) ++ ++alias( ++ name = "go_default_library", ++ actual = ":stubserver", ++ visibility = ["//:__subpackages__"], ++) +diff -urN a/internal/syscall/BUILD.bazel b/internal/syscall/BUILD.bazel +--- a/internal/syscall/BUILD.bazel 1970-01-01 00:00:00.000000000 +0000 ++++ b/internal/syscall/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000 +@@ -0,0 +1,64 @@ ++load("@io_bazel_rules_go//go:def.bzl", "go_library") ++ ++go_library( ++ name = "syscall", ++ srcs = [ ++ "syscall_linux.go", ++ "syscall_nonlinux.go", ++ ], ++ importpath = "google.golang.org/grpc/internal/syscall", ++ visibility = ["//:__subpackages__"], ++ deps = select({ ++ "@io_bazel_rules_go//go/platform:aix": [ ++ "//grpclog", ++ ], ++ "@io_bazel_rules_go//go/platform:android": [ ++ "//grpclog", ++ "@org_golang_x_sys//unix:go_default_library", ++ ], ++ "@io_bazel_rules_go//go/platform:darwin": [ ++ "//grpclog", ++ ], ++ "@io_bazel_rules_go//go/platform:dragonfly": [ ++ "//grpclog", ++ ], ++ "@io_bazel_rules_go//go/platform:freebsd": [ ++ "//grpclog", ++ ], ++ "@io_bazel_rules_go//go/platform:illumos": [ ++ "//grpclog", ++ ], ++ "@io_bazel_rules_go//go/platform:ios": [ ++ "//grpclog", ++ ], ++ "@io_bazel_rules_go//go/platform:js": [ ++ "//grpclog", ++ ], ++ "@io_bazel_rules_go//go/platform:linux": [ ++ "//grpclog", ++ "@org_golang_x_sys//unix:go_default_library", ++ ], ++ "@io_bazel_rules_go//go/platform:netbsd": [ ++ "//grpclog", ++ ], ++ "@io_bazel_rules_go//go/platform:openbsd": [ ++ "//grpclog", ++ ], ++ "@io_bazel_rules_go//go/platform:plan9": [ ++ "//grpclog", ++ ], ++ "@io_bazel_rules_go//go/platform:solaris": [ ++ "//grpclog", ++ ], ++ "@io_bazel_rules_go//go/platform:windows": [ ++ "//grpclog", ++ ], ++ "//conditions:default": [], ++ }), ++) ++ ++alias( ++ name = "go_default_library", ++ actual = ":syscall", ++ visibility = ["//:__subpackages__"], ++) +diff -urN a/internal/testutils/BUILD.bazel b/internal/testutils/BUILD.bazel +--- a/internal/testutils/BUILD.bazel 1970-01-01 00:00:00.000000000 +0000 ++++ b/internal/testutils/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000 +@@ -0,0 +1,55 @@ ++load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test") ++ ++go_library( ++ name = "testutils", ++ srcs = [ ++ "balancer.go", ++ "channel.go", ++ "http_client.go", ++ "local_listener.go", ++ "marshal_any.go", ++ "parse_port.go", ++ "parse_url.go", ++ "pipe_listener.go", ++ "restartable_listener.go", ++ "state.go", ++ "status_equal.go", ++ "wrappers.go", ++ "wrr.go", ++ ], ++ importpath = "google.golang.org/grpc/internal/testutils", ++ visibility = ["//:__subpackages__"], ++ deps = [ ++ "//balancer", ++ "//connectivity", ++ "//internal/grpcsync", ++ "//internal/wrr", ++ "//resolver", ++ "//status", ++ "@com_github_golang_protobuf//proto:go_default_library", ++ "@org_golang_google_protobuf//protoadapt:go_default_library", ++ "@org_golang_google_protobuf//types/known/anypb:go_default_library", ++ ], ++) ++ ++alias( ++ name = "go_default_library", ++ actual = ":testutils", ++ visibility = ["//:__subpackages__"], ++) ++ ++go_test( ++ name = "testutils_test", ++ srcs = [ ++ "pipe_listener_test.go", ++ "status_equal_test.go", ++ ], ++ embed = [":testutils"], ++ deps = [ ++ "//codes", ++ "//internal/grpctest", ++ "//status", ++ "@com_github_golang_protobuf//ptypes/any:go_default_library", ++ "@org_golang_google_genproto//googleapis/rpc/status:go_default_library", ++ ], ++) +diff -urN a/internal/testutils/fakegrpclb/BUILD.bazel b/internal/testutils/fakegrpclb/BUILD.bazel +--- a/internal/testutils/fakegrpclb/BUILD.bazel 1970-01-01 00:00:00.000000000 +0000 ++++ b/internal/testutils/fakegrpclb/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000 +@@ -0,0 +1,22 @@ ++load("@io_bazel_rules_go//go:def.bzl", "go_library") ++ ++go_library( ++ name = "fakegrpclb", ++ srcs = ["server.go"], ++ importpath = "google.golang.org/grpc/internal/testutils/fakegrpclb", ++ visibility = ["//:__subpackages__"], ++ deps = [ ++ "//:grpc", ++ "//balancer/grpclb/grpc_lb_v1", ++ "//codes", ++ "//grpclog", ++ "//internal/pretty", ++ "//status", ++ ], ++) ++ ++alias( ++ name = "go_default_library", ++ actual = ":fakegrpclb", ++ visibility = ["//:__subpackages__"], ++) +diff -urN a/internal/testutils/pickfirst/BUILD.bazel b/internal/testutils/pickfirst/BUILD.bazel +--- a/internal/testutils/pickfirst/BUILD.bazel 1970-01-01 00:00:00.000000000 +0000 ++++ b/internal/testutils/pickfirst/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000 +@@ -0,0 +1,20 @@ ++load("@io_bazel_rules_go//go:def.bzl", "go_library") ++ ++go_library( ++ name = "pickfirst", ++ srcs = ["pickfirst.go"], ++ importpath = "google.golang.org/grpc/internal/testutils/pickfirst", ++ visibility = ["//:__subpackages__"], ++ deps = [ ++ "//:grpc", ++ "//interop/grpc_testing", ++ "//peer", ++ "//resolver", ++ ], ++) ++ ++alias( ++ name = "go_default_library", ++ actual = ":pickfirst", ++ visibility = ["//:__subpackages__"], ++) +diff -urN a/internal/testutils/rls/BUILD.bazel b/internal/testutils/rls/BUILD.bazel +--- a/internal/testutils/rls/BUILD.bazel 1970-01-01 00:00:00.000000000 +0000 ++++ b/internal/testutils/rls/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000 +@@ -0,0 +1,21 @@ ++load("@io_bazel_rules_go//go:def.bzl", "go_library") ++ ++go_library( ++ name = "rls", ++ srcs = ["fake_rls_server.go"], ++ importpath = "google.golang.org/grpc/internal/testutils/rls", ++ visibility = ["//:__subpackages__"], ++ deps = [ ++ "//:grpc", ++ "//codes", ++ "//internal/proto/grpc_lookup_v1", ++ "//internal/testutils", ++ "//status", ++ ], ++) ++ ++alias( ++ name = "go_default_library", ++ actual = ":rls", ++ visibility = ["//:__subpackages__"], ++) +diff -urN a/internal/testutils/roundrobin/BUILD.bazel b/internal/testutils/roundrobin/BUILD.bazel +--- a/internal/testutils/roundrobin/BUILD.bazel 1970-01-01 00:00:00.000000000 +0000 ++++ b/internal/testutils/roundrobin/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000 +@@ -0,0 +1,22 @@ ++load("@io_bazel_rules_go//go:def.bzl", "go_library") ++ ++go_library( ++ name = "roundrobin", ++ srcs = ["roundrobin.go"], ++ importpath = "google.golang.org/grpc/internal/testutils/roundrobin", ++ visibility = ["//:__subpackages__"], ++ deps = [ ++ "//:grpc", ++ "//grpclog", ++ "//interop/grpc_testing", ++ "//peer", ++ "//resolver", ++ "@com_github_google_go_cmp//cmp:go_default_library", ++ ], ++) ++ ++alias( ++ name = "go_default_library", ++ actual = ":roundrobin", ++ visibility = ["//:__subpackages__"], ++) +diff -urN a/internal/testutils/xds/bootstrap/BUILD.bazel b/internal/testutils/xds/bootstrap/BUILD.bazel +--- a/internal/testutils/xds/bootstrap/BUILD.bazel 1970-01-01 00:00:00.000000000 +0000 ++++ b/internal/testutils/xds/bootstrap/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000 +@@ -0,0 +1,18 @@ ++load("@io_bazel_rules_go//go:def.bzl", "go_library") ++ ++go_library( ++ name = "bootstrap", ++ srcs = ["bootstrap.go"], ++ importpath = "google.golang.org/grpc/internal/testutils/xds/bootstrap", ++ visibility = ["//:__subpackages__"], ++ deps = [ ++ "//grpclog", ++ "//internal/envconfig", ++ ], ++) ++ ++alias( ++ name = "go_default_library", ++ actual = ":bootstrap", ++ visibility = ["//:__subpackages__"], ++) +diff -urN a/internal/testutils/xds/e2e/BUILD.bazel b/internal/testutils/xds/e2e/BUILD.bazel +--- a/internal/testutils/xds/e2e/BUILD.bazel 1970-01-01 00:00:00.000000000 +0000 ++++ b/internal/testutils/xds/e2e/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000 +@@ -0,0 +1,53 @@ ++load("@io_bazel_rules_go//go:def.bzl", "go_library") ++ ++go_library( ++ name = "e2e", ++ srcs = [ ++ "bootstrap.go", ++ "clientresources.go", ++ "logging.go", ++ "server.go", ++ "setup_certs.go", ++ "setup_management_server.go", ++ ], ++ importpath = "google.golang.org/grpc/internal/testutils/xds/e2e", ++ visibility = ["//:__subpackages__"], ++ deps = [ ++ "//:grpc", ++ "//credentials", ++ "//grpclog", ++ "//internal", ++ "//internal/testutils/xds/bootstrap", ++ "//internal/testutils/xds/fakeserver", ++ "//resolver", ++ "//testdata", ++ "@com_github_envoyproxy_go_control_plane//envoy/config/cluster/v3:go_default_library", ++ "@com_github_envoyproxy_go_control_plane//envoy/config/core/v3:go_default_library", ++ "@com_github_envoyproxy_go_control_plane//envoy/config/endpoint/v3:go_default_library", ++ "@com_github_envoyproxy_go_control_plane//envoy/config/listener/v3:go_default_library", ++ "@com_github_envoyproxy_go_control_plane//envoy/config/route/v3:go_default_library", ++ "@com_github_envoyproxy_go_control_plane//envoy/extensions/clusters/aggregate/v3:go_default_library", ++ "@com_github_envoyproxy_go_control_plane//envoy/extensions/filters/http/router/v3:go_default_library", ++ "@com_github_envoyproxy_go_control_plane//envoy/extensions/filters/network/http_connection_manager/v3:go_default_library", ++ "@com_github_envoyproxy_go_control_plane//envoy/extensions/transport_sockets/tls/v3:go_default_library", ++ "@com_github_envoyproxy_go_control_plane//envoy/service/discovery/v3:go_default_library", ++ "@com_github_envoyproxy_go_control_plane//envoy/service/load_stats/v3:go_default_library", ++ "@com_github_envoyproxy_go_control_plane//envoy/type/v3:go_default_library", ++ "@com_github_envoyproxy_go_control_plane//pkg/cache/types:go_default_library", ++ "@com_github_envoyproxy_go_control_plane//pkg/cache/v3:go_default_library", ++ "@com_github_envoyproxy_go_control_plane//pkg/resource/v3:go_default_library", ++ "@com_github_envoyproxy_go_control_plane//pkg/server/v3:go_default_library", ++ "@com_github_envoyproxy_go_control_plane//pkg/wellknown:go_default_library", ++ "@com_github_golang_protobuf//proto:go_default_library", ++ "@com_github_golang_protobuf//ptypes/wrappers:go_default_library", ++ "@com_github_google_uuid//:go_default_library", ++ "@org_golang_google_protobuf//protoadapt:go_default_library", ++ "@org_golang_google_protobuf//types/known/anypb:go_default_library", ++ ], ++) ++ ++alias( ++ name = "go_default_library", ++ actual = ":e2e", ++ visibility = ["//:__subpackages__"], ++) +diff -urN a/internal/testutils/xds/fakeserver/BUILD.bazel b/internal/testutils/xds/fakeserver/BUILD.bazel +--- a/internal/testutils/xds/fakeserver/BUILD.bazel 1970-01-01 00:00:00.000000000 +0000 ++++ b/internal/testutils/xds/fakeserver/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000 +@@ -0,0 +1,23 @@ ++load("@io_bazel_rules_go//go:def.bzl", "go_library") ++ ++go_library( ++ name = "fakeserver", ++ srcs = ["server.go"], ++ importpath = "google.golang.org/grpc/internal/testutils/xds/fakeserver", ++ visibility = ["//:__subpackages__"], ++ deps = [ ++ "//:grpc", ++ "//codes", ++ "//internal/testutils", ++ "//status", ++ "@com_github_envoyproxy_go_control_plane//envoy/service/discovery/v3:go_default_library", ++ "@com_github_envoyproxy_go_control_plane//envoy/service/load_stats/v3:go_default_library", ++ "@com_github_golang_protobuf//proto:go_default_library", ++ ], ++) ++ ++alias( ++ name = "go_default_library", ++ actual = ":fakeserver", ++ visibility = ["//:__subpackages__"], ++) +diff -urN a/internal/transport/BUILD.bazel b/internal/transport/BUILD.bazel +--- a/internal/transport/BUILD.bazel 1970-01-01 00:00:00.000000000 +0000 ++++ b/internal/transport/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000 +@@ -0,0 +1,86 @@ ++load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test") ++ ++go_library( ++ name = "transport", ++ srcs = [ ++ "bdp_estimator.go", ++ "controlbuf.go", ++ "defaults.go", ++ "flowcontrol.go", ++ "handler_server.go", ++ "http2_client.go", ++ "http2_server.go", ++ "http_util.go", ++ "logging.go", ++ "proxy.go", ++ "transport.go", ++ ], ++ importpath = "google.golang.org/grpc/internal/transport", ++ visibility = ["//:__subpackages__"], ++ deps = [ ++ "//codes", ++ "//credentials", ++ "//grpclog", ++ "//internal/channelz", ++ "//internal/credentials", ++ "//internal/grpclog", ++ "//internal/grpcrand", ++ "//internal/grpcsync", ++ "//internal/grpcutil", ++ "//internal/metadata", ++ "//internal/pretty", ++ "//internal/status", ++ "//internal/syscall", ++ "//internal/transport/networktype", ++ "//keepalive", ++ "//metadata", ++ "//peer", ++ "//resolver", ++ "//stats", ++ "//status", ++ "//tap", ++ "@com_github_golang_protobuf//proto:go_default_library", ++ "@org_golang_x_net//http2:go_default_library", ++ "@org_golang_x_net//http2/hpack:go_default_library", ++ ], ++) ++ ++alias( ++ name = "go_default_library", ++ actual = ":transport", ++ visibility = ["//:__subpackages__"], ++) ++ ++go_test( ++ name = "transport_test", ++ srcs = [ ++ "handler_server_test.go", ++ "http_util_test.go", ++ "keepalive_test.go", ++ "proxy_test.go", ++ "transport_test.go", ++ ], ++ embed = [":transport"], ++ deps = [ ++ "//attributes", ++ "//codes", ++ "//credentials", ++ "//internal/channelz", ++ "//internal/grpctest", ++ "//internal/leakcheck", ++ "//internal/syscall", ++ "//internal/testutils", ++ "//keepalive", ++ "//metadata", ++ "//peer", ++ "//resolver", ++ "//status", ++ "//testdata", ++ "@com_github_golang_protobuf//proto:go_default_library", ++ "@com_github_golang_protobuf//ptypes/duration:go_default_library", ++ "@com_github_google_go_cmp//cmp:go_default_library", ++ "@org_golang_google_genproto_googleapis_rpc//errdetails:go_default_library", ++ "@org_golang_x_net//http2:go_default_library", ++ "@org_golang_x_net//http2/hpack:go_default_library", ++ ], ++) +diff -urN a/internal/transport/networktype/BUILD.bazel b/internal/transport/networktype/BUILD.bazel +--- a/internal/transport/networktype/BUILD.bazel 1970-01-01 00:00:00.000000000 +0000 ++++ b/internal/transport/networktype/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000 +@@ -0,0 +1,15 @@ ++load("@io_bazel_rules_go//go:def.bzl", "go_library") ++ ++go_library( ++ name = "networktype", ++ srcs = ["networktype.go"], ++ importpath = "google.golang.org/grpc/internal/transport/networktype", ++ visibility = ["//:__subpackages__"], ++ deps = ["//resolver"], ++) ++ ++alias( ++ name = "go_default_library", ++ actual = ":networktype", ++ visibility = ["//:__subpackages__"], ++) +diff -urN a/internal/wrr/BUILD.bazel b/internal/wrr/BUILD.bazel +--- a/internal/wrr/BUILD.bazel 1970-01-01 00:00:00.000000000 +0000 ++++ b/internal/wrr/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000 +@@ -0,0 +1,32 @@ ++load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test") ++ ++go_library( ++ name = "wrr", ++ srcs = [ ++ "edf.go", ++ "random.go", ++ "wrr.go", ++ ], ++ importpath = "google.golang.org/grpc/internal/wrr", ++ visibility = ["//:__subpackages__"], ++ deps = ["//internal/grpcrand"], ++) ++ ++alias( ++ name = "go_default_library", ++ actual = ":wrr", ++ visibility = ["//:__subpackages__"], ++) ++ ++go_test( ++ name = "wrr_test", ++ srcs = [ ++ "edf_test.go", ++ "wrr_test.go", ++ ], ++ embed = [":wrr"], ++ deps = [ ++ "//internal/grpctest", ++ "@com_github_google_go_cmp//cmp:go_default_library", ++ ], ++) +diff -urN a/internal/xds/matcher/BUILD.bazel b/internal/xds/matcher/BUILD.bazel +--- a/internal/xds/matcher/BUILD.bazel 1970-01-01 00:00:00.000000000 +0000 ++++ b/internal/xds/matcher/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000 +@@ -0,0 +1,36 @@ ++load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test") ++ ++go_library( ++ name = "matcher", ++ srcs = [ ++ "matcher_header.go", ++ "string_matcher.go", ++ ], ++ importpath = "google.golang.org/grpc/internal/xds/matcher", ++ visibility = ["//:__subpackages__"], ++ deps = [ ++ "//internal/grpcutil", ++ "//metadata", ++ "@com_github_envoyproxy_go_control_plane//envoy/type/matcher/v3:go_default_library", ++ ], ++) ++ ++alias( ++ name = "go_default_library", ++ actual = ":matcher", ++ visibility = ["//:__subpackages__"], ++) ++ ++go_test( ++ name = "matcher_test", ++ srcs = [ ++ "matcher_header_test.go", ++ "string_matcher_test.go", ++ ], ++ embed = [":matcher"], ++ deps = [ ++ "//metadata", ++ "@com_github_envoyproxy_go_control_plane//envoy/type/matcher/v3:go_default_library", ++ "@com_github_google_go_cmp//cmp:go_default_library", ++ ], ++) +diff -urN a/internal/xds/rbac/BUILD.bazel b/internal/xds/rbac/BUILD.bazel +--- a/internal/xds/rbac/BUILD.bazel 1970-01-01 00:00:00.000000000 +0000 ++++ b/internal/xds/rbac/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000 +@@ -0,0 +1,73 @@ ++load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test") ++ ++go_library( ++ name = "rbac", ++ srcs = [ ++ "converter.go", ++ "matchers.go", ++ "rbac_engine.go", ++ ], ++ importpath = "google.golang.org/grpc/internal/xds/rbac", ++ visibility = ["//:__subpackages__"], ++ deps = [ ++ "//:grpc", ++ "//authz/audit", ++ "//authz/audit/stdout", ++ "//codes", ++ "//credentials", ++ "//grpclog", ++ "//internal/transport", ++ "//internal/xds/matcher", ++ "//metadata", ++ "//peer", ++ "//status", ++ "@com_github_cncf_xds_go//udpa/type/v1:go_default_library", ++ "@com_github_cncf_xds_go//xds/type/v3:go_default_library", ++ "@com_github_envoyproxy_go_control_plane//envoy/config/core/v3:go_default_library", ++ "@com_github_envoyproxy_go_control_plane//envoy/config/rbac/v3:go_default_library", ++ "@com_github_envoyproxy_go_control_plane//envoy/config/route/v3:go_default_library", ++ "@com_github_envoyproxy_go_control_plane//envoy/extensions/rbac/audit_loggers/stream/v3:go_default_library", ++ "@com_github_envoyproxy_go_control_plane//envoy/type/matcher/v3:go_default_library", ++ "@org_golang_google_protobuf//encoding/protojson:go_default_library", ++ "@org_golang_google_protobuf//types/known/anypb:go_default_library", ++ "@org_golang_google_protobuf//types/known/structpb:go_default_library", ++ ], ++) ++ ++alias( ++ name = "go_default_library", ++ actual = ":rbac", ++ visibility = ["//:__subpackages__"], ++) ++ ++go_test( ++ name = "rbac_test", ++ srcs = [ ++ "converter_test.go", ++ "rbac_engine_test.go", ++ ], ++ embed = [":rbac"], ++ deps = [ ++ "//:grpc", ++ "//authz/audit", ++ "//authz/audit/stdout", ++ "//codes", ++ "//credentials", ++ "//internal/grpctest", ++ "//internal/testutils", ++ "//metadata", ++ "//peer", ++ "//status", ++ "@com_github_cncf_xds_go//udpa/type/v1:go_default_library", ++ "@com_github_cncf_xds_go//xds/type/v3:go_default_library", ++ "@com_github_envoyproxy_go_control_plane//envoy/config/core/v3:go_default_library", ++ "@com_github_envoyproxy_go_control_plane//envoy/config/rbac/v3:go_default_library", ++ "@com_github_envoyproxy_go_control_plane//envoy/config/route/v3:go_default_library", ++ "@com_github_envoyproxy_go_control_plane//envoy/extensions/rbac/audit_loggers/stream/v3:go_default_library", ++ "@com_github_envoyproxy_go_control_plane//envoy/type/matcher/v3:go_default_library", ++ "@com_github_envoyproxy_go_control_plane//envoy/type/v3:go_default_library", ++ "@com_github_golang_protobuf//ptypes/wrappers:go_default_library", ++ "@org_golang_google_protobuf//types/known/anypb:go_default_library", ++ "@org_golang_google_protobuf//types/known/structpb:go_default_library", ++ ], ++) +diff -urN a/interop/alts/client/BUILD.bazel b/interop/alts/client/BUILD.bazel +--- a/interop/alts/client/BUILD.bazel 1970-01-01 00:00:00.000000000 +0000 ++++ b/interop/alts/client/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000 +@@ -0,0 +1,20 @@ ++load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library") ++ ++go_library( ++ name = "client_lib", ++ srcs = ["client.go"], ++ importpath = "google.golang.org/grpc/interop/alts/client", ++ visibility = ["//visibility:private"], ++ deps = [ ++ "//:grpc", ++ "//credentials/alts", ++ "//grpclog", ++ "//interop/grpc_testing", ++ ], ++) ++ ++go_binary( ++ name = "client", ++ embed = [":client_lib"], ++ visibility = ["//visibility:public"], ++) +diff -urN a/interop/alts/server/BUILD.bazel b/interop/alts/server/BUILD.bazel +--- a/interop/alts/server/BUILD.bazel 1970-01-01 00:00:00.000000000 +0000 ++++ b/interop/alts/server/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000 +@@ -0,0 +1,22 @@ ++load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library") ++ ++go_library( ++ name = "server_lib", ++ srcs = ["server.go"], ++ importpath = "google.golang.org/grpc/interop/alts/server", ++ visibility = ["//visibility:private"], ++ deps = [ ++ "//:grpc", ++ "//credentials/alts", ++ "//grpclog", ++ "//interop", ++ "//interop/grpc_testing", ++ "//tap", ++ ], ++) ++ ++go_binary( ++ name = "server", ++ embed = [":server_lib"], ++ visibility = ["//visibility:public"], ++) +diff -urN a/interop/BUILD.bazel b/interop/BUILD.bazel +--- a/interop/BUILD.bazel 1970-01-01 00:00:00.000000000 +0000 ++++ b/interop/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000 +@@ -0,0 +1,35 @@ ++load("@io_bazel_rules_go//go:def.bzl", "go_library") ++ ++go_library( ++ name = "interop", ++ srcs = [ ++ "orcalb.go", ++ "test_utils.go", ++ ], ++ importpath = "google.golang.org/grpc/interop", ++ visibility = ["//visibility:public"], ++ deps = [ ++ "//:grpc", ++ "//balancer", ++ "//balancer/base", ++ "//benchmark/stats", ++ "//codes", ++ "//connectivity", ++ "//grpclog", ++ "//interop/grpc_testing", ++ "//metadata", ++ "//orca", ++ "//peer", ++ "//status", ++ "@com_github_cncf_xds_go//xds/data/orca/v3:go_default_library", ++ "@com_github_golang_protobuf//proto:go_default_library", ++ "@org_golang_x_oauth2//:go_default_library", ++ "@org_golang_x_oauth2//google:go_default_library", ++ ], ++) ++ ++alias( ++ name = "go_default_library", ++ actual = ":interop", ++ visibility = ["//visibility:public"], ++) +diff -urN a/interop/client/BUILD.bazel b/interop/client/BUILD.bazel +--- a/interop/client/BUILD.bazel 1970-01-01 00:00:00.000000000 +0000 ++++ b/interop/client/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000 +@@ -0,0 +1,32 @@ ++load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library") ++ ++go_library( ++ name = "client_lib", ++ srcs = ["client.go"], ++ importpath = "google.golang.org/grpc/interop/client", ++ visibility = ["//visibility:private"], ++ deps = [ ++ "//:grpc", ++ "//balancer/grpclb", ++ "//balancer/rls", ++ "//credentials", ++ "//credentials/alts", ++ "//credentials/google", ++ "//credentials/insecure", ++ "//credentials/oauth", ++ "//grpclog", ++ "//interop", ++ "//interop/grpc_testing", ++ "//metadata", ++ "//resolver", ++ "//testdata", ++ "//xds/googledirectpath", ++ "@org_golang_x_oauth2//:go_default_library", ++ ], ++) ++ ++go_binary( ++ name = "client", ++ embed = [":client_lib"], ++ visibility = ["//visibility:public"], ++) +diff -urN a/interop/fake_grpclb/BUILD.bazel b/interop/fake_grpclb/BUILD.bazel +--- a/interop/fake_grpclb/BUILD.bazel 1970-01-01 00:00:00.000000000 +0000 ++++ b/interop/fake_grpclb/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000 +@@ -0,0 +1,22 @@ ++load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library") ++ ++go_library( ++ name = "fake_grpclb_lib", ++ srcs = ["fake_grpclb.go"], ++ importpath = "google.golang.org/grpc/interop/fake_grpclb", ++ visibility = ["//visibility:private"], ++ deps = [ ++ "//:grpc", ++ "//credentials", ++ "//credentials/alts", ++ "//grpclog", ++ "//internal/testutils/fakegrpclb", ++ "//testdata", ++ ], ++) ++ ++go_binary( ++ name = "fake_grpclb", ++ embed = [":fake_grpclb_lib"], ++ visibility = ["//visibility:public"], ++) +diff -urN a/interop/grpclb_fallback/BUILD.bazel b/interop/grpclb_fallback/BUILD.bazel +--- a/interop/grpclb_fallback/BUILD.bazel 1970-01-01 00:00:00.000000000 +0000 ++++ b/interop/grpclb_fallback/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000 +@@ -0,0 +1,37 @@ ++load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library") ++ ++go_library( ++ name = "grpclb_fallback_lib", ++ srcs = ["client_linux.go"], ++ importpath = "google.golang.org/grpc/interop/grpclb_fallback", ++ visibility = ["//visibility:private"], ++ deps = select({ ++ "@io_bazel_rules_go//go/platform:android": [ ++ "//:grpc", ++ "//balancer/grpclb", ++ "//credentials", ++ "//credentials/alts", ++ "//credentials/google", ++ "//interop/grpc_testing", ++ "//xds/googledirectpath", ++ "@org_golang_x_sys//unix:go_default_library", ++ ], ++ "@io_bazel_rules_go//go/platform:linux": [ ++ "//:grpc", ++ "//balancer/grpclb", ++ "//credentials", ++ "//credentials/alts", ++ "//credentials/google", ++ "//interop/grpc_testing", ++ "//xds/googledirectpath", ++ "@org_golang_x_sys//unix:go_default_library", ++ ], ++ "//conditions:default": [], ++ }), ++) ++ ++go_binary( ++ name = "grpclb_fallback", ++ embed = [":grpclb_fallback_lib"], ++ visibility = ["//visibility:public"], ++) +diff -urN a/interop/grpc_testing/BUILD.bazel b/interop/grpc_testing/BUILD.bazel +--- a/interop/grpc_testing/BUILD.bazel 1970-01-01 00:00:00.000000000 +0000 ++++ b/interop/grpc_testing/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000 +@@ -0,0 +1,37 @@ ++load("@io_bazel_rules_go//go:def.bzl", "go_library") ++ ++go_library( ++ name = "grpc_testing", ++ srcs = [ ++ "benchmark_service.pb.go", ++ "benchmark_service_grpc.pb.go", ++ "control.pb.go", ++ "empty.pb.go", ++ "messages.pb.go", ++ "payloads.pb.go", ++ "report_qps_scenario_service.pb.go", ++ "report_qps_scenario_service_grpc.pb.go", ++ "stats.pb.go", ++ "test.pb.go", ++ "test_grpc.pb.go", ++ "worker_service.pb.go", ++ "worker_service_grpc.pb.go", ++ ], ++ importpath = "google.golang.org/grpc/interop/grpc_testing", ++ visibility = ["//visibility:public"], ++ deps = [ ++ "//:grpc", ++ "//codes", ++ "//interop/grpc_testing/core", ++ "//status", ++ "@org_golang_google_protobuf//reflect/protoreflect:go_default_library", ++ "@org_golang_google_protobuf//runtime/protoimpl:go_default_library", ++ "@org_golang_google_protobuf//types/known/timestamppb:go_default_library", ++ ], ++) ++ ++alias( ++ name = "go_default_library", ++ actual = ":grpc_testing", ++ visibility = ["//visibility:public"], ++) +diff -urN a/interop/grpc_testing/core/BUILD.bazel b/interop/grpc_testing/core/BUILD.bazel +--- a/interop/grpc_testing/core/BUILD.bazel 1970-01-01 00:00:00.000000000 +0000 ++++ b/interop/grpc_testing/core/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000 +@@ -0,0 +1,18 @@ ++load("@io_bazel_rules_go//go:def.bzl", "go_library") ++ ++go_library( ++ name = "core", ++ srcs = ["stats.pb.go"], ++ importpath = "google.golang.org/grpc/interop/grpc_testing/core", ++ visibility = ["//visibility:public"], ++ deps = [ ++ "@org_golang_google_protobuf//reflect/protoreflect:go_default_library", ++ "@org_golang_google_protobuf//runtime/protoimpl:go_default_library", ++ ], ++) ++ ++alias( ++ name = "go_default_library", ++ actual = ":core", ++ visibility = ["//visibility:public"], ++) +diff -urN a/interop/http2/BUILD.bazel b/interop/http2/BUILD.bazel +--- a/interop/http2/BUILD.bazel 1970-01-01 00:00:00.000000000 +0000 ++++ b/interop/http2/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000 +@@ -0,0 +1,23 @@ ++load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library") ++ ++go_library( ++ name = "http2_lib", ++ srcs = ["negative_http2_client.go"], ++ importpath = "google.golang.org/grpc/interop/http2", ++ visibility = ["//visibility:private"], ++ deps = [ ++ "//:grpc", ++ "//codes", ++ "//credentials/insecure", ++ "//grpclog", ++ "//interop", ++ "//interop/grpc_testing", ++ "//status", ++ ], ++) ++ ++go_binary( ++ name = "http2", ++ embed = [":http2_lib"], ++ visibility = ["//visibility:public"], ++) +diff -urN a/interop/observability/client/BUILD.bazel b/interop/observability/client/BUILD.bazel +--- a/interop/observability/client/BUILD.bazel 1970-01-01 00:00:00.000000000 +0000 ++++ b/interop/observability/client/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000 +@@ -0,0 +1,21 @@ ++load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library") ++ ++go_library( ++ name = "client_lib", ++ srcs = ["client.go"], ++ importpath = "google.golang.org/grpc/interop/observability/client", ++ visibility = ["//visibility:private"], ++ deps = [ ++ "//:grpc", ++ "//credentials/insecure", ++ "//gcp/observability", ++ "//interop", ++ "//interop/grpc_testing", ++ ], ++) ++ ++go_binary( ++ name = "client", ++ embed = [":client_lib"], ++ visibility = ["//visibility:public"], ++) +diff -urN a/interop/observability/server/BUILD.bazel b/interop/observability/server/BUILD.bazel +--- a/interop/observability/server/BUILD.bazel 1970-01-01 00:00:00.000000000 +0000 ++++ b/interop/observability/server/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000 +@@ -0,0 +1,20 @@ ++load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library") ++ ++go_library( ++ name = "server_lib", ++ srcs = ["server.go"], ++ importpath = "google.golang.org/grpc/interop/observability/server", ++ visibility = ["//visibility:private"], ++ deps = [ ++ "//:grpc", ++ "//gcp/observability", ++ "//interop", ++ "//interop/grpc_testing", ++ ], ++) ++ ++go_binary( ++ name = "server", ++ embed = [":server_lib"], ++ visibility = ["//visibility:public"], ++) +diff -urN a/interop/server/BUILD.bazel b/interop/server/BUILD.bazel +--- a/interop/server/BUILD.bazel 1970-01-01 00:00:00.000000000 +0000 ++++ b/interop/server/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000 +@@ -0,0 +1,25 @@ ++load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library") ++ ++go_library( ++ name = "server_lib", ++ srcs = ["server.go"], ++ importpath = "google.golang.org/grpc/interop/server", ++ visibility = ["//visibility:private"], ++ deps = [ ++ "//:grpc", ++ "//credentials", ++ "//credentials/alts", ++ "//grpclog", ++ "//internal", ++ "//interop", ++ "//interop/grpc_testing", ++ "//orca", ++ "//testdata", ++ ], ++) ++ ++go_binary( ++ name = "server", ++ embed = [":server_lib"], ++ visibility = ["//visibility:public"], ++) +diff -urN a/interop/xds/BUILD.bazel b/interop/xds/BUILD.bazel +--- a/interop/xds/BUILD.bazel 1970-01-01 00:00:00.000000000 +0000 ++++ b/interop/xds/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000 +@@ -0,0 +1,40 @@ ++load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test") ++ ++go_library( ++ name = "xds", ++ srcs = ["custom_lb.go"], ++ importpath = "google.golang.org/grpc/interop/xds", ++ visibility = ["//visibility:public"], ++ deps = [ ++ "//balancer", ++ "//balancer/roundrobin", ++ "//internal/pretty", ++ "//metadata", ++ "//serviceconfig", ++ ], ++) ++ ++alias( ++ name = "go_default_library", ++ actual = ":xds", ++ visibility = ["//visibility:public"], ++) ++ ++go_test( ++ name = "xds_test", ++ srcs = ["custom_lb_test.go"], ++ embed = [":xds"], ++ deps = [ ++ "//:grpc", ++ "//credentials/insecure", ++ "//internal", ++ "//internal/grpctest", ++ "//internal/stubserver", ++ "//internal/testutils", ++ "//interop/grpc_testing", ++ "//metadata", ++ "//resolver", ++ "//resolver/manual", ++ "//serviceconfig", ++ ], ++) +diff -urN a/interop/xds/client/BUILD.bazel b/interop/xds/client/BUILD.bazel +--- a/interop/xds/client/BUILD.bazel 1970-01-01 00:00:00.000000000 +0000 ++++ b/interop/xds/client/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000 +@@ -0,0 +1,28 @@ ++load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library") ++ ++go_library( ++ name = "client_lib", ++ srcs = ["client.go"], ++ importpath = "google.golang.org/grpc/interop/xds/client", ++ visibility = ["//visibility:private"], ++ deps = [ ++ "//:grpc", ++ "//admin", ++ "//credentials/insecure", ++ "//credentials/xds", ++ "//grpclog", ++ "//interop/grpc_testing", ++ "//interop/xds", ++ "//metadata", ++ "//peer", ++ "//reflection", ++ "//status", ++ "//xds", ++ ], ++) ++ ++go_binary( ++ name = "client", ++ embed = [":client_lib"], ++ visibility = ["//visibility:public"], ++) +diff -urN a/interop/xds/server/BUILD.bazel b/interop/xds/server/BUILD.bazel +--- a/interop/xds/server/BUILD.bazel 1970-01-01 00:00:00.000000000 +0000 ++++ b/interop/xds/server/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000 +@@ -0,0 +1,29 @@ ++load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library") ++ ++go_library( ++ name = "server_lib", ++ srcs = ["server.go"], ++ importpath = "google.golang.org/grpc/interop/xds/server", ++ visibility = ["//visibility:private"], ++ deps = [ ++ "//:grpc", ++ "//admin", ++ "//codes", ++ "//credentials/insecure", ++ "//credentials/xds", ++ "//grpclog", ++ "//health", ++ "//health/grpc_health_v1", ++ "//internal/status", ++ "//interop/grpc_testing", ++ "//metadata", ++ "//reflection", ++ "//xds", ++ ], ++) ++ ++go_binary( ++ name = "server", ++ embed = [":server_lib"], ++ visibility = ["//visibility:public"], ++) +diff -urN a/interop/xds_federation/BUILD.bazel b/interop/xds_federation/BUILD.bazel +--- a/interop/xds_federation/BUILD.bazel 1970-01-01 00:00:00.000000000 +0000 ++++ b/interop/xds_federation/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000 +@@ -0,0 +1,25 @@ ++load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library") ++ ++go_library( ++ name = "xds_federation_lib", ++ srcs = ["client.go"], ++ importpath = "google.golang.org/grpc/interop/xds_federation", ++ visibility = ["//visibility:private"], ++ deps = [ ++ "//:grpc", ++ "//balancer/grpclb", ++ "//balancer/rls", ++ "//credentials/google", ++ "//credentials/insecure", ++ "//grpclog", ++ "//interop", ++ "//interop/grpc_testing", ++ "//xds/googledirectpath", ++ ], ++) ++ ++go_binary( ++ name = "xds_federation", ++ embed = [":xds_federation_lib"], ++ visibility = ["//visibility:public"], ++) +diff -urN a/keepalive/BUILD.bazel b/keepalive/BUILD.bazel +--- a/keepalive/BUILD.bazel 1970-01-01 00:00:00.000000000 +0000 ++++ b/keepalive/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000 +@@ -0,0 +1,14 @@ ++load("@io_bazel_rules_go//go:def.bzl", "go_library") ++ ++go_library( ++ name = "keepalive", ++ srcs = ["keepalive.go"], ++ importpath = "google.golang.org/grpc/keepalive", ++ visibility = ["//visibility:public"], ++) ++ ++alias( ++ name = "go_default_library", ++ actual = ":keepalive", ++ visibility = ["//visibility:public"], ++) +diff -urN a/metadata/BUILD.bazel b/metadata/BUILD.bazel +--- a/metadata/BUILD.bazel 1970-01-01 00:00:00.000000000 +0000 ++++ b/metadata/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000 +@@ -0,0 +1,21 @@ ++load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test") ++ ++go_library( ++ name = "metadata", ++ srcs = ["metadata.go"], ++ importpath = "google.golang.org/grpc/metadata", ++ visibility = ["//visibility:public"], ++) ++ ++alias( ++ name = "go_default_library", ++ actual = ":metadata", ++ visibility = ["//visibility:public"], ++) ++ ++go_test( ++ name = "metadata_test", ++ srcs = ["metadata_test.go"], ++ embed = [":metadata"], ++ deps = ["//internal/grpctest"], ++) +diff -urN a/orca/BUILD.bazel b/orca/BUILD.bazel +--- a/orca/BUILD.bazel 1970-01-01 00:00:00.000000000 +0000 ++++ b/orca/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000 +@@ -0,0 +1,71 @@ ++load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test") ++ ++go_library( ++ name = "orca", ++ srcs = [ ++ "call_metrics.go", ++ "orca.go", ++ "producer.go", ++ "server_metrics.go", ++ "service.go", ++ ], ++ importpath = "google.golang.org/grpc/orca", ++ visibility = ["//visibility:public"], ++ deps = [ ++ "//:grpc", ++ "//balancer", ++ "//codes", ++ "//grpclog", ++ "//internal", ++ "//internal/backoff", ++ "//internal/balancerload", ++ "//internal/grpcsync", ++ "//metadata", ++ "//orca/internal", ++ "//status", ++ "@com_github_cncf_xds_go//xds/data/orca/v3:go_default_library", ++ "@com_github_cncf_xds_go//xds/service/orca/v3:go_default_library", ++ "@org_golang_google_protobuf//proto:go_default_library", ++ "@org_golang_google_protobuf//types/known/durationpb:go_default_library", ++ ], ++) ++ ++alias( ++ name = "go_default_library", ++ actual = ":orca", ++ visibility = ["//visibility:public"], ++) ++ ++go_test( ++ name = "orca_test", ++ srcs = [ ++ "call_metrics_test.go", ++ "orca_test.go", ++ "producer_test.go", ++ "server_metrics_test.go", ++ "service_test.go", ++ ], ++ embed = [":orca"], ++ deps = [ ++ "//:grpc", ++ "//balancer", ++ "//balancer/roundrobin", ++ "//codes", ++ "//credentials/insecure", ++ "//internal/grpctest", ++ "//internal/pretty", ++ "//internal/stubserver", ++ "//internal/testutils", ++ "//interop/grpc_testing", ++ "//metadata", ++ "//orca/internal", ++ "//resolver", ++ "//resolver/manual", ++ "//status", ++ "@com_github_cncf_xds_go//xds/data/orca/v3:go_default_library", ++ "@com_github_cncf_xds_go//xds/service/orca/v3:go_default_library", ++ "@com_github_golang_protobuf//proto:go_default_library", ++ "@com_github_google_go_cmp//cmp:go_default_library", ++ "@org_golang_google_protobuf//types/known/durationpb:go_default_library", ++ ], ++) +diff -urN a/orca/internal/BUILD.bazel b/orca/internal/BUILD.bazel +--- a/orca/internal/BUILD.bazel 1970-01-01 00:00:00.000000000 +0000 ++++ b/orca/internal/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000 +@@ -0,0 +1,20 @@ ++load("@io_bazel_rules_go//go:def.bzl", "go_library") ++ ++go_library( ++ name = "internal", ++ srcs = ["internal.go"], ++ importpath = "google.golang.org/grpc/orca/internal", ++ visibility = ["//orca:__subpackages__"], ++ deps = [ ++ "//internal/backoff", ++ "//metadata", ++ "@com_github_cncf_xds_go//xds/data/orca/v3:go_default_library", ++ "@org_golang_google_protobuf//proto:go_default_library", ++ ], ++) ++ ++alias( ++ name = "go_default_library", ++ actual = ":internal", ++ visibility = ["//orca:__subpackages__"], ++) +diff -urN a/peer/BUILD.bazel b/peer/BUILD.bazel +--- a/peer/BUILD.bazel 1970-01-01 00:00:00.000000000 +0000 ++++ b/peer/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000 +@@ -0,0 +1,15 @@ ++load("@io_bazel_rules_go//go:def.bzl", "go_library") ++ ++go_library( ++ name = "peer", ++ srcs = ["peer.go"], ++ importpath = "google.golang.org/grpc/peer", ++ visibility = ["//visibility:public"], ++ deps = ["//credentials"], ++) ++ ++alias( ++ name = "go_default_library", ++ actual = ":peer", ++ visibility = ["//visibility:public"], ++) +diff -urN a/profiling/BUILD.bazel b/profiling/BUILD.bazel +--- a/profiling/BUILD.bazel 1970-01-01 00:00:00.000000000 +0000 ++++ b/profiling/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000 +@@ -0,0 +1,15 @@ ++load("@io_bazel_rules_go//go:def.bzl", "go_library") ++ ++go_library( ++ name = "profiling", ++ srcs = ["profiling.go"], ++ importpath = "google.golang.org/grpc/profiling", ++ visibility = ["//visibility:public"], ++ deps = ["//internal/profiling"], ++) ++ ++alias( ++ name = "go_default_library", ++ actual = ":profiling", ++ visibility = ["//visibility:public"], ++) +diff -urN a/profiling/cmd/BUILD.bazel b/profiling/cmd/BUILD.bazel +--- a/profiling/cmd/BUILD.bazel 1970-01-01 00:00:00.000000000 +0000 ++++ b/profiling/cmd/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000 +@@ -0,0 +1,26 @@ ++load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library") ++ ++go_library( ++ name = "cmd_lib", ++ srcs = [ ++ "catapult.go", ++ "flags.go", ++ "local.go", ++ "main.go", ++ "remote.go", ++ ], ++ importpath = "google.golang.org/grpc/profiling/cmd", ++ visibility = ["//visibility:private"], ++ deps = [ ++ "//:grpc", ++ "//credentials/insecure", ++ "//grpclog", ++ "//profiling/proto", ++ ], ++) ++ ++go_binary( ++ name = "cmd", ++ embed = [":cmd_lib"], ++ visibility = ["//visibility:public"], ++) +diff -urN a/profiling/proto/BUILD.bazel b/profiling/proto/BUILD.bazel +--- a/profiling/proto/BUILD.bazel 1970-01-01 00:00:00.000000000 +0000 ++++ b/profiling/proto/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000 +@@ -0,0 +1,24 @@ ++load("@io_bazel_rules_go//go:def.bzl", "go_library") ++ ++go_library( ++ name = "proto", ++ srcs = [ ++ "service.pb.go", ++ "service_grpc.pb.go", ++ ], ++ importpath = "google.golang.org/grpc/profiling/proto", ++ visibility = ["//visibility:public"], ++ deps = [ ++ "//:grpc", ++ "//codes", ++ "//status", ++ "@org_golang_google_protobuf//reflect/protoreflect:go_default_library", ++ "@org_golang_google_protobuf//runtime/protoimpl:go_default_library", ++ ], ++) ++ ++alias( ++ name = "go_default_library", ++ actual = ":proto", ++ visibility = ["//visibility:public"], ++) +diff -urN a/profiling/service/BUILD.bazel b/profiling/service/BUILD.bazel +--- a/profiling/service/BUILD.bazel 1970-01-01 00:00:00.000000000 +0000 ++++ b/profiling/service/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000 +@@ -0,0 +1,20 @@ ++load("@io_bazel_rules_go//go:def.bzl", "go_library") ++ ++go_library( ++ name = "service", ++ srcs = ["service.go"], ++ importpath = "google.golang.org/grpc/profiling/service", ++ visibility = ["//visibility:public"], ++ deps = [ ++ "//:grpc", ++ "//grpclog", ++ "//internal/profiling", ++ "//profiling/proto", ++ ], ++) ++ ++alias( ++ name = "go_default_library", ++ actual = ":service", ++ visibility = ["//visibility:public"], ++) +diff -urN a/reflection/BUILD.bazel b/reflection/BUILD.bazel +--- a/reflection/BUILD.bazel 1970-01-01 00:00:00.000000000 +0000 ++++ b/reflection/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000 +@@ -0,0 +1,49 @@ ++load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test") ++ ++go_library( ++ name = "reflection", ++ srcs = [ ++ "adapt.go", ++ "serverreflection.go", ++ ], ++ importpath = "google.golang.org/grpc/reflection", ++ visibility = ["//visibility:public"], ++ deps = [ ++ "//:grpc", ++ "//codes", ++ "//reflection/grpc_reflection_v1", ++ "//reflection/grpc_reflection_v1alpha", ++ "//status", ++ "@org_golang_google_protobuf//proto:go_default_library", ++ "@org_golang_google_protobuf//reflect/protodesc:go_default_library", ++ "@org_golang_google_protobuf//reflect/protoreflect:go_default_library", ++ "@org_golang_google_protobuf//reflect/protoregistry:go_default_library", ++ ], ++) ++ ++alias( ++ name = "go_default_library", ++ actual = ":reflection", ++ visibility = ["//visibility:public"], ++) ++ ++go_test( ++ name = "reflection_test", ++ srcs = ["serverreflection_test.go"], ++ embed = [":reflection"], ++ deps = [ ++ "//:grpc", ++ "//credentials/insecure", ++ "//internal/grpctest", ++ "//reflection/grpc_reflection_v1", ++ "//reflection/grpc_reflection_v1alpha", ++ "//reflection/grpc_testing", ++ "//reflection/grpc_testing_not_regenerate", ++ "@org_golang_google_protobuf//proto:go_default_library", ++ "@org_golang_google_protobuf//reflect/protodesc:go_default_library", ++ "@org_golang_google_protobuf//reflect/protoreflect:go_default_library", ++ "@org_golang_google_protobuf//reflect/protoregistry:go_default_library", ++ "@org_golang_google_protobuf//types/descriptorpb:go_default_library", ++ "@org_golang_google_protobuf//types/dynamicpb:go_default_library", ++ ], ++) +diff -urN a/reflection/grpc_reflection_v1/BUILD.bazel b/reflection/grpc_reflection_v1/BUILD.bazel +--- a/reflection/grpc_reflection_v1/BUILD.bazel 1970-01-01 00:00:00.000000000 +0000 ++++ b/reflection/grpc_reflection_v1/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000 +@@ -0,0 +1,24 @@ ++load("@io_bazel_rules_go//go:def.bzl", "go_library") ++ ++go_library( ++ name = "grpc_reflection_v1", ++ srcs = [ ++ "reflection.pb.go", ++ "reflection_grpc.pb.go", ++ ], ++ importpath = "google.golang.org/grpc/reflection/grpc_reflection_v1", ++ visibility = ["//visibility:public"], ++ deps = [ ++ "//:grpc", ++ "//codes", ++ "//status", ++ "@org_golang_google_protobuf//reflect/protoreflect:go_default_library", ++ "@org_golang_google_protobuf//runtime/protoimpl:go_default_library", ++ ], ++) ++ ++alias( ++ name = "go_default_library", ++ actual = ":grpc_reflection_v1", ++ visibility = ["//visibility:public"], ++) +diff -urN a/reflection/grpc_reflection_v1alpha/BUILD.bazel b/reflection/grpc_reflection_v1alpha/BUILD.bazel +--- a/reflection/grpc_reflection_v1alpha/BUILD.bazel 1970-01-01 00:00:00.000000000 +0000 ++++ b/reflection/grpc_reflection_v1alpha/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000 +@@ -0,0 +1,24 @@ ++load("@io_bazel_rules_go//go:def.bzl", "go_library") ++ ++go_library( ++ name = "grpc_reflection_v1alpha", ++ srcs = [ ++ "reflection.pb.go", ++ "reflection_grpc.pb.go", ++ ], ++ importpath = "google.golang.org/grpc/reflection/grpc_reflection_v1alpha", ++ visibility = ["//visibility:public"], ++ deps = [ ++ "//:grpc", ++ "//codes", ++ "//status", ++ "@org_golang_google_protobuf//reflect/protoreflect:go_default_library", ++ "@org_golang_google_protobuf//runtime/protoimpl:go_default_library", ++ ], ++) ++ ++alias( ++ name = "go_default_library", ++ actual = ":grpc_reflection_v1alpha", ++ visibility = ["//visibility:public"], ++) +diff -urN a/reflection/grpc_testing/BUILD.bazel b/reflection/grpc_testing/BUILD.bazel +--- a/reflection/grpc_testing/BUILD.bazel 1970-01-01 00:00:00.000000000 +0000 ++++ b/reflection/grpc_testing/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000 +@@ -0,0 +1,27 @@ ++load("@io_bazel_rules_go//go:def.bzl", "go_library") ++ ++go_library( ++ name = "grpc_testing", ++ srcs = [ ++ "proto2.pb.go", ++ "proto2_ext.pb.go", ++ "proto2_ext2.pb.go", ++ "test.pb.go", ++ "test_grpc.pb.go", ++ ], ++ importpath = "google.golang.org/grpc/reflection/grpc_testing", ++ visibility = ["//visibility:public"], ++ deps = [ ++ "//:grpc", ++ "//codes", ++ "//status", ++ "@org_golang_google_protobuf//reflect/protoreflect:go_default_library", ++ "@org_golang_google_protobuf//runtime/protoimpl:go_default_library", ++ ], ++) ++ ++alias( ++ name = "go_default_library", ++ actual = ":grpc_testing", ++ visibility = ["//visibility:public"], ++) +diff -urN a/reflection/grpc_testing_not_regenerate/BUILD.bazel b/reflection/grpc_testing_not_regenerate/BUILD.bazel +--- a/reflection/grpc_testing_not_regenerate/BUILD.bazel 1970-01-01 00:00:00.000000000 +0000 ++++ b/reflection/grpc_testing_not_regenerate/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000 +@@ -0,0 +1,21 @@ ++load("@io_bazel_rules_go//go:def.bzl", "go_library") ++ ++go_library( ++ name = "grpc_testing_not_regenerate", ++ srcs = [ ++ "dynamic.pb.go", ++ "testv3.pb.go", ++ ], ++ importpath = "google.golang.org/grpc/reflection/grpc_testing_not_regenerate", ++ visibility = ["//visibility:public"], ++ deps = [ ++ "//:grpc", ++ "@com_github_golang_protobuf//proto:go_default_library", ++ ], ++) ++ ++alias( ++ name = "go_default_library", ++ actual = ":grpc_testing_not_regenerate", ++ visibility = ["//visibility:public"], ++) +diff -urN a/resolver/BUILD.bazel b/resolver/BUILD.bazel +--- a/resolver/BUILD.bazel 1970-01-01 00:00:00.000000000 +0000 ++++ b/resolver/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000 +@@ -0,0 +1,36 @@ ++load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test") ++ ++go_library( ++ name = "resolver", ++ srcs = [ ++ "map.go", ++ "resolver.go", ++ ], ++ importpath = "google.golang.org/grpc/resolver", ++ visibility = ["//visibility:public"], ++ deps = [ ++ "//attributes", ++ "//credentials", ++ "//serviceconfig", ++ ], ++) ++ ++alias( ++ name = "go_default_library", ++ actual = ":resolver", ++ visibility = ["//visibility:public"], ++) ++ ++go_test( ++ name = "resolver_test", ++ srcs = [ ++ "map_test.go", ++ "resolver_test.go", ++ ], ++ embed = [":resolver"], ++ deps = [ ++ "//attributes", ++ "//internal/grpctest", ++ "@com_github_google_go_cmp//cmp:go_default_library", ++ ], ++) +diff -urN a/resolver/dns/BUILD.bazel b/resolver/dns/BUILD.bazel +--- a/resolver/dns/BUILD.bazel 1970-01-01 00:00:00.000000000 +0000 ++++ b/resolver/dns/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000 +@@ -0,0 +1,18 @@ ++load("@io_bazel_rules_go//go:def.bzl", "go_library") ++ ++go_library( ++ name = "dns", ++ srcs = ["dns_resolver.go"], ++ importpath = "google.golang.org/grpc/resolver/dns", ++ visibility = ["//visibility:public"], ++ deps = [ ++ "//internal/resolver/dns", ++ "//resolver", ++ ], ++) ++ ++alias( ++ name = "go_default_library", ++ actual = ":dns", ++ visibility = ["//visibility:public"], ++) +diff -urN a/resolver/manual/BUILD.bazel b/resolver/manual/BUILD.bazel +--- a/resolver/manual/BUILD.bazel 1970-01-01 00:00:00.000000000 +0000 ++++ b/resolver/manual/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000 +@@ -0,0 +1,15 @@ ++load("@io_bazel_rules_go//go:def.bzl", "go_library") ++ ++go_library( ++ name = "manual", ++ srcs = ["manual.go"], ++ importpath = "google.golang.org/grpc/resolver/manual", ++ visibility = ["//visibility:public"], ++ deps = ["//resolver"], ++) ++ ++alias( ++ name = "go_default_library", ++ actual = ":manual", ++ visibility = ["//visibility:public"], ++) +diff -urN a/resolver/passthrough/BUILD.bazel b/resolver/passthrough/BUILD.bazel +--- a/resolver/passthrough/BUILD.bazel 1970-01-01 00:00:00.000000000 +0000 ++++ b/resolver/passthrough/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000 +@@ -0,0 +1,15 @@ ++load("@io_bazel_rules_go//go:def.bzl", "go_library") ++ ++go_library( ++ name = "passthrough", ++ srcs = ["passthrough.go"], ++ importpath = "google.golang.org/grpc/resolver/passthrough", ++ visibility = ["//visibility:public"], ++ deps = ["//internal/resolver/passthrough"], ++) ++ ++alias( ++ name = "go_default_library", ++ actual = ":passthrough", ++ visibility = ["//visibility:public"], ++) +diff -urN a/security/advancedtls/BUILD.bazel b/security/advancedtls/BUILD.bazel +--- a/security/advancedtls/BUILD.bazel 1970-01-01 00:00:00.000000000 +0000 ++++ b/security/advancedtls/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000 +@@ -0,0 +1,49 @@ ++load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test") ++ ++go_library( ++ name = "advancedtls", ++ srcs = [ ++ "advancedtls.go", ++ "crl.go", ++ "crl_deprecated.go", ++ "sni.go", ++ ], ++ importpath = "google.golang.org/grpc/security/advancedtls", ++ visibility = ["//visibility:public"], ++ deps = [ ++ "//credentials", ++ "//credentials/tls/certprovider", ++ "//grpclog", ++ "//internal/credentials", ++ "@org_golang_x_crypto//cryptobyte:go_default_library", ++ "@org_golang_x_crypto//cryptobyte/asn1:go_default_library", ++ ], ++) ++ ++alias( ++ name = "go_default_library", ++ actual = ":advancedtls", ++ visibility = ["//visibility:public"], ++) ++ ++go_test( ++ name = "advancedtls_test", ++ srcs = [ ++ "advancedtls_integration_test.go", ++ "advancedtls_test.go", ++ "crl_deprecated_test.go", ++ "crl_test.go", ++ ], ++ embed = [":advancedtls"], ++ deps = [ ++ "//:grpc", ++ "//credentials", ++ "//credentials/tls/certprovider", ++ "//credentials/tls/certprovider/pemfile", ++ "//examples/helloworld/helloworld", ++ "//internal/grpctest", ++ "//security/advancedtls/internal/testutils", ++ "//security/advancedtls/testdata", ++ "@com_github_hashicorp_golang_lru//:go_default_library", ++ ], ++) +diff -urN a/security/advancedtls/examples/credential_reloading_from_files/client/BUILD.bazel b/security/advancedtls/examples/credential_reloading_from_files/client/BUILD.bazel +--- a/security/advancedtls/examples/credential_reloading_from_files/client/BUILD.bazel 1970-01-01 00:00:00.000000000 +0000 ++++ b/security/advancedtls/examples/credential_reloading_from_files/client/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000 +@@ -0,0 +1,21 @@ ++load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library") ++ ++go_library( ++ name = "client_lib", ++ srcs = ["main.go"], ++ importpath = "google.golang.org/grpc/security/advancedtls/examples/credential_reloading_from_files/client", ++ visibility = ["//visibility:private"], ++ deps = [ ++ "//:grpc", ++ "//credentials/tls/certprovider/pemfile", ++ "//examples/helloworld/helloworld", ++ "//security/advancedtls", ++ "//security/advancedtls/testdata", ++ ], ++) ++ ++go_binary( ++ name = "client", ++ embed = [":client_lib"], ++ visibility = ["//visibility:public"], ++) +diff -urN a/security/advancedtls/examples/credential_reloading_from_files/server/BUILD.bazel b/security/advancedtls/examples/credential_reloading_from_files/server/BUILD.bazel +--- a/security/advancedtls/examples/credential_reloading_from_files/server/BUILD.bazel 1970-01-01 00:00:00.000000000 +0000 ++++ b/security/advancedtls/examples/credential_reloading_from_files/server/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000 +@@ -0,0 +1,22 @@ ++load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library") ++ ++go_library( ++ name = "server_lib", ++ srcs = ["main.go"], ++ importpath = "google.golang.org/grpc/security/advancedtls/examples/credential_reloading_from_files/server", ++ visibility = ["//visibility:private"], ++ deps = [ ++ "//:grpc", ++ "//credentials/tls/certprovider/pemfile", ++ "//examples/helloworld/helloworld", ++ "//keepalive", ++ "//security/advancedtls", ++ "//security/advancedtls/testdata", ++ ], ++) ++ ++go_binary( ++ name = "server", ++ embed = [":server_lib"], ++ visibility = ["//visibility:public"], ++) +diff -urN a/security/advancedtls/internal/testutils/BUILD.bazel b/security/advancedtls/internal/testutils/BUILD.bazel +--- a/security/advancedtls/internal/testutils/BUILD.bazel 1970-01-01 00:00:00.000000000 +0000 ++++ b/security/advancedtls/internal/testutils/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000 +@@ -0,0 +1,15 @@ ++load("@io_bazel_rules_go//go:def.bzl", "go_library") ++ ++go_library( ++ name = "testutils", ++ srcs = ["testutils.go"], ++ importpath = "google.golang.org/grpc/security/advancedtls/internal/testutils", ++ visibility = ["//security/advancedtls:__subpackages__"], ++ deps = ["//security/advancedtls/testdata"], ++) ++ ++alias( ++ name = "go_default_library", ++ actual = ":testutils", ++ visibility = ["//security/advancedtls:__subpackages__"], ++) +diff -urN a/security/advancedtls/testdata/BUILD.bazel b/security/advancedtls/testdata/BUILD.bazel +--- a/security/advancedtls/testdata/BUILD.bazel 1970-01-01 00:00:00.000000000 +0000 ++++ b/security/advancedtls/testdata/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000 +@@ -0,0 +1,14 @@ ++load("@io_bazel_rules_go//go:def.bzl", "go_library") ++ ++go_library( ++ name = "testdata", ++ srcs = ["testdata.go"], ++ importpath = "google.golang.org/grpc/security/advancedtls/testdata", ++ visibility = ["//visibility:public"], ++) ++ ++alias( ++ name = "go_default_library", ++ actual = ":testdata", ++ visibility = ["//visibility:public"], ++) +diff -urN a/security/authorization/engine/BUILD.bazel b/security/authorization/engine/BUILD.bazel +--- a/security/authorization/engine/BUILD.bazel 1970-01-01 00:00:00.000000000 +0000 ++++ b/security/authorization/engine/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000 +@@ -0,0 +1,52 @@ ++load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test") ++ ++go_library( ++ name = "engine", ++ srcs = [ ++ "engine.go", ++ "util.go", ++ ], ++ importpath = "google.golang.org/grpc/security/authorization/engine", ++ visibility = ["//visibility:public"], ++ deps = [ ++ "//grpclog", ++ "//metadata", ++ "//peer", ++ "@com_github_envoyproxy_go_control_plane//envoy/config/rbac/v2:go_default_library", ++ "@com_github_google_cel_go//cel:go_default_library", ++ "@com_github_google_cel_go//checker/decls:go_default_library", ++ "@com_github_google_cel_go//common/types:go_default_library", ++ "@com_github_google_cel_go//interpreter:go_default_library", ++ "@org_golang_google_genproto_googleapis_api//expr/v1alpha1:go_default_library", ++ "@org_golang_google_protobuf//proto:go_default_library", ++ ], ++) ++ ++alias( ++ name = "go_default_library", ++ actual = ":engine", ++ visibility = ["//visibility:public"], ++) ++ ++go_test( ++ name = "engine_test", ++ srcs = [ ++ "engine_test.go", ++ "util_test.go", ++ ], ++ embed = [":engine"], ++ deps = [ ++ "//codes", ++ "//internal/grpctest", ++ "//peer", ++ "//status", ++ "@com_github_envoyproxy_go_control_plane//envoy/config/rbac/v2:go_default_library", ++ "@com_github_google_cel_go//cel:go_default_library", ++ "@com_github_google_cel_go//checker/decls:go_default_library", ++ "@com_github_google_cel_go//common/types:go_default_library", ++ "@com_github_google_cel_go//common/types/ref:go_default_library", ++ "@com_github_google_cel_go//interpreter:go_default_library", ++ "@com_github_google_go_cmp//cmp:go_default_library", ++ "@org_golang_google_genproto_googleapis_api//expr/v1alpha1:go_default_library", ++ ], ++) +diff -urN a/serviceconfig/BUILD.bazel b/serviceconfig/BUILD.bazel +--- a/serviceconfig/BUILD.bazel 1970-01-01 00:00:00.000000000 +0000 ++++ b/serviceconfig/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000 +@@ -0,0 +1,14 @@ ++load("@io_bazel_rules_go//go:def.bzl", "go_library") ++ ++go_library( ++ name = "serviceconfig", ++ srcs = ["serviceconfig.go"], ++ importpath = "google.golang.org/grpc/serviceconfig", ++ visibility = ["//visibility:public"], ++) ++ ++alias( ++ name = "go_default_library", ++ actual = ":serviceconfig", ++ visibility = ["//visibility:public"], ++) +diff -urN a/stats/BUILD.bazel b/stats/BUILD.bazel +--- a/stats/BUILD.bazel 1970-01-01 00:00:00.000000000 +0000 ++++ b/stats/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000 +@@ -0,0 +1,33 @@ ++load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test") ++ ++go_library( ++ name = "stats", ++ srcs = [ ++ "handlers.go", ++ "stats.go", ++ ], ++ importpath = "google.golang.org/grpc/stats", ++ visibility = ["//visibility:public"], ++ deps = ["//metadata"], ++) ++ ++alias( ++ name = "go_default_library", ++ actual = ":stats", ++ visibility = ["//visibility:public"], ++) ++ ++go_test( ++ name = "stats_test", ++ srcs = ["stats_test.go"], ++ deps = [ ++ ":stats", ++ "//:grpc", ++ "//credentials/insecure", ++ "//internal/grpctest", ++ "//interop/grpc_testing", ++ "//metadata", ++ "//status", ++ "@com_github_golang_protobuf//proto:go_default_library", ++ ], ++) +diff -urN a/stats/opencensus/BUILD.bazel b/stats/opencensus/BUILD.bazel +--- a/stats/opencensus/BUILD.bazel 1970-01-01 00:00:00.000000000 +0000 ++++ b/stats/opencensus/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000 +@@ -0,0 +1,52 @@ ++load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test") ++ ++go_library( ++ name = "opencensus", ++ srcs = [ ++ "client_metrics.go", ++ "opencensus.go", ++ "server_metrics.go", ++ "stats.go", ++ "trace.go", ++ ], ++ importpath = "google.golang.org/grpc/stats/opencensus", ++ visibility = ["//visibility:public"], ++ deps = [ ++ "//:grpc", ++ "//codes", ++ "//grpclog", ++ "//internal", ++ "//stats", ++ "//status", ++ "@io_opencensus_go//stats:go_default_library", ++ "@io_opencensus_go//stats/view:go_default_library", ++ "@io_opencensus_go//tag:go_default_library", ++ "@io_opencensus_go//trace:go_default_library", ++ "@io_opencensus_go//trace/propagation:go_default_library", ++ ], ++) ++ ++alias( ++ name = "go_default_library", ++ actual = ":opencensus", ++ visibility = ["//visibility:public"], ++) ++ ++go_test( ++ name = "opencensus_test", ++ srcs = ["e2e_test.go"], ++ embed = [":opencensus"], ++ deps = [ ++ "//:grpc", ++ "//encoding/gzip", ++ "//internal/grpctest", ++ "//internal/leakcheck", ++ "//internal/stubserver", ++ "//internal/testutils", ++ "//interop/grpc_testing", ++ "@com_github_google_go_cmp//cmp:go_default_library", ++ "@io_opencensus_go//stats/view:go_default_library", ++ "@io_opencensus_go//tag:go_default_library", ++ "@io_opencensus_go//trace:go_default_library", ++ ], ++) +diff -urN a/status/BUILD.bazel b/status/BUILD.bazel +--- a/status/BUILD.bazel 1970-01-01 00:00:00.000000000 +0000 ++++ b/status/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000 +@@ -0,0 +1,46 @@ ++load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test") ++ ++go_library( ++ name = "status", ++ srcs = ["status.go"], ++ importpath = "google.golang.org/grpc/status", ++ visibility = ["//visibility:public"], ++ deps = [ ++ "//codes", ++ "//internal/status", ++ "@org_golang_google_genproto//googleapis/rpc/status:go_default_library", ++ ], ++) ++ ++alias( ++ name = "go_default_library", ++ actual = ":status", ++ visibility = ["//visibility:public"], ++) ++ ++go_test( ++ name = "status_test", ++ srcs = [ ++ "status_ext_test.go", ++ "status_test.go", ++ ], ++ embed = [":status"], ++ deps = [ ++ "//:grpc", ++ "//codes", ++ "//internal/grpctest", ++ "//internal/status", ++ "//internal/stubserver", ++ "//internal/testutils", ++ "//interop/grpc_testing", ++ "//metadata", ++ "@com_github_golang_protobuf//proto:go_default_library", ++ "@com_github_golang_protobuf//ptypes:go_default_library", ++ "@com_github_golang_protobuf//ptypes/any:go_default_library", ++ "@com_github_golang_protobuf//ptypes/duration:go_default_library", ++ "@com_github_google_go_cmp//cmp:go_default_library", ++ "@org_golang_google_genproto_googleapis_rpc//code:go_default_library", ++ "@org_golang_google_genproto_googleapis_rpc//errdetails:go_default_library", ++ "@org_golang_google_genproto//googleapis/rpc/status:go_default_library", ++ ], ++) +diff -urN a/stress/client/BUILD.bazel b/stress/client/BUILD.bazel +--- a/stress/client/BUILD.bazel 1970-01-01 00:00:00.000000000 +0000 ++++ b/stress/client/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000 +@@ -0,0 +1,26 @@ ++load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library") ++ ++go_library( ++ name = "client_lib", ++ srcs = ["main.go"], ++ importpath = "google.golang.org/grpc/stress/client", ++ visibility = ["//visibility:private"], ++ deps = [ ++ "//:grpc", ++ "//codes", ++ "//credentials", ++ "//credentials/insecure", ++ "//grpclog", ++ "//interop", ++ "//interop/grpc_testing", ++ "//status", ++ "//stress/grpc_testing", ++ "//testdata", ++ ], ++) ++ ++go_binary( ++ name = "client", ++ embed = [":client_lib"], ++ visibility = ["//visibility:public"], ++) +diff -urN a/stress/grpc_testing/BUILD.bazel b/stress/grpc_testing/BUILD.bazel +--- a/stress/grpc_testing/BUILD.bazel 1970-01-01 00:00:00.000000000 +0000 ++++ b/stress/grpc_testing/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000 +@@ -0,0 +1,24 @@ ++load("@io_bazel_rules_go//go:def.bzl", "go_library") ++ ++go_library( ++ name = "grpc_testing", ++ srcs = [ ++ "metrics.pb.go", ++ "metrics_grpc.pb.go", ++ ], ++ importpath = "google.golang.org/grpc/stress/grpc_testing", ++ visibility = ["//visibility:public"], ++ deps = [ ++ "//:grpc", ++ "//codes", ++ "//status", ++ "@org_golang_google_protobuf//reflect/protoreflect:go_default_library", ++ "@org_golang_google_protobuf//runtime/protoimpl:go_default_library", ++ ], ++) ++ ++alias( ++ name = "go_default_library", ++ actual = ":grpc_testing", ++ visibility = ["//visibility:public"], ++) +diff -urN a/stress/metrics_client/BUILD.bazel b/stress/metrics_client/BUILD.bazel +--- a/stress/metrics_client/BUILD.bazel 1970-01-01 00:00:00.000000000 +0000 ++++ b/stress/metrics_client/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000 +@@ -0,0 +1,20 @@ ++load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library") ++ ++go_library( ++ name = "metrics_client_lib", ++ srcs = ["main.go"], ++ importpath = "google.golang.org/grpc/stress/metrics_client", ++ visibility = ["//visibility:private"], ++ deps = [ ++ "//:grpc", ++ "//credentials/insecure", ++ "//grpclog", ++ "//stress/grpc_testing", ++ ], ++) ++ ++go_binary( ++ name = "metrics_client", ++ embed = [":metrics_client_lib"], ++ visibility = ["//visibility:public"], ++) +diff -urN a/tap/BUILD.bazel b/tap/BUILD.bazel +--- a/tap/BUILD.bazel 1970-01-01 00:00:00.000000000 +0000 ++++ b/tap/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000 +@@ -0,0 +1,15 @@ ++load("@io_bazel_rules_go//go:def.bzl", "go_library") ++ ++go_library( ++ name = "tap", ++ srcs = ["tap.go"], ++ importpath = "google.golang.org/grpc/tap", ++ visibility = ["//visibility:public"], ++ deps = ["//metadata"], ++) ++ ++alias( ++ name = "go_default_library", ++ actual = ":tap", ++ visibility = ["//visibility:public"], ++) +diff -urN a/test/bufconn/BUILD.bazel b/test/bufconn/BUILD.bazel +--- a/test/bufconn/BUILD.bazel 1970-01-01 00:00:00.000000000 +0000 ++++ b/test/bufconn/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000 +@@ -0,0 +1,21 @@ ++load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test") ++ ++go_library( ++ name = "bufconn", ++ srcs = ["bufconn.go"], ++ importpath = "google.golang.org/grpc/test/bufconn", ++ visibility = ["//visibility:public"], ++) ++ ++alias( ++ name = "go_default_library", ++ actual = ":bufconn", ++ visibility = ["//visibility:public"], ++) ++ ++go_test( ++ name = "bufconn_test", ++ srcs = ["bufconn_test.go"], ++ embed = [":bufconn"], ++ deps = ["//internal/grpctest"], ++) +diff -urN a/test/BUILD.bazel b/test/BUILD.bazel +--- a/test/BUILD.bazel 1970-01-01 00:00:00.000000000 +0000 ++++ b/test/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000 +@@ -0,0 +1,127 @@ ++load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test") ++ ++go_library( ++ name = "test", ++ srcs = [ ++ "clienttester.go", ++ "logging.go", ++ "parse_config.go", ++ "rawConnWrapper.go", ++ "servertester.go", ++ "timeouts.go", ++ ], ++ importpath = "google.golang.org/grpc/test", ++ visibility = ["//visibility:public"], ++ deps = [ ++ "//grpclog", ++ "//resolver/manual", ++ "//serviceconfig", ++ "@org_golang_x_net//http2:go_default_library", ++ "@org_golang_x_net//http2/hpack:go_default_library", ++ ], ++) ++ ++alias( ++ name = "go_default_library", ++ actual = ":test", ++ visibility = ["//visibility:public"], ++) ++ ++go_test( ++ name = "test_test", ++ srcs = [ ++ "authority_test.go", ++ "balancer_switching_test.go", ++ "balancer_test.go", ++ "channelz_linux_test.go", ++ "channelz_test.go", ++ "clientconn_state_transition_test.go", ++ "clientconn_test.go", ++ "codec_test.go", ++ "compressor_test.go", ++ "config_selector_test.go", ++ "context_canceled_test.go", ++ "control_plane_status_test.go", ++ "creds_test.go", ++ "end2end_test.go", ++ "goaway_test.go", ++ "gracefulstop_test.go", ++ "healthcheck_test.go", ++ "http_header_end2end_test.go", ++ "insecure_creds_test.go", ++ "interceptor_test.go", ++ "invoke_test.go", ++ "local_creds_test.go", ++ "metadata_test.go", ++ "pickfirst_test.go", ++ "race_test.go", ++ "recv_buffer_pool_test.go", ++ "resolver_update_test.go", ++ "retry_test.go", ++ "roundrobin_test.go", ++ "server_test.go", ++ "service_config_deprecated_test.go", ++ "stream_cleanup_test.go", ++ "subconn_test.go", ++ "transport_test.go", ++ ], ++ embed = [":test"], ++ deps = [ ++ "//:grpc", ++ "//attributes", ++ "//backoff", ++ "//balancer", ++ "//balancer/base", ++ "//balancer/grpclb", ++ "//balancer/grpclb/state", ++ "//balancer/roundrobin", ++ "//codes", ++ "//connectivity", ++ "//credentials", ++ "//credentials/insecure", ++ "//credentials/local", ++ "//encoding", ++ "//encoding/gzip", ++ "//health", ++ "//health/grpc_health_v1", ++ "//internal", ++ "//internal/balancer/stub", ++ "//internal/balancerload", ++ "//internal/binarylog", ++ "//internal/channelz", ++ "//internal/envconfig", ++ "//internal/grpcrand", ++ "//internal/grpcsync", ++ "//internal/grpctest", ++ "//internal/grpcutil", ++ "//internal/metadata", ++ "//internal/resolver", ++ "//internal/serviceconfig", ++ "//internal/stubserver", ++ "//internal/testutils", ++ "//internal/testutils/fakegrpclb", ++ "//internal/testutils/pickfirst", ++ "//internal/testutils/roundrobin", ++ "//internal/transport", ++ "//interop/grpc_testing", ++ "//keepalive", ++ "//metadata", ++ "//peer", ++ "//resolver", ++ "//resolver/manual", ++ "//serviceconfig", ++ "//stats", ++ "//status", ++ "//tap", ++ "//test/bufconn", ++ "//testdata", ++ "@com_github_golang_protobuf//proto:go_default_library", ++ "@com_github_golang_protobuf//ptypes/any:go_default_library", ++ "@com_github_google_go_cmp//cmp:go_default_library", ++ "@com_github_google_go_cmp//cmp/cmpopts:go_default_library", ++ "@org_golang_google_genproto//googleapis/rpc/status:go_default_library", ++ "@org_golang_google_protobuf//proto:go_default_library", ++ "@org_golang_x_net//http2:go_default_library", ++ "@org_golang_x_net//http2/hpack:go_default_library", ++ ], ++) +diff -urN a/test/codec_perf/BUILD.bazel b/test/codec_perf/BUILD.bazel +--- a/test/codec_perf/BUILD.bazel 1970-01-01 00:00:00.000000000 +0000 ++++ b/test/codec_perf/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000 +@@ -0,0 +1,18 @@ ++load("@io_bazel_rules_go//go:def.bzl", "go_library") ++ ++go_library( ++ name = "codec_perf", ++ srcs = ["perf.pb.go"], ++ importpath = "google.golang.org/grpc/test/codec_perf", ++ visibility = ["//visibility:public"], ++ deps = [ ++ "@org_golang_google_protobuf//reflect/protoreflect:go_default_library", ++ "@org_golang_google_protobuf//runtime/protoimpl:go_default_library", ++ ], ++) ++ ++alias( ++ name = "go_default_library", ++ actual = ":codec_perf", ++ visibility = ["//visibility:public"], ++) +diff -urN a/test/tools/BUILD.bazel b/test/tools/BUILD.bazel +--- a/test/tools/BUILD.bazel 1970-01-01 00:00:00.000000000 +0000 ++++ b/test/tools/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000 +@@ -0,0 +1,14 @@ ++load("@io_bazel_rules_go//go:def.bzl", "go_library") ++ ++go_library( ++ name = "tools", ++ srcs = ["tools_vet.go"], ++ importpath = "google.golang.org/grpc/test/tools", ++ visibility = ["//visibility:public"], ++) ++ ++alias( ++ name = "go_default_library", ++ actual = ":tools", ++ visibility = ["//visibility:public"], ++) +diff -urN a/test/xds/BUILD.bazel b/test/xds/BUILD.bazel +--- a/test/xds/BUILD.bazel 1970-01-01 00:00:00.000000000 +0000 ++++ b/test/xds/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000 +@@ -0,0 +1,73 @@ ++load("@io_bazel_rules_go//go:def.bzl", "go_test") ++ ++go_test( ++ name = "xds_test", ++ srcs = [ ++ "xds_client_ack_nack_test.go", ++ "xds_client_affinity_test.go", ++ "xds_client_custom_lb_test.go", ++ "xds_client_federation_test.go", ++ "xds_client_ignore_resource_deletion_test.go", ++ "xds_client_integration_test.go", ++ "xds_client_outlier_detection_test.go", ++ "xds_client_retry_test.go", ++ "xds_rls_clusterspecifier_plugin_test.go", ++ "xds_security_config_nack_test.go", ++ "xds_server_integration_test.go", ++ "xds_server_rbac_test.go", ++ "xds_server_serving_mode_test.go", ++ ], ++ deps = [ ++ "//:grpc", ++ "//authz/audit", ++ "//balancer/leastrequest", ++ "//balancer/rls", ++ "//balancer/weightedroundrobin", ++ "//codes", ++ "//connectivity", ++ "//credentials/insecure", ++ "//credentials/xds", ++ "//internal", ++ "//internal/envconfig", ++ "//internal/grpcsync", ++ "//internal/grpctest", ++ "//internal/proto/grpc_lookup_v1", ++ "//internal/stubserver", ++ "//internal/testutils", ++ "//internal/testutils/rls", ++ "//internal/testutils/roundrobin", ++ "//internal/testutils/xds/bootstrap", ++ "//internal/testutils/xds/e2e", ++ "//interop/grpc_testing", ++ "//peer", ++ "//resolver", ++ "//status", ++ "//xds", ++ "@com_github_cncf_xds_go//xds/type/v3:go_default_library", ++ "@com_github_envoyproxy_go_control_plane//envoy/config/cluster/v3:go_default_library", ++ "@com_github_envoyproxy_go_control_plane//envoy/config/core/v3:go_default_library", ++ "@com_github_envoyproxy_go_control_plane//envoy/config/endpoint/v3:go_default_library", ++ "@com_github_envoyproxy_go_control_plane//envoy/config/listener/v3:go_default_library", ++ "@com_github_envoyproxy_go_control_plane//envoy/config/rbac/v3:go_default_library", ++ "@com_github_envoyproxy_go_control_plane//envoy/config/route/v3:go_default_library", ++ "@com_github_envoyproxy_go_control_plane//envoy/extensions/filters/http/rbac/v3:go_default_library", ++ "@com_github_envoyproxy_go_control_plane//envoy/extensions/filters/http/router/v3:go_default_library", ++ "@com_github_envoyproxy_go_control_plane//envoy/extensions/filters/network/http_connection_manager/v3:go_default_library", ++ "@com_github_envoyproxy_go_control_plane//envoy/extensions/load_balancing_policies/client_side_weighted_round_robin/v3:go_default_library", ++ "@com_github_envoyproxy_go_control_plane//envoy/extensions/load_balancing_policies/least_request/v3:go_default_library", ++ "@com_github_envoyproxy_go_control_plane//envoy/extensions/load_balancing_policies/round_robin/v3:go_default_library", ++ "@com_github_envoyproxy_go_control_plane//envoy/extensions/load_balancing_policies/wrr_locality/v3:go_default_library", ++ "@com_github_envoyproxy_go_control_plane//envoy/extensions/transport_sockets/tls/v3:go_default_library", ++ "@com_github_envoyproxy_go_control_plane//envoy/service/discovery/v3:go_default_library", ++ "@com_github_envoyproxy_go_control_plane//envoy/type/matcher/v3:go_default_library", ++ "@com_github_golang_protobuf//proto:go_default_library", ++ "@com_github_golang_protobuf//ptypes/struct:go_default_library", ++ "@com_github_golang_protobuf//ptypes/wrappers:go_default_library", ++ "@com_github_google_go_cmp//cmp:go_default_library", ++ "@com_github_google_uuid//:go_default_library", ++ "@org_golang_google_protobuf//types/known/anypb:go_default_library", ++ "@org_golang_google_protobuf//types/known/durationpb:go_default_library", ++ "@org_golang_google_protobuf//types/known/structpb:go_default_library", ++ "@org_golang_google_protobuf//types/known/wrapperspb:go_default_library", ++ ], ++) +diff -urN a/testdata/BUILD.bazel b/testdata/BUILD.bazel +--- a/testdata/BUILD.bazel 1970-01-01 00:00:00.000000000 +0000 ++++ b/testdata/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000 +@@ -0,0 +1,14 @@ ++load("@io_bazel_rules_go//go:def.bzl", "go_library") ++ ++go_library( ++ name = "testdata", ++ srcs = ["testdata.go"], ++ importpath = "google.golang.org/grpc/testdata", ++ visibility = ["//visibility:public"], ++) ++ ++alias( ++ name = "go_default_library", ++ actual = ":testdata", ++ visibility = ["//visibility:public"], ++) +diff -urN a/xds/bootstrap/BUILD.bazel b/xds/bootstrap/BUILD.bazel +--- a/xds/bootstrap/BUILD.bazel 1970-01-01 00:00:00.000000000 +0000 ++++ b/xds/bootstrap/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000 +@@ -0,0 +1,22 @@ ++load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test") ++ ++go_library( ++ name = "bootstrap", ++ srcs = ["bootstrap.go"], ++ importpath = "google.golang.org/grpc/xds/bootstrap", ++ visibility = ["//visibility:public"], ++ deps = ["//credentials"], ++) ++ ++alias( ++ name = "go_default_library", ++ actual = ":bootstrap", ++ visibility = ["//visibility:public"], ++) ++ ++go_test( ++ name = "bootstrap_test", ++ srcs = ["bootstrap_test.go"], ++ embed = [":bootstrap"], ++ deps = ["//credentials"], ++) +diff -urN a/xds/BUILD.bazel b/xds/BUILD.bazel +--- a/xds/BUILD.bazel 1970-01-01 00:00:00.000000000 +0000 ++++ b/xds/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000 +@@ -0,0 +1,74 @@ ++load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test") ++ ++go_library( ++ name = "xds", ++ srcs = [ ++ "server.go", ++ "server_options.go", ++ "xds.go", ++ ], ++ importpath = "google.golang.org/grpc/xds", ++ visibility = ["//visibility:public"], ++ deps = [ ++ "//:grpc", ++ "//codes", ++ "//connectivity", ++ "//credentials", ++ "//credentials/tls/certprovider/pemfile", ++ "//grpclog", ++ "//internal", ++ "//internal/admin", ++ "//internal/buffer", ++ "//internal/envconfig", ++ "//internal/grpclog", ++ "//internal/grpcsync", ++ "//internal/resolver", ++ "//internal/transport", ++ "//metadata", ++ "//resolver", ++ "//status", ++ "//xds/csds", ++ "//xds/internal/balancer", ++ "//xds/internal/clusterspecifier/rls", ++ "//xds/internal/httpfilter/fault", ++ "//xds/internal/httpfilter/rbac", ++ "//xds/internal/httpfilter/router", ++ "//xds/internal/resolver", ++ "//xds/internal/server", ++ "//xds/internal/xdsclient", ++ "//xds/internal/xdsclient/bootstrap", ++ "//xds/internal/xdsclient/xdslbregistry/converter", ++ "//xds/internal/xdsclient/xdsresource", ++ "@com_github_envoyproxy_go_control_plane//envoy/service/status/v3:go_default_library", ++ ], ++) ++ ++alias( ++ name = "go_default_library", ++ actual = ":xds", ++ visibility = ["//visibility:public"], ++) ++ ++go_test( ++ name = "xds_test", ++ srcs = ["server_test.go"], ++ embed = [":xds"], ++ deps = [ ++ "//:grpc", ++ "//connectivity", ++ "//credentials/insecure", ++ "//credentials/tls/certprovider", ++ "//credentials/xds", ++ "//internal/grpctest", ++ "//internal/testutils", ++ "//internal/testutils/xds/bootstrap", ++ "//internal/testutils/xds/e2e", ++ "//xds/internal/httpfilter/router", ++ "//xds/internal/xdsclient", ++ "//xds/internal/xdsclient/xdsresource/version", ++ "@com_github_envoyproxy_go_control_plane//envoy/config/listener/v3:go_default_library", ++ "@com_github_envoyproxy_go_control_plane//envoy/service/discovery/v3:go_default_library", ++ "@com_github_google_go_cmp//cmp:go_default_library", ++ "@com_github_google_uuid//:go_default_library", ++ ], ++) +diff -urN a/xds/csds/BUILD.bazel b/xds/csds/BUILD.bazel +--- a/xds/csds/BUILD.bazel 1970-01-01 00:00:00.000000000 +0000 ++++ b/xds/csds/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000 +@@ -0,0 +1,53 @@ ++load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test") ++ ++go_library( ++ name = "csds", ++ srcs = ["csds.go"], ++ importpath = "google.golang.org/grpc/xds/csds", ++ visibility = ["//visibility:public"], ++ deps = [ ++ "//codes", ++ "//grpclog", ++ "//internal/grpclog", ++ "//status", ++ "//xds/internal/xdsclient", ++ "//xds/internal/xdsclient/xdsresource", ++ "@com_github_envoyproxy_go_control_plane//envoy/admin/v3:go_default_library", ++ "@com_github_envoyproxy_go_control_plane//envoy/service/status/v3:go_default_library", ++ "@org_golang_google_protobuf//types/known/timestamppb:go_default_library", ++ ], ++) ++ ++alias( ++ name = "go_default_library", ++ actual = ":csds", ++ visibility = ["//visibility:public"], ++) ++ ++go_test( ++ name = "csds_test", ++ srcs = ["csds_e2e_test.go"], ++ deps = [ ++ ":csds", ++ "//:grpc", ++ "//credentials/insecure", ++ "//internal/grpctest", ++ "//internal/testutils", ++ "//internal/testutils/xds/bootstrap", ++ "//internal/testutils/xds/e2e", ++ "//xds/internal/httpfilter/router", ++ "//xds/internal/xdsclient", ++ "//xds/internal/xdsclient/xdsresource", ++ "@com_github_envoyproxy_go_control_plane//envoy/admin/v3:go_default_library", ++ "@com_github_envoyproxy_go_control_plane//envoy/config/cluster/v3:go_default_library", ++ "@com_github_envoyproxy_go_control_plane//envoy/config/endpoint/v3:go_default_library", ++ "@com_github_envoyproxy_go_control_plane//envoy/config/listener/v3:go_default_library", ++ "@com_github_envoyproxy_go_control_plane//envoy/config/route/v3:go_default_library", ++ "@com_github_envoyproxy_go_control_plane//envoy/service/status/v3:go_default_library", ++ "@com_github_golang_protobuf//proto:go_default_library", ++ "@com_github_google_go_cmp//cmp:go_default_library", ++ "@com_github_google_uuid//:go_default_library", ++ "@org_golang_google_protobuf//testing/protocmp:go_default_library", ++ "@org_golang_google_protobuf//types/known/anypb:go_default_library", ++ ], ++) +diff -urN a/xds/googledirectpath/BUILD.bazel b/xds/googledirectpath/BUILD.bazel +--- a/xds/googledirectpath/BUILD.bazel 1970-01-01 00:00:00.000000000 +0000 ++++ b/xds/googledirectpath/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000 +@@ -0,0 +1,50 @@ ++load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test") ++ ++go_library( ++ name = "googledirectpath", ++ srcs = [ ++ "googlec2p.go", ++ "utils.go", ++ ], ++ importpath = "google.golang.org/grpc/xds/googledirectpath", ++ visibility = ["//visibility:public"], ++ deps = [ ++ "//:grpc", ++ "//grpclog", ++ "//internal/envconfig", ++ "//internal/googlecloud", ++ "//internal/grpclog", ++ "//internal/grpcrand", ++ "//resolver", ++ "//xds", ++ "//xds/internal/xdsclient", ++ "//xds/internal/xdsclient/bootstrap", ++ "@com_github_envoyproxy_go_control_plane//envoy/config/core/v3:go_default_library", ++ "@org_golang_google_protobuf//types/known/structpb:go_default_library", ++ ], ++) ++ ++alias( ++ name = "go_default_library", ++ actual = ":googledirectpath", ++ visibility = ["//visibility:public"], ++) ++ ++go_test( ++ name = "googledirectpath_test", ++ srcs = ["googlec2p_test.go"], ++ embed = [":googledirectpath"], ++ deps = [ ++ "//:grpc", ++ "//credentials/insecure", ++ "//internal/envconfig", ++ "//resolver", ++ "//xds/internal/xdsclient", ++ "//xds/internal/xdsclient/bootstrap", ++ "@com_github_envoyproxy_go_control_plane//envoy/config/core/v3:go_default_library", ++ "@com_github_google_go_cmp//cmp:go_default_library", ++ "@com_github_google_go_cmp//cmp/cmpopts:go_default_library", ++ "@org_golang_google_protobuf//testing/protocmp:go_default_library", ++ "@org_golang_google_protobuf//types/known/structpb:go_default_library", ++ ], ++) +diff -urN a/xds/internal/balancer/BUILD.bazel b/xds/internal/balancer/BUILD.bazel +--- a/xds/internal/balancer/BUILD.bazel 1970-01-01 00:00:00.000000000 +0000 ++++ b/xds/internal/balancer/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000 +@@ -0,0 +1,24 @@ ++load("@io_bazel_rules_go//go:def.bzl", "go_library") ++ ++go_library( ++ name = "balancer", ++ srcs = ["balancer.go"], ++ importpath = "google.golang.org/grpc/xds/internal/balancer", ++ visibility = ["//xds:__subpackages__"], ++ deps = [ ++ "//balancer/leastrequest", ++ "//balancer/weightedtarget", ++ "//xds/internal/balancer/cdsbalancer", ++ "//xds/internal/balancer/clusterimpl", ++ "//xds/internal/balancer/clustermanager", ++ "//xds/internal/balancer/clusterresolver", ++ "//xds/internal/balancer/outlierdetection", ++ "//xds/internal/balancer/priority", ++ ], ++) ++ ++alias( ++ name = "go_default_library", ++ actual = ":balancer", ++ visibility = ["//xds:__subpackages__"], ++) +diff -urN a/xds/internal/balancer/cdsbalancer/BUILD.bazel b/xds/internal/balancer/cdsbalancer/BUILD.bazel +--- a/xds/internal/balancer/cdsbalancer/BUILD.bazel 1970-01-01 00:00:00.000000000 +0000 ++++ b/xds/internal/balancer/cdsbalancer/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000 +@@ -0,0 +1,89 @@ ++load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test") ++ ++go_library( ++ name = "cdsbalancer", ++ srcs = [ ++ "cdsbalancer.go", ++ "cluster_watcher.go", ++ "logging.go", ++ ], ++ importpath = "google.golang.org/grpc/xds/internal/balancer/cdsbalancer", ++ visibility = ["//xds:__subpackages__"], ++ deps = [ ++ "//balancer", ++ "//balancer/base", ++ "//connectivity", ++ "//credentials", ++ "//credentials/tls/certprovider", ++ "//grpclog", ++ "//internal/balancer/nop", ++ "//internal/credentials/xds", ++ "//internal/envconfig", ++ "//internal/grpclog", ++ "//internal/grpcsync", ++ "//internal/pretty", ++ "//resolver", ++ "//serviceconfig", ++ "//xds/internal/balancer/clusterresolver", ++ "//xds/internal/xdsclient", ++ "//xds/internal/xdsclient/xdsresource", ++ ], ++) ++ ++alias( ++ name = "go_default_library", ++ actual = ":cdsbalancer", ++ visibility = ["//xds:__subpackages__"], ++) ++ ++go_test( ++ name = "cdsbalancer_test", ++ srcs = [ ++ "aggregate_cluster_test.go", ++ "cdsbalancer_security_test.go", ++ "cdsbalancer_test.go", ++ ], ++ embed = [":cdsbalancer"], ++ deps = [ ++ "//:grpc", ++ "//attributes", ++ "//balancer", ++ "//codes", ++ "//connectivity", ++ "//credentials", ++ "//credentials/insecure", ++ "//credentials/tls/certprovider", ++ "//credentials/tls/certprovider/pemfile", ++ "//credentials/xds", ++ "//internal", ++ "//internal/balancer/stub", ++ "//internal/credentials/xds", ++ "//internal/grpctest", ++ "//internal/pretty", ++ "//internal/stubserver", ++ "//internal/testutils", ++ "//internal/testutils/xds/bootstrap", ++ "//internal/testutils/xds/e2e", ++ "//interop/grpc_testing", ++ "//peer", ++ "//resolver", ++ "//resolver/manual", ++ "//serviceconfig", ++ "//status", ++ "//testdata", ++ "//xds/internal/balancer/clusterresolver", ++ "//xds/internal/balancer/ringhash", ++ "//xds/internal/xdsclient", ++ "//xds/internal/xdsclient/bootstrap", ++ "//xds/internal/xdsclient/xdsresource", ++ "//xds/internal/xdsclient/xdsresource/version", ++ "@com_github_envoyproxy_go_control_plane//envoy/config/cluster/v3:go_default_library", ++ "@com_github_envoyproxy_go_control_plane//envoy/config/core/v3:go_default_library", ++ "@com_github_envoyproxy_go_control_plane//envoy/config/endpoint/v3:go_default_library", ++ "@com_github_envoyproxy_go_control_plane//envoy/extensions/transport_sockets/tls/v3:go_default_library", ++ "@com_github_envoyproxy_go_control_plane//envoy/service/discovery/v3:go_default_library", ++ "@com_github_google_go_cmp//cmp:go_default_library", ++ "@org_golang_google_protobuf//types/known/durationpb:go_default_library", ++ "@org_golang_google_protobuf//types/known/wrapperspb:go_default_library", ++ ], ++) +diff -urN a/xds/internal/balancer/clusterimpl/BUILD.bazel b/xds/internal/balancer/clusterimpl/BUILD.bazel +--- a/xds/internal/balancer/clusterimpl/BUILD.bazel 1970-01-01 00:00:00.000000000 +0000 ++++ b/xds/internal/balancer/clusterimpl/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000 +@@ -0,0 +1,71 @@ ++load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test") ++ ++go_library( ++ name = "clusterimpl", ++ srcs = [ ++ "clusterimpl.go", ++ "config.go", ++ "logging.go", ++ "picker.go", ++ ], ++ importpath = "google.golang.org/grpc/xds/internal/balancer/clusterimpl", ++ visibility = ["//xds:__subpackages__"], ++ deps = [ ++ "//balancer", ++ "//codes", ++ "//connectivity", ++ "//grpclog", ++ "//internal", ++ "//internal/balancer/gracefulswitch", ++ "//internal/buffer", ++ "//internal/grpclog", ++ "//internal/grpcsync", ++ "//internal/pretty", ++ "//internal/serviceconfig", ++ "//internal/wrr", ++ "//resolver", ++ "//serviceconfig", ++ "//status", ++ "//xds/internal", ++ "//xds/internal/balancer/loadstore", ++ "//xds/internal/xdsclient", ++ "//xds/internal/xdsclient/bootstrap", ++ "//xds/internal/xdsclient/load", ++ "@com_github_cncf_xds_go//xds/data/orca/v3:go_default_library", ++ ], ++) ++ ++alias( ++ name = "go_default_library", ++ actual = ":clusterimpl", ++ visibility = ["//xds:__subpackages__"], ++) ++ ++go_test( ++ name = "clusterimpl_test", ++ srcs = [ ++ "balancer_test.go", ++ "config_test.go", ++ ], ++ embed = [":clusterimpl"], ++ deps = [ ++ "//balancer", ++ "//balancer/base", ++ "//balancer/roundrobin", ++ "//balancer/weightedtarget", ++ "//connectivity", ++ "//internal", ++ "//internal/balancer/stub", ++ "//internal/grpctest", ++ "//internal/serviceconfig", ++ "//internal/testutils", ++ "//resolver", ++ "//xds/internal", ++ "//xds/internal/testutils/fakeclient", ++ "//xds/internal/xdsclient", ++ "//xds/internal/xdsclient/bootstrap", ++ "//xds/internal/xdsclient/load", ++ "@com_github_google_go_cmp//cmp:go_default_library", ++ "@com_github_google_go_cmp//cmp/cmpopts:go_default_library", ++ ], ++) +diff -urN a/xds/internal/balancer/clusterimpl/tests/BUILD.bazel b/xds/internal/balancer/clusterimpl/tests/BUILD.bazel +--- a/xds/internal/balancer/clusterimpl/tests/BUILD.bazel 1970-01-01 00:00:00.000000000 +0000 ++++ b/xds/internal/balancer/clusterimpl/tests/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000 +@@ -0,0 +1,20 @@ ++load("@io_bazel_rules_go//go:def.bzl", "go_test") ++ ++go_test( ++ name = "tests_test", ++ srcs = ["balancer_test.go"], ++ deps = [ ++ "//:grpc", ++ "//codes", ++ "//credentials/insecure", ++ "//internal/grpctest", ++ "//internal/stubserver", ++ "//internal/testutils", ++ "//internal/testutils/xds/e2e", ++ "//interop/grpc_testing", ++ "//status", ++ "//xds", ++ "@com_github_envoyproxy_go_control_plane//envoy/config/core/v3:go_default_library", ++ "@com_github_envoyproxy_go_control_plane//envoy/config/endpoint/v3:go_default_library", ++ ], ++) +diff -urN a/xds/internal/balancer/clustermanager/BUILD.bazel b/xds/internal/balancer/clustermanager/BUILD.bazel +--- a/xds/internal/balancer/clustermanager/BUILD.bazel 1970-01-01 00:00:00.000000000 +0000 ++++ b/xds/internal/balancer/clustermanager/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000 +@@ -0,0 +1,61 @@ ++load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test") ++ ++go_library( ++ name = "clustermanager", ++ srcs = [ ++ "balancerstateaggregator.go", ++ "clustermanager.go", ++ "config.go", ++ "picker.go", ++ ], ++ importpath = "google.golang.org/grpc/xds/internal/balancer/clustermanager", ++ visibility = ["//xds:__subpackages__"], ++ deps = [ ++ "//balancer", ++ "//balancer/base", ++ "//codes", ++ "//connectivity", ++ "//grpclog", ++ "//internal/balancergroup", ++ "//internal/grpclog", ++ "//internal/hierarchy", ++ "//internal/pretty", ++ "//internal/serviceconfig", ++ "//resolver", ++ "//serviceconfig", ++ "//status", ++ ], ++) ++ ++alias( ++ name = "go_default_library", ++ actual = ":clustermanager", ++ visibility = ["//xds:__subpackages__"], ++) ++ ++go_test( ++ name = "clustermanager_test", ++ srcs = [ ++ "clustermanager_test.go", ++ "config_test.go", ++ ], ++ embed = [":clustermanager"], ++ deps = [ ++ "//:grpc", ++ "//balancer", ++ "//balancer/weightedtarget", ++ "//codes", ++ "//connectivity", ++ "//credentials/insecure", ++ "//internal/balancer/stub", ++ "//internal/channelz", ++ "//internal/grpctest", ++ "//internal/hierarchy", ++ "//internal/serviceconfig", ++ "//internal/testutils", ++ "//resolver", ++ "//status", ++ "//xds/internal/balancer/cdsbalancer", ++ "@com_github_google_go_cmp//cmp:go_default_library", ++ ], ++) +diff -urN a/xds/internal/balancer/clusterresolver/BUILD.bazel b/xds/internal/balancer/clusterresolver/BUILD.bazel +--- a/xds/internal/balancer/clusterresolver/BUILD.bazel 1970-01-01 00:00:00.000000000 +0000 ++++ b/xds/internal/balancer/clusterresolver/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000 +@@ -0,0 +1,80 @@ ++load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test") ++ ++go_library( ++ name = "clusterresolver", ++ srcs = [ ++ "clusterresolver.go", ++ "config.go", ++ "configbuilder.go", ++ "configbuilder_childname.go", ++ "logging.go", ++ "resource_resolver.go", ++ "resource_resolver_dns.go", ++ "resource_resolver_eds.go", ++ ], ++ importpath = "google.golang.org/grpc/xds/internal/balancer/clusterresolver", ++ visibility = ["//xds:__subpackages__"], ++ deps = [ ++ "//attributes", ++ "//balancer", ++ "//balancer/base", ++ "//balancer/weightedroundrobin", ++ "//connectivity", ++ "//grpclog", ++ "//internal/balancer/nop", ++ "//internal/buffer", ++ "//internal/envconfig", ++ "//internal/grpclog", ++ "//internal/grpcsync", ++ "//internal/hierarchy", ++ "//internal/pretty", ++ "//internal/serviceconfig", ++ "//resolver", ++ "//serviceconfig", ++ "//xds/internal", ++ "//xds/internal/balancer/clusterimpl", ++ "//xds/internal/balancer/outlierdetection", ++ "//xds/internal/balancer/priority", ++ "//xds/internal/balancer/wrrlocality", ++ "//xds/internal/xdsclient", ++ "//xds/internal/xdsclient/bootstrap", ++ "//xds/internal/xdsclient/xdsresource", ++ ], ++) ++ ++alias( ++ name = "go_default_library", ++ actual = ":clusterresolver", ++ visibility = ["//xds:__subpackages__"], ++) ++ ++go_test( ++ name = "clusterresolver_test", ++ srcs = [ ++ "clusterresolver_test.go", ++ "config_test.go", ++ "configbuilder_childname_test.go", ++ "configbuilder_test.go", ++ ], ++ embed = [":clusterresolver"], ++ deps = [ ++ "//attributes", ++ "//balancer", ++ "//balancer/roundrobin", ++ "//balancer/weightedroundrobin", ++ "//internal/grpctest", ++ "//internal/hierarchy", ++ "//internal/serviceconfig", ++ "//resolver", ++ "//xds/internal", ++ "//xds/internal/balancer/clusterimpl", ++ "//xds/internal/balancer/outlierdetection", ++ "//xds/internal/balancer/priority", ++ "//xds/internal/balancer/ringhash", ++ "//xds/internal/balancer/wrrlocality", ++ "//xds/internal/xdsclient/bootstrap", ++ "//xds/internal/xdsclient/xdsresource", ++ "@com_github_google_go_cmp//cmp:go_default_library", ++ "@com_github_google_go_cmp//cmp/cmpopts:go_default_library", ++ ], ++) +diff -urN a/xds/internal/balancer/clusterresolver/e2e_test/BUILD.bazel b/xds/internal/balancer/clusterresolver/e2e_test/BUILD.bazel +--- a/xds/internal/balancer/clusterresolver/e2e_test/BUILD.bazel 1970-01-01 00:00:00.000000000 +0000 ++++ b/xds/internal/balancer/clusterresolver/e2e_test/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000 +@@ -0,0 +1,51 @@ ++load("@io_bazel_rules_go//go:def.bzl", "go_test") ++ ++go_test( ++ name = "e2e_test_test", ++ srcs = [ ++ "aggregate_cluster_test.go", ++ "balancer_test.go", ++ "eds_impl_test.go", ++ ], ++ deps = [ ++ "//:grpc", ++ "//balancer", ++ "//balancer/roundrobin", ++ "//codes", ++ "//connectivity", ++ "//credentials/insecure", ++ "//internal", ++ "//internal/balancer/stub", ++ "//internal/grpctest", ++ "//internal/serviceconfig", ++ "//internal/stubserver", ++ "//internal/testutils", ++ "//internal/testutils/pickfirst", ++ "//internal/testutils/roundrobin", ++ "//internal/testutils/xds/e2e", ++ "//interop/grpc_testing", ++ "//peer", ++ "//resolver", ++ "//resolver/manual", ++ "//serviceconfig", ++ "//status", ++ "//xds/internal/balancer/cdsbalancer", ++ "//xds/internal/balancer/clusterimpl", ++ "//xds/internal/balancer/clusterresolver", ++ "//xds/internal/balancer/outlierdetection", ++ "//xds/internal/balancer/priority", ++ "//xds/internal/balancer/wrrlocality", ++ "//xds/internal/testutils", ++ "//xds/internal/xdsclient", ++ "//xds/internal/xdsclient/bootstrap", ++ "//xds/internal/xdsclient/xdsresource/version", ++ "@com_github_envoyproxy_go_control_plane//envoy/config/cluster/v3:go_default_library", ++ "@com_github_envoyproxy_go_control_plane//envoy/config/core/v3:go_default_library", ++ "@com_github_envoyproxy_go_control_plane//envoy/config/endpoint/v3:go_default_library", ++ "@com_github_envoyproxy_go_control_plane//envoy/service/discovery/v3:go_default_library", ++ "@com_github_google_go_cmp//cmp:go_default_library", ++ "@com_github_google_uuid//:go_default_library", ++ "@org_golang_google_protobuf//types/known/durationpb:go_default_library", ++ "@org_golang_google_protobuf//types/known/wrapperspb:go_default_library", ++ ], ++) +diff -urN a/xds/internal/balancer/loadstore/BUILD.bazel b/xds/internal/balancer/loadstore/BUILD.bazel +--- a/xds/internal/balancer/loadstore/BUILD.bazel 1970-01-01 00:00:00.000000000 +0000 ++++ b/xds/internal/balancer/loadstore/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000 +@@ -0,0 +1,15 @@ ++load("@io_bazel_rules_go//go:def.bzl", "go_library") ++ ++go_library( ++ name = "loadstore", ++ srcs = ["load_store_wrapper.go"], ++ importpath = "google.golang.org/grpc/xds/internal/balancer/loadstore", ++ visibility = ["//xds:__subpackages__"], ++ deps = ["//xds/internal/xdsclient/load"], ++) ++ ++alias( ++ name = "go_default_library", ++ actual = ":loadstore", ++ visibility = ["//xds:__subpackages__"], ++) +diff -urN a/xds/internal/balancer/outlierdetection/BUILD.bazel b/xds/internal/balancer/outlierdetection/BUILD.bazel +--- a/xds/internal/balancer/outlierdetection/BUILD.bazel 1970-01-01 00:00:00.000000000 +0000 ++++ b/xds/internal/balancer/outlierdetection/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000 +@@ -0,0 +1,60 @@ ++load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test") ++ ++go_library( ++ name = "outlierdetection", ++ srcs = [ ++ "balancer.go", ++ "callcounter.go", ++ "config.go", ++ "logging.go", ++ "subconn_wrapper.go", ++ ], ++ importpath = "google.golang.org/grpc/xds/internal/balancer/outlierdetection", ++ visibility = ["//xds:__subpackages__"], ++ deps = [ ++ "//balancer", ++ "//connectivity", ++ "//grpclog", ++ "//internal/balancer/gracefulswitch", ++ "//internal/buffer", ++ "//internal/channelz", ++ "//internal/envconfig", ++ "//internal/grpclog", ++ "//internal/grpcrand", ++ "//internal/grpcsync", ++ "//internal/serviceconfig", ++ "//resolver", ++ "//serviceconfig", ++ ], ++) ++ ++alias( ++ name = "go_default_library", ++ actual = ":outlierdetection", ++ visibility = ["//xds:__subpackages__"], ++) ++ ++go_test( ++ name = "outlierdetection_test", ++ srcs = [ ++ "balancer_test.go", ++ "callcounter_test.go", ++ "config_test.go", ++ ], ++ embed = [":outlierdetection"], ++ deps = [ ++ "//balancer", ++ "//connectivity", ++ "//internal/balancer/stub", ++ "//internal/channelz", ++ "//internal/grpcsync", ++ "//internal/grpctest", ++ "//internal/serviceconfig", ++ "//internal/testutils", ++ "//resolver", ++ "//serviceconfig", ++ "//xds/internal/balancer/clusterimpl", ++ "@com_github_google_go_cmp//cmp:go_default_library", ++ "@com_github_google_go_cmp//cmp/cmpopts:go_default_library", ++ ], ++) +diff -urN a/xds/internal/balancer/outlierdetection/e2e_test/BUILD.bazel b/xds/internal/balancer/outlierdetection/e2e_test/BUILD.bazel +--- a/xds/internal/balancer/outlierdetection/e2e_test/BUILD.bazel 1970-01-01 00:00:00.000000000 +0000 ++++ b/xds/internal/balancer/outlierdetection/e2e_test/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000 +@@ -0,0 +1,20 @@ ++load("@io_bazel_rules_go//go:def.bzl", "go_test") ++ ++go_test( ++ name = "e2e_test_test", ++ srcs = ["outlierdetection_test.go"], ++ deps = [ ++ "//:grpc", ++ "//credentials/insecure", ++ "//internal", ++ "//internal/grpctest", ++ "//internal/stubserver", ++ "//interop/grpc_testing", ++ "//peer", ++ "//resolver", ++ "//resolver/manual", ++ "//serviceconfig", ++ "//xds/internal/balancer/outlierdetection", ++ "@com_github_google_go_cmp//cmp:go_default_library", ++ ], ++) +diff -urN a/xds/internal/balancer/priority/BUILD.bazel b/xds/internal/balancer/priority/BUILD.bazel +--- a/xds/internal/balancer/priority/BUILD.bazel 1970-01-01 00:00:00.000000000 +0000 ++++ b/xds/internal/balancer/priority/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000 +@@ -0,0 +1,60 @@ ++load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test") ++ ++go_library( ++ name = "priority", ++ srcs = [ ++ "balancer.go", ++ "balancer_child.go", ++ "balancer_priority.go", ++ "config.go", ++ "ignore_resolve_now.go", ++ "logging.go", ++ "utils.go", ++ ], ++ importpath = "google.golang.org/grpc/xds/internal/balancer/priority", ++ visibility = ["//xds:__subpackages__"], ++ deps = [ ++ "//balancer", ++ "//balancer/base", ++ "//connectivity", ++ "//grpclog", ++ "//internal/balancergroup", ++ "//internal/buffer", ++ "//internal/grpclog", ++ "//internal/grpcsync", ++ "//internal/hierarchy", ++ "//internal/pretty", ++ "//internal/serviceconfig", ++ "//resolver", ++ "//serviceconfig", ++ ], ++) ++ ++alias( ++ name = "go_default_library", ++ actual = ":priority", ++ visibility = ["//xds:__subpackages__"], ++) ++ ++go_test( ++ name = "priority_test", ++ srcs = [ ++ "balancer_test.go", ++ "config_test.go", ++ "ignore_resolve_now_test.go", ++ "utils_test.go", ++ ], ++ embed = [":priority"], ++ deps = [ ++ "//balancer", ++ "//balancer/roundrobin", ++ "//connectivity", ++ "//internal/balancer/stub", ++ "//internal/grpctest", ++ "//internal/hierarchy", ++ "//internal/serviceconfig", ++ "//internal/testutils", ++ "//resolver", ++ "@com_github_google_go_cmp//cmp:go_default_library", ++ ], ++) +diff -urN a/xds/internal/balancer/ringhash/BUILD.bazel b/xds/internal/balancer/ringhash/BUILD.bazel +--- a/xds/internal/balancer/ringhash/BUILD.bazel 1970-01-01 00:00:00.000000000 +0000 ++++ b/xds/internal/balancer/ringhash/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000 +@@ -0,0 +1,63 @@ ++load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test") ++ ++go_library( ++ name = "ringhash", ++ srcs = [ ++ "config.go", ++ "logging.go", ++ "picker.go", ++ "ring.go", ++ "ringhash.go", ++ "util.go", ++ ], ++ importpath = "google.golang.org/grpc/xds/internal/balancer/ringhash", ++ visibility = ["//xds:__subpackages__"], ++ deps = [ ++ "//balancer", ++ "//balancer/base", ++ "//balancer/weightedroundrobin", ++ "//codes", ++ "//connectivity", ++ "//grpclog", ++ "//internal/envconfig", ++ "//internal/grpclog", ++ "//internal/pretty", ++ "//resolver", ++ "//serviceconfig", ++ "//status", ++ "@com_github_cespare_xxhash_v2//:go_default_library", ++ ], ++) ++ ++alias( ++ name = "go_default_library", ++ actual = ":ringhash", ++ visibility = ["//xds:__subpackages__"], ++) ++ ++go_test( ++ name = "ringhash_test", ++ srcs = [ ++ "config_test.go", ++ "picker_test.go", ++ "ring_test.go", ++ "ringhash_test.go", ++ ], ++ embed = [":ringhash"], ++ deps = [ ++ "//attributes", ++ "//balancer", ++ "//balancer/weightedroundrobin", ++ "//connectivity", ++ "//grpclog", ++ "//internal/envconfig", ++ "//internal/grpclog", ++ "//internal/grpctest", ++ "//internal/testutils", ++ "//resolver", ++ "//xds/internal", ++ "@com_github_cespare_xxhash_v2//:go_default_library", ++ "@com_github_google_go_cmp//cmp:go_default_library", ++ "@com_github_google_go_cmp//cmp/cmpopts:go_default_library", ++ ], ++) +diff -urN a/xds/internal/balancer/ringhash/e2e/BUILD.bazel b/xds/internal/balancer/ringhash/e2e/BUILD.bazel +--- a/xds/internal/balancer/ringhash/e2e/BUILD.bazel 1970-01-01 00:00:00.000000000 +0000 ++++ b/xds/internal/balancer/ringhash/e2e/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000 +@@ -0,0 +1,17 @@ ++load("@io_bazel_rules_go//go:def.bzl", "go_test") ++ ++go_test( ++ name = "e2e_test", ++ srcs = ["ringhash_balancer_test.go"], ++ deps = [ ++ "//:grpc", ++ "//connectivity", ++ "//credentials/insecure", ++ "//internal/grpctest", ++ "//internal/testutils", ++ "//interop/grpc_testing", ++ "//resolver", ++ "//resolver/manual", ++ "//xds/internal/balancer/ringhash", ++ ], ++) +diff -urN a/xds/internal/balancer/wrrlocality/BUILD.bazel b/xds/internal/balancer/wrrlocality/BUILD.bazel +--- a/xds/internal/balancer/wrrlocality/BUILD.bazel 1970-01-01 00:00:00.000000000 +0000 ++++ b/xds/internal/balancer/wrrlocality/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000 +@@ -0,0 +1,46 @@ ++load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test") ++ ++go_library( ++ name = "wrrlocality", ++ srcs = [ ++ "balancer.go", ++ "logging.go", ++ ], ++ importpath = "google.golang.org/grpc/xds/internal/balancer/wrrlocality", ++ visibility = ["//xds:__subpackages__"], ++ deps = [ ++ "//balancer", ++ "//balancer/weightedtarget", ++ "//grpclog", ++ "//internal/grpclog", ++ "//internal/serviceconfig", ++ "//resolver", ++ "//serviceconfig", ++ "//xds/internal", ++ ], ++) ++ ++alias( ++ name = "go_default_library", ++ actual = ":wrrlocality", ++ visibility = ["//xds:__subpackages__"], ++) ++ ++go_test( ++ name = "wrrlocality_test", ++ srcs = ["balancer_test.go"], ++ embed = [":wrrlocality"], ++ deps = [ ++ "//balancer", ++ "//balancer/roundrobin", ++ "//balancer/weightedtarget", ++ "//internal/balancer/stub", ++ "//internal/grpctest", ++ "//internal/serviceconfig", ++ "//internal/testutils", ++ "//resolver", ++ "//serviceconfig", ++ "//xds/internal", ++ "@com_github_google_go_cmp//cmp:go_default_library", ++ ], ++) +diff -urN a/xds/internal/BUILD.bazel b/xds/internal/BUILD.bazel +--- a/xds/internal/BUILD.bazel 1970-01-01 00:00:00.000000000 +0000 ++++ b/xds/internal/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000 +@@ -0,0 +1,26 @@ ++load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test") ++ ++go_library( ++ name = "internal", ++ srcs = ["internal.go"], ++ importpath = "google.golang.org/grpc/xds/internal", ++ visibility = ["//xds:__subpackages__"], ++ deps = ["//resolver"], ++) ++ ++alias( ++ name = "go_default_library", ++ actual = ":internal", ++ visibility = ["//xds:__subpackages__"], ++) ++ ++go_test( ++ name = "internal_test", ++ srcs = ["internal_test.go"], ++ embed = [":internal"], ++ deps = [ ++ "//internal/grpctest", ++ "@com_github_envoyproxy_go_control_plane//envoy/api/v2/core:go_default_library", ++ "@com_github_google_go_cmp//cmp:go_default_library", ++ ], ++) +diff -urN a/xds/internal/clusterspecifier/BUILD.bazel b/xds/internal/clusterspecifier/BUILD.bazel +--- a/xds/internal/clusterspecifier/BUILD.bazel 1970-01-01 00:00:00.000000000 +0000 ++++ b/xds/internal/clusterspecifier/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000 +@@ -0,0 +1,15 @@ ++load("@io_bazel_rules_go//go:def.bzl", "go_library") ++ ++go_library( ++ name = "clusterspecifier", ++ srcs = ["cluster_specifier.go"], ++ importpath = "google.golang.org/grpc/xds/internal/clusterspecifier", ++ visibility = ["//xds:__subpackages__"], ++ deps = ["@com_github_golang_protobuf//proto:go_default_library"], ++) ++ ++alias( ++ name = "go_default_library", ++ actual = ":clusterspecifier", ++ visibility = ["//xds:__subpackages__"], ++) +diff -urN a/xds/internal/clusterspecifier/rls/BUILD.bazel b/xds/internal/clusterspecifier/rls/BUILD.bazel +--- a/xds/internal/clusterspecifier/rls/BUILD.bazel 1970-01-01 00:00:00.000000000 +0000 ++++ b/xds/internal/clusterspecifier/rls/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000 +@@ -0,0 +1,43 @@ ++load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test") ++ ++go_library( ++ name = "rls", ++ srcs = ["rls.go"], ++ importpath = "google.golang.org/grpc/xds/internal/clusterspecifier/rls", ++ visibility = ["//xds:__subpackages__"], ++ deps = [ ++ "//balancer", ++ "//internal", ++ "//internal/envconfig", ++ "//internal/proto/grpc_lookup_v1", ++ "//xds/internal/clusterspecifier", ++ "@com_github_golang_protobuf//proto:go_default_library", ++ "@com_github_golang_protobuf//ptypes:go_default_library", ++ "@org_golang_google_protobuf//encoding/protojson:go_default_library", ++ "@org_golang_google_protobuf//types/known/anypb:go_default_library", ++ ], ++) ++ ++alias( ++ name = "go_default_library", ++ actual = ":rls", ++ visibility = ["//xds:__subpackages__"], ++) ++ ++go_test( ++ name = "rls_test", ++ srcs = ["rls_test.go"], ++ embed = [":rls"], ++ deps = [ ++ "//balancer/rls", ++ "//internal/grpctest", ++ "//internal/proto/grpc_lookup_v1", ++ "//internal/testutils", ++ "//xds/internal/balancer/cdsbalancer", ++ "//xds/internal/clusterspecifier", ++ "@com_github_golang_protobuf//proto:go_default_library", ++ "@com_github_google_go_cmp//cmp:go_default_library", ++ "@com_github_google_go_cmp//cmp/cmpopts:go_default_library", ++ "@org_golang_google_protobuf//types/known/durationpb:go_default_library", ++ ], ++) +diff -urN a/xds/internal/httpfilter/BUILD.bazel b/xds/internal/httpfilter/BUILD.bazel +--- a/xds/internal/httpfilter/BUILD.bazel 1970-01-01 00:00:00.000000000 +0000 ++++ b/xds/internal/httpfilter/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000 +@@ -0,0 +1,18 @@ ++load("@io_bazel_rules_go//go:def.bzl", "go_library") ++ ++go_library( ++ name = "httpfilter", ++ srcs = ["httpfilter.go"], ++ importpath = "google.golang.org/grpc/xds/internal/httpfilter", ++ visibility = ["//xds:__subpackages__"], ++ deps = [ ++ "//internal/resolver", ++ "@com_github_golang_protobuf//proto:go_default_library", ++ ], ++) ++ ++alias( ++ name = "go_default_library", ++ actual = ":httpfilter", ++ visibility = ["//xds:__subpackages__"], ++) +diff -urN a/xds/internal/httpfilter/fault/BUILD.bazel b/xds/internal/httpfilter/fault/BUILD.bazel +--- a/xds/internal/httpfilter/fault/BUILD.bazel 1970-01-01 00:00:00.000000000 +0000 ++++ b/xds/internal/httpfilter/fault/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000 +@@ -0,0 +1,325 @@ ++load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test") ++ ++go_library( ++ name = "fault", ++ srcs = ["fault.go"], ++ importpath = "google.golang.org/grpc/xds/internal/httpfilter/fault", ++ visibility = ["//xds:__subpackages__"], ++ deps = [ ++ "//codes", ++ "//internal/grpcrand", ++ "//internal/resolver", ++ "//metadata", ++ "//status", ++ "//xds/internal/httpfilter", ++ "@com_github_envoyproxy_go_control_plane//envoy/extensions/filters/common/fault/v3:go_default_library", ++ "@com_github_envoyproxy_go_control_plane//envoy/extensions/filters/http/fault/v3:go_default_library", ++ "@com_github_envoyproxy_go_control_plane//envoy/type/v3:go_default_library", ++ "@com_github_golang_protobuf//proto:go_default_library", ++ "@com_github_golang_protobuf//ptypes:go_default_library", ++ "@org_golang_google_protobuf//types/known/anypb:go_default_library", ++ ], ++) ++ ++alias( ++ name = "go_default_library", ++ actual = ":fault", ++ visibility = ["//xds:__subpackages__"], ++) ++ ++go_test( ++ name = "fault_test", ++ srcs = ["fault_test.go"], ++ embed = [":fault"], ++ deps = select({ ++ "@io_bazel_rules_go//go/platform:amd64": [ ++ "//:grpc", ++ "//codes", ++ "//credentials/insecure", ++ "//internal/grpcrand", ++ "//internal/grpctest", ++ "//internal/testutils", ++ "//internal/testutils/xds/bootstrap", ++ "//internal/testutils/xds/e2e", ++ "//interop/grpc_testing", ++ "//metadata", ++ "//status", ++ "//xds/internal/balancer", ++ "//xds/internal/httpfilter/router", ++ "//xds/internal/resolver", ++ "@com_github_envoyproxy_go_control_plane//envoy/config/listener/v3:go_default_library", ++ "@com_github_envoyproxy_go_control_plane//envoy/extensions/filters/common/fault/v3:go_default_library", ++ "@com_github_envoyproxy_go_control_plane//envoy/extensions/filters/http/fault/v3:go_default_library", ++ "@com_github_envoyproxy_go_control_plane//envoy/extensions/filters/network/http_connection_manager/v3:go_default_library", ++ "@com_github_envoyproxy_go_control_plane//envoy/type/v3:go_default_library", ++ "@com_github_golang_protobuf//ptypes:go_default_library", ++ "@com_github_google_uuid//:go_default_library", ++ "@org_golang_google_protobuf//types/known/wrapperspb:go_default_library", ++ ], ++ "@io_bazel_rules_go//go/platform:arm": [ ++ "//:grpc", ++ "//codes", ++ "//credentials/insecure", ++ "//internal/grpcrand", ++ "//internal/grpctest", ++ "//internal/testutils", ++ "//internal/testutils/xds/bootstrap", ++ "//internal/testutils/xds/e2e", ++ "//interop/grpc_testing", ++ "//metadata", ++ "//status", ++ "//xds/internal/balancer", ++ "//xds/internal/httpfilter/router", ++ "//xds/internal/resolver", ++ "@com_github_envoyproxy_go_control_plane//envoy/config/listener/v3:go_default_library", ++ "@com_github_envoyproxy_go_control_plane//envoy/extensions/filters/common/fault/v3:go_default_library", ++ "@com_github_envoyproxy_go_control_plane//envoy/extensions/filters/http/fault/v3:go_default_library", ++ "@com_github_envoyproxy_go_control_plane//envoy/extensions/filters/network/http_connection_manager/v3:go_default_library", ++ "@com_github_envoyproxy_go_control_plane//envoy/type/v3:go_default_library", ++ "@com_github_golang_protobuf//ptypes:go_default_library", ++ "@com_github_google_uuid//:go_default_library", ++ "@org_golang_google_protobuf//types/known/wrapperspb:go_default_library", ++ ], ++ "@io_bazel_rules_go//go/platform:arm64": [ ++ "//:grpc", ++ "//codes", ++ "//credentials/insecure", ++ "//internal/grpcrand", ++ "//internal/grpctest", ++ "//internal/testutils", ++ "//internal/testutils/xds/bootstrap", ++ "//internal/testutils/xds/e2e", ++ "//interop/grpc_testing", ++ "//metadata", ++ "//status", ++ "//xds/internal/balancer", ++ "//xds/internal/httpfilter/router", ++ "//xds/internal/resolver", ++ "@com_github_envoyproxy_go_control_plane//envoy/config/listener/v3:go_default_library", ++ "@com_github_envoyproxy_go_control_plane//envoy/extensions/filters/common/fault/v3:go_default_library", ++ "@com_github_envoyproxy_go_control_plane//envoy/extensions/filters/http/fault/v3:go_default_library", ++ "@com_github_envoyproxy_go_control_plane//envoy/extensions/filters/network/http_connection_manager/v3:go_default_library", ++ "@com_github_envoyproxy_go_control_plane//envoy/type/v3:go_default_library", ++ "@com_github_golang_protobuf//ptypes:go_default_library", ++ "@com_github_google_uuid//:go_default_library", ++ "@org_golang_google_protobuf//types/known/wrapperspb:go_default_library", ++ ], ++ "@io_bazel_rules_go//go/platform:mips": [ ++ "//:grpc", ++ "//codes", ++ "//credentials/insecure", ++ "//internal/grpcrand", ++ "//internal/grpctest", ++ "//internal/testutils", ++ "//internal/testutils/xds/bootstrap", ++ "//internal/testutils/xds/e2e", ++ "//interop/grpc_testing", ++ "//metadata", ++ "//status", ++ "//xds/internal/balancer", ++ "//xds/internal/httpfilter/router", ++ "//xds/internal/resolver", ++ "@com_github_envoyproxy_go_control_plane//envoy/config/listener/v3:go_default_library", ++ "@com_github_envoyproxy_go_control_plane//envoy/extensions/filters/common/fault/v3:go_default_library", ++ "@com_github_envoyproxy_go_control_plane//envoy/extensions/filters/http/fault/v3:go_default_library", ++ "@com_github_envoyproxy_go_control_plane//envoy/extensions/filters/network/http_connection_manager/v3:go_default_library", ++ "@com_github_envoyproxy_go_control_plane//envoy/type/v3:go_default_library", ++ "@com_github_golang_protobuf//ptypes:go_default_library", ++ "@com_github_google_uuid//:go_default_library", ++ "@org_golang_google_protobuf//types/known/wrapperspb:go_default_library", ++ ], ++ "@io_bazel_rules_go//go/platform:mips64": [ ++ "//:grpc", ++ "//codes", ++ "//credentials/insecure", ++ "//internal/grpcrand", ++ "//internal/grpctest", ++ "//internal/testutils", ++ "//internal/testutils/xds/bootstrap", ++ "//internal/testutils/xds/e2e", ++ "//interop/grpc_testing", ++ "//metadata", ++ "//status", ++ "//xds/internal/balancer", ++ "//xds/internal/httpfilter/router", ++ "//xds/internal/resolver", ++ "@com_github_envoyproxy_go_control_plane//envoy/config/listener/v3:go_default_library", ++ "@com_github_envoyproxy_go_control_plane//envoy/extensions/filters/common/fault/v3:go_default_library", ++ "@com_github_envoyproxy_go_control_plane//envoy/extensions/filters/http/fault/v3:go_default_library", ++ "@com_github_envoyproxy_go_control_plane//envoy/extensions/filters/network/http_connection_manager/v3:go_default_library", ++ "@com_github_envoyproxy_go_control_plane//envoy/type/v3:go_default_library", ++ "@com_github_golang_protobuf//ptypes:go_default_library", ++ "@com_github_google_uuid//:go_default_library", ++ "@org_golang_google_protobuf//types/known/wrapperspb:go_default_library", ++ ], ++ "@io_bazel_rules_go//go/platform:mips64le": [ ++ "//:grpc", ++ "//codes", ++ "//credentials/insecure", ++ "//internal/grpcrand", ++ "//internal/grpctest", ++ "//internal/testutils", ++ "//internal/testutils/xds/bootstrap", ++ "//internal/testutils/xds/e2e", ++ "//interop/grpc_testing", ++ "//metadata", ++ "//status", ++ "//xds/internal/balancer", ++ "//xds/internal/httpfilter/router", ++ "//xds/internal/resolver", ++ "@com_github_envoyproxy_go_control_plane//envoy/config/listener/v3:go_default_library", ++ "@com_github_envoyproxy_go_control_plane//envoy/extensions/filters/common/fault/v3:go_default_library", ++ "@com_github_envoyproxy_go_control_plane//envoy/extensions/filters/http/fault/v3:go_default_library", ++ "@com_github_envoyproxy_go_control_plane//envoy/extensions/filters/network/http_connection_manager/v3:go_default_library", ++ "@com_github_envoyproxy_go_control_plane//envoy/type/v3:go_default_library", ++ "@com_github_golang_protobuf//ptypes:go_default_library", ++ "@com_github_google_uuid//:go_default_library", ++ "@org_golang_google_protobuf//types/known/wrapperspb:go_default_library", ++ ], ++ "@io_bazel_rules_go//go/platform:mipsle": [ ++ "//:grpc", ++ "//codes", ++ "//credentials/insecure", ++ "//internal/grpcrand", ++ "//internal/grpctest", ++ "//internal/testutils", ++ "//internal/testutils/xds/bootstrap", ++ "//internal/testutils/xds/e2e", ++ "//interop/grpc_testing", ++ "//metadata", ++ "//status", ++ "//xds/internal/balancer", ++ "//xds/internal/httpfilter/router", ++ "//xds/internal/resolver", ++ "@com_github_envoyproxy_go_control_plane//envoy/config/listener/v3:go_default_library", ++ "@com_github_envoyproxy_go_control_plane//envoy/extensions/filters/common/fault/v3:go_default_library", ++ "@com_github_envoyproxy_go_control_plane//envoy/extensions/filters/http/fault/v3:go_default_library", ++ "@com_github_envoyproxy_go_control_plane//envoy/extensions/filters/network/http_connection_manager/v3:go_default_library", ++ "@com_github_envoyproxy_go_control_plane//envoy/type/v3:go_default_library", ++ "@com_github_golang_protobuf//ptypes:go_default_library", ++ "@com_github_google_uuid//:go_default_library", ++ "@org_golang_google_protobuf//types/known/wrapperspb:go_default_library", ++ ], ++ "@io_bazel_rules_go//go/platform:ppc64": [ ++ "//:grpc", ++ "//codes", ++ "//credentials/insecure", ++ "//internal/grpcrand", ++ "//internal/grpctest", ++ "//internal/testutils", ++ "//internal/testutils/xds/bootstrap", ++ "//internal/testutils/xds/e2e", ++ "//interop/grpc_testing", ++ "//metadata", ++ "//status", ++ "//xds/internal/balancer", ++ "//xds/internal/httpfilter/router", ++ "//xds/internal/resolver", ++ "@com_github_envoyproxy_go_control_plane//envoy/config/listener/v3:go_default_library", ++ "@com_github_envoyproxy_go_control_plane//envoy/extensions/filters/common/fault/v3:go_default_library", ++ "@com_github_envoyproxy_go_control_plane//envoy/extensions/filters/http/fault/v3:go_default_library", ++ "@com_github_envoyproxy_go_control_plane//envoy/extensions/filters/network/http_connection_manager/v3:go_default_library", ++ "@com_github_envoyproxy_go_control_plane//envoy/type/v3:go_default_library", ++ "@com_github_golang_protobuf//ptypes:go_default_library", ++ "@com_github_google_uuid//:go_default_library", ++ "@org_golang_google_protobuf//types/known/wrapperspb:go_default_library", ++ ], ++ "@io_bazel_rules_go//go/platform:ppc64le": [ ++ "//:grpc", ++ "//codes", ++ "//credentials/insecure", ++ "//internal/grpcrand", ++ "//internal/grpctest", ++ "//internal/testutils", ++ "//internal/testutils/xds/bootstrap", ++ "//internal/testutils/xds/e2e", ++ "//interop/grpc_testing", ++ "//metadata", ++ "//status", ++ "//xds/internal/balancer", ++ "//xds/internal/httpfilter/router", ++ "//xds/internal/resolver", ++ "@com_github_envoyproxy_go_control_plane//envoy/config/listener/v3:go_default_library", ++ "@com_github_envoyproxy_go_control_plane//envoy/extensions/filters/common/fault/v3:go_default_library", ++ "@com_github_envoyproxy_go_control_plane//envoy/extensions/filters/http/fault/v3:go_default_library", ++ "@com_github_envoyproxy_go_control_plane//envoy/extensions/filters/network/http_connection_manager/v3:go_default_library", ++ "@com_github_envoyproxy_go_control_plane//envoy/type/v3:go_default_library", ++ "@com_github_golang_protobuf//ptypes:go_default_library", ++ "@com_github_google_uuid//:go_default_library", ++ "@org_golang_google_protobuf//types/known/wrapperspb:go_default_library", ++ ], ++ "@io_bazel_rules_go//go/platform:riscv64": [ ++ "//:grpc", ++ "//codes", ++ "//credentials/insecure", ++ "//internal/grpcrand", ++ "//internal/grpctest", ++ "//internal/testutils", ++ "//internal/testutils/xds/bootstrap", ++ "//internal/testutils/xds/e2e", ++ "//interop/grpc_testing", ++ "//metadata", ++ "//status", ++ "//xds/internal/balancer", ++ "//xds/internal/httpfilter/router", ++ "//xds/internal/resolver", ++ "@com_github_envoyproxy_go_control_plane//envoy/config/listener/v3:go_default_library", ++ "@com_github_envoyproxy_go_control_plane//envoy/extensions/filters/common/fault/v3:go_default_library", ++ "@com_github_envoyproxy_go_control_plane//envoy/extensions/filters/http/fault/v3:go_default_library", ++ "@com_github_envoyproxy_go_control_plane//envoy/extensions/filters/network/http_connection_manager/v3:go_default_library", ++ "@com_github_envoyproxy_go_control_plane//envoy/type/v3:go_default_library", ++ "@com_github_golang_protobuf//ptypes:go_default_library", ++ "@com_github_google_uuid//:go_default_library", ++ "@org_golang_google_protobuf//types/known/wrapperspb:go_default_library", ++ ], ++ "@io_bazel_rules_go//go/platform:s390x": [ ++ "//:grpc", ++ "//codes", ++ "//credentials/insecure", ++ "//internal/grpcrand", ++ "//internal/grpctest", ++ "//internal/testutils", ++ "//internal/testutils/xds/bootstrap", ++ "//internal/testutils/xds/e2e", ++ "//interop/grpc_testing", ++ "//metadata", ++ "//status", ++ "//xds/internal/balancer", ++ "//xds/internal/httpfilter/router", ++ "//xds/internal/resolver", ++ "@com_github_envoyproxy_go_control_plane//envoy/config/listener/v3:go_default_library", ++ "@com_github_envoyproxy_go_control_plane//envoy/extensions/filters/common/fault/v3:go_default_library", ++ "@com_github_envoyproxy_go_control_plane//envoy/extensions/filters/http/fault/v3:go_default_library", ++ "@com_github_envoyproxy_go_control_plane//envoy/extensions/filters/network/http_connection_manager/v3:go_default_library", ++ "@com_github_envoyproxy_go_control_plane//envoy/type/v3:go_default_library", ++ "@com_github_golang_protobuf//ptypes:go_default_library", ++ "@com_github_google_uuid//:go_default_library", ++ "@org_golang_google_protobuf//types/known/wrapperspb:go_default_library", ++ ], ++ "@io_bazel_rules_go//go/platform:wasm": [ ++ "//:grpc", ++ "//codes", ++ "//credentials/insecure", ++ "//internal/grpcrand", ++ "//internal/grpctest", ++ "//internal/testutils", ++ "//internal/testutils/xds/bootstrap", ++ "//internal/testutils/xds/e2e", ++ "//interop/grpc_testing", ++ "//metadata", ++ "//status", ++ "//xds/internal/balancer", ++ "//xds/internal/httpfilter/router", ++ "//xds/internal/resolver", ++ "@com_github_envoyproxy_go_control_plane//envoy/config/listener/v3:go_default_library", ++ "@com_github_envoyproxy_go_control_plane//envoy/extensions/filters/common/fault/v3:go_default_library", ++ "@com_github_envoyproxy_go_control_plane//envoy/extensions/filters/http/fault/v3:go_default_library", ++ "@com_github_envoyproxy_go_control_plane//envoy/extensions/filters/network/http_connection_manager/v3:go_default_library", ++ "@com_github_envoyproxy_go_control_plane//envoy/type/v3:go_default_library", ++ "@com_github_golang_protobuf//ptypes:go_default_library", ++ "@com_github_google_uuid//:go_default_library", ++ "@org_golang_google_protobuf//types/known/wrapperspb:go_default_library", ++ ], ++ "//conditions:default": [], ++ }), ++) +diff -urN a/xds/internal/httpfilter/rbac/BUILD.bazel b/xds/internal/httpfilter/rbac/BUILD.bazel +--- a/xds/internal/httpfilter/rbac/BUILD.bazel 1970-01-01 00:00:00.000000000 +0000 ++++ b/xds/internal/httpfilter/rbac/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000 +@@ -0,0 +1,26 @@ ++load("@io_bazel_rules_go//go:def.bzl", "go_library") ++ ++go_library( ++ name = "rbac", ++ srcs = ["rbac.go"], ++ importpath = "google.golang.org/grpc/xds/internal/httpfilter/rbac", ++ visibility = ["//xds:__subpackages__"], ++ deps = [ ++ "//internal", ++ "//internal/envconfig", ++ "//internal/resolver", ++ "//internal/xds/rbac", ++ "//xds/internal/httpfilter", ++ "@com_github_envoyproxy_go_control_plane//envoy/config/rbac/v3:go_default_library", ++ "@com_github_envoyproxy_go_control_plane//envoy/extensions/filters/http/rbac/v3:go_default_library", ++ "@com_github_golang_protobuf//proto:go_default_library", ++ "@com_github_golang_protobuf//ptypes:go_default_library", ++ "@org_golang_google_protobuf//types/known/anypb:go_default_library", ++ ], ++) ++ ++alias( ++ name = "go_default_library", ++ actual = ":rbac", ++ visibility = ["//xds:__subpackages__"], ++) +diff -urN a/xds/internal/httpfilter/router/BUILD.bazel b/xds/internal/httpfilter/router/BUILD.bazel +--- a/xds/internal/httpfilter/router/BUILD.bazel 1970-01-01 00:00:00.000000000 +0000 ++++ b/xds/internal/httpfilter/router/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000 +@@ -0,0 +1,22 @@ ++load("@io_bazel_rules_go//go:def.bzl", "go_library") ++ ++go_library( ++ name = "router", ++ srcs = ["router.go"], ++ importpath = "google.golang.org/grpc/xds/internal/httpfilter/router", ++ visibility = ["//xds:__subpackages__"], ++ deps = [ ++ "//internal/resolver", ++ "//xds/internal/httpfilter", ++ "@com_github_envoyproxy_go_control_plane//envoy/extensions/filters/http/router/v3:go_default_library", ++ "@com_github_golang_protobuf//proto:go_default_library", ++ "@com_github_golang_protobuf//ptypes:go_default_library", ++ "@org_golang_google_protobuf//types/known/anypb:go_default_library", ++ ], ++) ++ ++alias( ++ name = "go_default_library", ++ actual = ":router", ++ visibility = ["//xds:__subpackages__"], ++) +diff -urN a/xds/internal/resolver/BUILD.bazel b/xds/internal/resolver/BUILD.bazel +--- a/xds/internal/resolver/BUILD.bazel 1970-01-01 00:00:00.000000000 +0000 ++++ b/xds/internal/resolver/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000 +@@ -0,0 +1,105 @@ ++load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test") ++ ++go_library( ++ name = "resolver", ++ srcs = [ ++ "logging.go", ++ "serviceconfig.go", ++ "watch_service.go", ++ "xds_resolver.go", ++ ], ++ importpath = "google.golang.org/grpc/xds/internal/resolver", ++ visibility = ["//xds:__subpackages__"], ++ deps = [ ++ "//codes", ++ "//credentials", ++ "//grpclog", ++ "//internal", ++ "//internal/envconfig", ++ "//internal/grpclog", ++ "//internal/grpcrand", ++ "//internal/grpcsync", ++ "//internal/grpcutil", ++ "//internal/pretty", ++ "//internal/resolver", ++ "//internal/serviceconfig", ++ "//internal/wrr", ++ "//metadata", ++ "//resolver", ++ "//status", ++ "//xds/internal/balancer/clustermanager", ++ "//xds/internal/balancer/ringhash", ++ "//xds/internal/clusterspecifier", ++ "//xds/internal/httpfilter", ++ "//xds/internal/xdsclient", ++ "//xds/internal/xdsclient/bootstrap", ++ "//xds/internal/xdsclient/xdsresource", ++ "@com_github_cespare_xxhash_v2//:go_default_library", ++ ], ++) ++ ++alias( ++ name = "go_default_library", ++ actual = ":resolver", ++ visibility = ["//xds:__subpackages__"], ++) ++ ++go_test( ++ name = "resolver_test", ++ srcs = [ ++ "cluster_specifier_plugin_test.go", ++ "serviceconfig_test.go", ++ "watch_service_test.go", ++ "xds_resolver_test.go", ++ ], ++ embed = [":resolver"], ++ deps = [ ++ "//balancer", ++ "//codes", ++ "//credentials", ++ "//credentials/insecure", ++ "//credentials/xds", ++ "//internal", ++ "//internal/envconfig", ++ "//internal/grpcsync", ++ "//internal/grpctest", ++ "//internal/grpcutil", ++ "//internal/resolver", ++ "//internal/testutils", ++ "//internal/testutils/xds/bootstrap", ++ "//internal/testutils/xds/e2e", ++ "//internal/wrr", ++ "//metadata", ++ "//resolver", ++ "//serviceconfig", ++ "//status", ++ "//xds/internal/balancer/cdsbalancer", ++ "//xds/internal/balancer/clustermanager", ++ "//xds/internal/balancer/ringhash", ++ "//xds/internal/clusterspecifier", ++ "//xds/internal/httpfilter", ++ "//xds/internal/httpfilter/router", ++ "//xds/internal/testutils", ++ "//xds/internal/testutils/fakeclient", ++ "//xds/internal/xdsclient", ++ "//xds/internal/xdsclient/bootstrap", ++ "//xds/internal/xdsclient/xdsresource", ++ "//xds/internal/xdsclient/xdsresource/version", ++ "@com_github_cespare_xxhash_v2//:go_default_library", ++ "@com_github_envoyproxy_go_control_plane//envoy/config/core/v3:go_default_library", ++ "@com_github_envoyproxy_go_control_plane//envoy/config/listener/v3:go_default_library", ++ "@com_github_envoyproxy_go_control_plane//envoy/config/route/v3:go_default_library", ++ "@com_github_envoyproxy_go_control_plane//envoy/extensions/filters/http/router/v3:go_default_library", ++ "@com_github_envoyproxy_go_control_plane//envoy/extensions/filters/network/http_connection_manager/v3:go_default_library", ++ "@com_github_envoyproxy_go_control_plane//envoy/service/discovery/v3:go_default_library", ++ "@com_github_envoyproxy_go_control_plane//pkg/wellknown:go_default_library", ++ "@com_github_golang_protobuf//proto:go_default_library", ++ "@com_github_golang_protobuf//ptypes:go_default_library", ++ "@com_github_google_go_cmp//cmp:go_default_library", ++ "@com_github_google_go_cmp//cmp/cmpopts:go_default_library", ++ "@com_github_google_uuid//:go_default_library", ++ "@org_golang_google_protobuf//types/known/anypb:go_default_library", ++ "@org_golang_google_protobuf//types/known/durationpb:go_default_library", ++ "@org_golang_google_protobuf//types/known/wrapperspb:go_default_library", ++ ], ++) +diff -urN a/xds/internal/server/BUILD.bazel b/xds/internal/server/BUILD.bazel +--- a/xds/internal/server/BUILD.bazel 1970-01-01 00:00:00.000000000 +0000 ++++ b/xds/internal/server/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000 +@@ -0,0 +1,56 @@ ++load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test") ++ ++go_library( ++ name = "server", ++ srcs = [ ++ "conn_wrapper.go", ++ "listener_wrapper.go", ++ "rds_handler.go", ++ ], ++ importpath = "google.golang.org/grpc/xds/internal/server", ++ visibility = ["//xds:__subpackages__"], ++ deps = [ ++ "//backoff", ++ "//connectivity", ++ "//credentials/tls/certprovider", ++ "//grpclog", ++ "//internal/backoff", ++ "//internal/credentials/xds", ++ "//internal/envconfig", ++ "//internal/grpclog", ++ "//internal/grpcsync", ++ "//xds/internal/xdsclient/bootstrap", ++ "//xds/internal/xdsclient/xdsresource", ++ ], ++) ++ ++alias( ++ name = "go_default_library", ++ actual = ":server", ++ visibility = ["//xds:__subpackages__"], ++) ++ ++go_test( ++ name = "server_test", ++ srcs = [ ++ "listener_wrapper_test.go", ++ "rds_handler_test.go", ++ ], ++ embed = [":server"], ++ deps = [ ++ "//internal/envconfig", ++ "//internal/grpctest", ++ "//internal/testutils", ++ "//internal/testutils/xds/e2e", ++ "//xds/internal/httpfilter/router", ++ "//xds/internal/testutils/fakeclient", ++ "//xds/internal/xdsclient/xdsresource", ++ "@com_github_envoyproxy_go_control_plane//envoy/config/core/v3:go_default_library", ++ "@com_github_envoyproxy_go_control_plane//envoy/config/listener/v3:go_default_library", ++ "@com_github_envoyproxy_go_control_plane//envoy/config/route/v3:go_default_library", ++ "@com_github_envoyproxy_go_control_plane//envoy/extensions/filters/network/http_connection_manager/v3:go_default_library", ++ "@com_github_envoyproxy_go_control_plane//envoy/extensions/transport_sockets/tls/v3:go_default_library", ++ "@com_github_golang_protobuf//ptypes/wrappers:go_default_library", ++ "@com_github_google_go_cmp//cmp:go_default_library", ++ ], ++) +diff -urN a/xds/internal/test/e2e/BUILD.bazel b/xds/internal/test/e2e/BUILD.bazel +--- a/xds/internal/test/e2e/BUILD.bazel 1970-01-01 00:00:00.000000000 +0000 ++++ b/xds/internal/test/e2e/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000 +@@ -0,0 +1,41 @@ ++load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test") ++ ++go_library( ++ name = "e2e", ++ srcs = [ ++ "controlplane.go", ++ "e2e.go", ++ "e2e_utils.go", ++ ], ++ importpath = "google.golang.org/grpc/xds/internal/test/e2e", ++ visibility = ["//xds:__subpackages__"], ++ deps = [ ++ "//:grpc", ++ "//channelz/grpc_channelz_v1", ++ "//credentials/insecure", ++ "//internal/testutils/xds/bootstrap", ++ "//internal/testutils/xds/e2e", ++ "//interop/grpc_testing", ++ "@com_github_google_go_cmp//cmp:go_default_library", ++ "@com_github_google_uuid//:go_default_library", ++ ], ++) ++ ++alias( ++ name = "go_default_library", ++ actual = ":e2e", ++ visibility = ["//xds:__subpackages__"], ++) ++ ++go_test( ++ name = "e2e_test", ++ srcs = ["e2e_test.go"], ++ embed = [":e2e"], ++ deps = [ ++ "//channelz/grpc_channelz_v1", ++ "//internal/testutils/xds/e2e", ++ "//interop/grpc_testing", ++ "@com_github_envoyproxy_go_control_plane//envoy/config/cluster/v3:go_default_library", ++ "@com_github_envoyproxy_go_control_plane//envoy/config/route/v3:go_default_library", ++ ], ++) +diff -urN a/xds/internal/testutils/BUILD.bazel b/xds/internal/testutils/BUILD.bazel +--- a/xds/internal/testutils/BUILD.bazel 1970-01-01 00:00:00.000000000 +0000 ++++ b/xds/internal/testutils/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000 +@@ -0,0 +1,40 @@ ++load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test") ++ ++go_library( ++ name = "testutils", ++ srcs = [ ++ "protos.go", ++ "resource_watcher.go", ++ "testutils.go", ++ ], ++ importpath = "google.golang.org/grpc/xds/internal/testutils", ++ visibility = ["//xds:__subpackages__"], ++ deps = [ ++ "//xds/internal", ++ "//xds/internal/xdsclient/bootstrap", ++ "//xds/internal/xdsclient/xdsresource", ++ "//xds/internal/xdsclient/xdsresource/version", ++ "@com_github_envoyproxy_go_control_plane//envoy/api/v2:go_default_library", ++ "@com_github_envoyproxy_go_control_plane//envoy/api/v2/core:go_default_library", ++ "@com_github_envoyproxy_go_control_plane//envoy/api/v2/endpoint:go_default_library", ++ "@com_github_envoyproxy_go_control_plane//envoy/config/core/v3:go_default_library", ++ "@com_github_envoyproxy_go_control_plane//envoy/type:go_default_library", ++ "@com_github_golang_protobuf//ptypes/wrappers:go_default_library", ++ ], ++) ++ ++alias( ++ name = "go_default_library", ++ actual = ":testutils", ++ visibility = ["//xds:__subpackages__"], ++) ++ ++go_test( ++ name = "testutils_test", ++ srcs = ["balancer_test.go"], ++ embed = [":testutils"], ++ deps = [ ++ "//balancer", ++ "//internal/testutils", ++ ], ++) +diff -urN a/xds/internal/testutils/fakeclient/BUILD.bazel b/xds/internal/testutils/fakeclient/BUILD.bazel +--- a/xds/internal/testutils/fakeclient/BUILD.bazel 1970-01-01 00:00:00.000000000 +0000 ++++ b/xds/internal/testutils/fakeclient/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000 +@@ -0,0 +1,21 @@ ++load("@io_bazel_rules_go//go:def.bzl", "go_library") ++ ++go_library( ++ name = "fakeclient", ++ srcs = ["client.go"], ++ importpath = "google.golang.org/grpc/xds/internal/testutils/fakeclient", ++ visibility = ["//xds:__subpackages__"], ++ deps = [ ++ "//internal/testutils", ++ "//xds/internal/xdsclient", ++ "//xds/internal/xdsclient/bootstrap", ++ "//xds/internal/xdsclient/load", ++ "//xds/internal/xdsclient/xdsresource", ++ ], ++) ++ ++alias( ++ name = "go_default_library", ++ actual = ":fakeclient", ++ visibility = ["//xds:__subpackages__"], ++) +diff -urN a/xds/internal/xdsclient/bootstrap/BUILD.bazel b/xds/internal/xdsclient/bootstrap/BUILD.bazel +--- a/xds/internal/xdsclient/bootstrap/BUILD.bazel 1970-01-01 00:00:00.000000000 +0000 ++++ b/xds/internal/xdsclient/bootstrap/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000 +@@ -0,0 +1,54 @@ ++load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test") ++ ++go_library( ++ name = "bootstrap", ++ srcs = [ ++ "bootstrap.go", ++ "logging.go", ++ "template.go", ++ ], ++ importpath = "google.golang.org/grpc/xds/internal/xdsclient/bootstrap", ++ visibility = ["//xds:__subpackages__"], ++ deps = [ ++ "//:grpc", ++ "//credentials", ++ "//credentials/google", ++ "//credentials/insecure", ++ "//credentials/tls/certprovider", ++ "//grpclog", ++ "//internal", ++ "//internal/envconfig", ++ "//internal/grpclog", ++ "//internal/pretty", ++ "//xds/bootstrap", ++ "@com_github_envoyproxy_go_control_plane//envoy/config/core/v3:go_default_library", ++ "@com_github_golang_protobuf//jsonpb:go_default_library", ++ ], ++) ++ ++alias( ++ name = "go_default_library", ++ actual = ":bootstrap", ++ visibility = ["//xds:__subpackages__"], ++) ++ ++go_test( ++ name = "bootstrap_test", ++ srcs = [ ++ "bootstrap_test.go", ++ "template_test.go", ++ ], ++ embed = [":bootstrap"], ++ deps = [ ++ "//:grpc", ++ "//credentials/tls/certprovider", ++ "//internal", ++ "//internal/envconfig", ++ "//xds/bootstrap", ++ "@com_github_envoyproxy_go_control_plane//envoy/config/core/v3:go_default_library", ++ "@com_github_golang_protobuf//proto:go_default_library", ++ "@com_github_golang_protobuf//ptypes/struct:go_default_library", ++ "@com_github_google_go_cmp//cmp:go_default_library", ++ "@com_github_google_go_cmp//cmp/cmpopts:go_default_library", ++ ], ++) +diff -urN a/xds/internal/xdsclient/BUILD.bazel b/xds/internal/xdsclient/BUILD.bazel +--- a/xds/internal/xdsclient/BUILD.bazel 1970-01-01 00:00:00.000000000 +0000 ++++ b/xds/internal/xdsclient/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000 +@@ -0,0 +1,77 @@ ++load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test") ++ ++go_library( ++ name = "xdsclient", ++ srcs = [ ++ "attributes.go", ++ "authority.go", ++ "client.go", ++ "client_new.go", ++ "clientimpl.go", ++ "clientimpl_authority.go", ++ "clientimpl_dump.go", ++ "clientimpl_loadreport.go", ++ "clientimpl_watchers.go", ++ "logging.go", ++ "requests_counter.go", ++ "singleton.go", ++ ], ++ importpath = "google.golang.org/grpc/xds/internal/xdsclient", ++ visibility = ["//xds:__subpackages__"], ++ deps = [ ++ "//grpclog", ++ "//internal/cache", ++ "//internal/envconfig", ++ "//internal/grpclog", ++ "//internal/grpcsync", ++ "//resolver", ++ "//xds/internal/xdsclient/bootstrap", ++ "//xds/internal/xdsclient/load", ++ "//xds/internal/xdsclient/transport", ++ "//xds/internal/xdsclient/xdsresource", ++ "@org_golang_google_protobuf//types/known/anypb:go_default_library", ++ ], ++) ++ ++alias( ++ name = "go_default_library", ++ actual = ":xdsclient", ++ visibility = ["//xds:__subpackages__"], ++) ++ ++go_test( ++ name = "xdsclient_test", ++ srcs = [ ++ "authority_test.go", ++ "client_test.go", ++ "loadreport_test.go", ++ "requests_counter_test.go", ++ "singleton_test.go", ++ "xdsclient_test.go", ++ ], ++ embed = [":xdsclient"], ++ deps = [ ++ "//codes", ++ "//internal/grpcsync", ++ "//internal/grpctest", ++ "//internal/testutils", ++ "//internal/testutils/xds/bootstrap", ++ "//internal/testutils/xds/e2e", ++ "//internal/testutils/xds/fakeserver", ++ "//status", ++ "//xds/internal", ++ "//xds/internal/httpfilter/router", ++ "//xds/internal/testutils", ++ "//xds/internal/xdsclient/bootstrap", ++ "//xds/internal/xdsclient/xdsresource", ++ "//xds/internal/xdsclient/xdsresource/version", ++ "@com_github_envoyproxy_go_control_plane//envoy/config/core/v3:go_default_library", ++ "@com_github_envoyproxy_go_control_plane//envoy/config/endpoint/v3:go_default_library", ++ "@com_github_envoyproxy_go_control_plane//envoy/config/listener/v3:go_default_library", ++ "@com_github_envoyproxy_go_control_plane//envoy/service/load_stats/v3:go_default_library", ++ "@com_github_golang_protobuf//ptypes/duration:go_default_library", ++ "@com_github_google_go_cmp//cmp:go_default_library", ++ "@com_github_google_uuid//:go_default_library", ++ "@org_golang_google_protobuf//testing/protocmp:go_default_library", ++ ], ++) +diff -urN a/xds/internal/xdsclient/load/BUILD.bazel b/xds/internal/xdsclient/load/BUILD.bazel +--- a/xds/internal/xdsclient/load/BUILD.bazel 1970-01-01 00:00:00.000000000 +0000 ++++ b/xds/internal/xdsclient/load/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000 +@@ -0,0 +1,27 @@ ++load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test") ++ ++go_library( ++ name = "load", ++ srcs = [ ++ "reporter.go", ++ "store.go", ++ ], ++ importpath = "google.golang.org/grpc/xds/internal/xdsclient/load", ++ visibility = ["//xds:__subpackages__"], ++) ++ ++alias( ++ name = "go_default_library", ++ actual = ":load", ++ visibility = ["//xds:__subpackages__"], ++) ++ ++go_test( ++ name = "load_test", ++ srcs = ["store_test.go"], ++ embed = [":load"], ++ deps = [ ++ "@com_github_google_go_cmp//cmp:go_default_library", ++ "@com_github_google_go_cmp//cmp/cmpopts:go_default_library", ++ ], ++) +diff -urN a/xds/internal/xdsclient/tests/BUILD.bazel b/xds/internal/xdsclient/tests/BUILD.bazel +--- a/xds/internal/xdsclient/tests/BUILD.bazel 1970-01-01 00:00:00.000000000 +0000 ++++ b/xds/internal/xdsclient/tests/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000 +@@ -0,0 +1,49 @@ ++load("@io_bazel_rules_go//go:def.bzl", "go_test") ++ ++go_test( ++ name = "tests_test", ++ srcs = [ ++ "authority_test.go", ++ "cds_watchers_test.go", ++ "dump_test.go", ++ "eds_watchers_test.go", ++ "federation_watchers_test.go", ++ "lds_watchers_test.go", ++ "misc_watchers_test.go", ++ "rds_watchers_test.go", ++ "resource_update_test.go", ++ ], ++ deps = [ ++ "//internal/envconfig", ++ "//internal/grpcsync", ++ "//internal/grpctest", ++ "//internal/testutils", ++ "//internal/testutils/xds/bootstrap", ++ "//internal/testutils/xds/e2e", ++ "//internal/testutils/xds/fakeserver", ++ "//xds", ++ "//xds/internal", ++ "//xds/internal/httpfilter/router", ++ "//xds/internal/testutils", ++ "//xds/internal/xdsclient", ++ "//xds/internal/xdsclient/bootstrap", ++ "//xds/internal/xdsclient/xdsresource", ++ "//xds/internal/xdsclient/xdsresource/version", ++ "@com_github_envoyproxy_go_control_plane//envoy/config/cluster/v3:go_default_library", ++ "@com_github_envoyproxy_go_control_plane//envoy/config/core/v3:go_default_library", ++ "@com_github_envoyproxy_go_control_plane//envoy/config/endpoint/v3:go_default_library", ++ "@com_github_envoyproxy_go_control_plane//envoy/config/listener/v3:go_default_library", ++ "@com_github_envoyproxy_go_control_plane//envoy/config/route/v3:go_default_library", ++ "@com_github_envoyproxy_go_control_plane//envoy/extensions/filters/http/router/v3:go_default_library", ++ "@com_github_envoyproxy_go_control_plane//envoy/extensions/filters/network/http_connection_manager/v3:go_default_library", ++ "@com_github_envoyproxy_go_control_plane//envoy/service/discovery/v3:go_default_library", ++ "@com_github_envoyproxy_go_control_plane//pkg/wellknown:go_default_library", ++ "@com_github_google_go_cmp//cmp:go_default_library", ++ "@com_github_google_go_cmp//cmp/cmpopts:go_default_library", ++ "@com_github_google_uuid//:go_default_library", ++ "@org_golang_google_protobuf//proto:go_default_library", ++ "@org_golang_google_protobuf//testing/protocmp:go_default_library", ++ "@org_golang_google_protobuf//types/known/anypb:go_default_library", ++ "@org_golang_google_protobuf//types/known/wrapperspb:go_default_library", ++ ], ++) +diff -urN a/xds/internal/xdsclient/transport/BUILD.bazel b/xds/internal/xdsclient/transport/BUILD.bazel +--- a/xds/internal/xdsclient/transport/BUILD.bazel 1970-01-01 00:00:00.000000000 +0000 ++++ b/xds/internal/xdsclient/transport/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000 +@@ -0,0 +1,80 @@ ++load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test") ++ ++go_library( ++ name = "transport", ++ srcs = [ ++ "loadreport.go", ++ "transport.go", ++ ], ++ importpath = "google.golang.org/grpc/xds/internal/xdsclient/transport", ++ visibility = ["//xds:__subpackages__"], ++ deps = [ ++ "//:grpc", ++ "//codes", ++ "//connectivity", ++ "//internal/backoff", ++ "//internal/buffer", ++ "//internal/grpclog", ++ "//internal/grpcsync", ++ "//internal/pretty", ++ "//keepalive", ++ "//xds/internal", ++ "//xds/internal/xdsclient/bootstrap", ++ "//xds/internal/xdsclient/load", ++ "//xds/internal/xdsclient/xdsresource", ++ "@com_github_envoyproxy_go_control_plane//envoy/config/core/v3:go_default_library", ++ "@com_github_envoyproxy_go_control_plane//envoy/config/endpoint/v3:go_default_library", ++ "@com_github_envoyproxy_go_control_plane//envoy/service/discovery/v3:go_default_library", ++ "@com_github_envoyproxy_go_control_plane//envoy/service/load_stats/v3:go_default_library", ++ "@com_github_golang_protobuf//ptypes:go_default_library", ++ "@org_golang_google_genproto//googleapis/rpc/status:go_default_library", ++ "@org_golang_google_protobuf//proto:go_default_library", ++ "@org_golang_google_protobuf//types/known/anypb:go_default_library", ++ ], ++) ++ ++alias( ++ name = "go_default_library", ++ actual = ":transport", ++ visibility = ["//xds:__subpackages__"], ++) ++ ++go_test( ++ name = "transport_test", ++ srcs = [ ++ "loadreport_test.go", ++ "transport_ack_nack_test.go", ++ "transport_backoff_test.go", ++ "transport_new_test.go", ++ "transport_resource_test.go", ++ "transport_test.go", ++ ], ++ embed = [":transport"], ++ deps = [ ++ "//:grpc", ++ "//codes", ++ "//connectivity", ++ "//internal/grpctest", ++ "//internal/testutils", ++ "//internal/testutils/xds/e2e", ++ "//internal/testutils/xds/fakeserver", ++ "//xds/internal/testutils", ++ "//xds/internal/xdsclient/bootstrap", ++ "//xds/internal/xdsclient/xdsresource/version", ++ "@com_github_envoyproxy_go_control_plane//envoy/config/core/v3:go_default_library", ++ "@com_github_envoyproxy_go_control_plane//envoy/config/endpoint/v3:go_default_library", ++ "@com_github_envoyproxy_go_control_plane//envoy/config/listener/v3:go_default_library", ++ "@com_github_envoyproxy_go_control_plane//envoy/extensions/filters/network/http_connection_manager/v3:go_default_library", ++ "@com_github_envoyproxy_go_control_plane//envoy/service/discovery/v3:go_default_library", ++ "@com_github_envoyproxy_go_control_plane//envoy/service/load_stats/v3:go_default_library", ++ "@com_github_google_go_cmp//cmp:go_default_library", ++ "@com_github_google_go_cmp//cmp/cmpopts:go_default_library", ++ "@com_github_google_uuid//:go_default_library", ++ "@org_golang_google_genproto//googleapis/rpc/status:go_default_library", ++ "@org_golang_google_protobuf//proto:go_default_library", ++ "@org_golang_google_protobuf//testing/protocmp:go_default_library", ++ "@org_golang_google_protobuf//types/known/anypb:go_default_library", ++ "@org_golang_google_protobuf//types/known/durationpb:go_default_library", ++ "@org_golang_google_protobuf//types/known/wrapperspb:go_default_library", ++ ], ++) +diff -urN a/xds/internal/xdsclient/xdslbregistry/BUILD.bazel b/xds/internal/xdsclient/xdslbregistry/BUILD.bazel +--- a/xds/internal/xdsclient/xdslbregistry/BUILD.bazel 1970-01-01 00:00:00.000000000 +0000 ++++ b/xds/internal/xdsclient/xdslbregistry/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000 +@@ -0,0 +1,46 @@ ++load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test") ++ ++go_library( ++ name = "xdslbregistry", ++ srcs = ["xdslbregistry.go"], ++ importpath = "google.golang.org/grpc/xds/internal/xdsclient/xdslbregistry", ++ visibility = ["//xds:__subpackages__"], ++ deps = ["@com_github_envoyproxy_go_control_plane//envoy/config/cluster/v3:go_default_library"], ++) ++ ++alias( ++ name = "go_default_library", ++ actual = ":xdslbregistry", ++ visibility = ["//xds:__subpackages__"], ++) ++ ++go_test( ++ name = "xdslbregistry_test", ++ srcs = ["xdslbregistry_test.go"], ++ deps = [ ++ ":xdslbregistry", ++ "//balancer/roundrobin", ++ "//internal/balancer/stub", ++ "//internal/envconfig", ++ "//internal/grpctest", ++ "//internal/pretty", ++ "//internal/serviceconfig", ++ "//internal/testutils", ++ "//xds", ++ "//xds/internal/balancer/wrrlocality", ++ "@com_github_cncf_xds_go//udpa/type/v1:go_default_library", ++ "@com_github_cncf_xds_go//xds/type/v3:go_default_library", ++ "@com_github_envoyproxy_go_control_plane//envoy/config/cluster/v3:go_default_library", ++ "@com_github_envoyproxy_go_control_plane//envoy/config/core/v3:go_default_library", ++ "@com_github_envoyproxy_go_control_plane//envoy/extensions/load_balancing_policies/least_request/v3:go_default_library", ++ "@com_github_envoyproxy_go_control_plane//envoy/extensions/load_balancing_policies/pick_first/v3:go_default_library", ++ "@com_github_envoyproxy_go_control_plane//envoy/extensions/load_balancing_policies/ring_hash/v3:go_default_library", ++ "@com_github_envoyproxy_go_control_plane//envoy/extensions/load_balancing_policies/round_robin/v3:go_default_library", ++ "@com_github_envoyproxy_go_control_plane//envoy/extensions/load_balancing_policies/wrr_locality/v3:go_default_library", ++ "@com_github_golang_protobuf//proto:go_default_library", ++ "@com_github_golang_protobuf//ptypes/struct:go_default_library", ++ "@com_github_google_go_cmp//cmp:go_default_library", ++ "@org_golang_google_protobuf//types/known/anypb:go_default_library", ++ "@org_golang_google_protobuf//types/known/wrapperspb:go_default_library", ++ ], ++) +diff -urN a/xds/internal/xdsclient/xdslbregistry/converter/BUILD.bazel b/xds/internal/xdsclient/xdslbregistry/converter/BUILD.bazel +--- a/xds/internal/xdsclient/xdslbregistry/converter/BUILD.bazel 1970-01-01 00:00:00.000000000 +0000 ++++ b/xds/internal/xdsclient/xdslbregistry/converter/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000 +@@ -0,0 +1,35 @@ ++load("@io_bazel_rules_go//go:def.bzl", "go_library") ++ ++go_library( ++ name = "converter", ++ srcs = ["converter.go"], ++ importpath = "google.golang.org/grpc/xds/internal/xdsclient/xdslbregistry/converter", ++ visibility = ["//xds:__subpackages__"], ++ deps = [ ++ "//:grpc", ++ "//balancer", ++ "//balancer/leastrequest", ++ "//balancer/roundrobin", ++ "//balancer/weightedroundrobin", ++ "//internal/envconfig", ++ "//internal/serviceconfig", ++ "//xds/internal/balancer/ringhash", ++ "//xds/internal/balancer/wrrlocality", ++ "//xds/internal/xdsclient/xdslbregistry", ++ "@com_github_cncf_xds_go//udpa/type/v1:go_default_library", ++ "@com_github_cncf_xds_go//xds/type/v3:go_default_library", ++ "@com_github_envoyproxy_go_control_plane//envoy/extensions/load_balancing_policies/client_side_weighted_round_robin/v3:go_default_library", ++ "@com_github_envoyproxy_go_control_plane//envoy/extensions/load_balancing_policies/least_request/v3:go_default_library", ++ "@com_github_envoyproxy_go_control_plane//envoy/extensions/load_balancing_policies/pick_first/v3:go_default_library", ++ "@com_github_envoyproxy_go_control_plane//envoy/extensions/load_balancing_policies/ring_hash/v3:go_default_library", ++ "@com_github_envoyproxy_go_control_plane//envoy/extensions/load_balancing_policies/wrr_locality/v3:go_default_library", ++ "@com_github_golang_protobuf//proto:go_default_library", ++ "@com_github_golang_protobuf//ptypes/struct:go_default_library", ++ ], ++) ++ ++alias( ++ name = "go_default_library", ++ actual = ":converter", ++ visibility = ["//xds:__subpackages__"], ++) +diff -urN a/xds/internal/xdsclient/xdsresource/BUILD.bazel b/xds/internal/xdsclient/xdsresource/BUILD.bazel +--- a/xds/internal/xdsclient/xdsresource/BUILD.bazel 1970-01-01 00:00:00.000000000 +0000 ++++ b/xds/internal/xdsclient/xdsresource/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000 +@@ -0,0 +1,135 @@ ++load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test") ++ ++go_library( ++ name = "xdsresource", ++ srcs = [ ++ "cluster_resource_type.go", ++ "endpoints_resource_type.go", ++ "errors.go", ++ "filter_chain.go", ++ "listener_resource_type.go", ++ "logging.go", ++ "matcher.go", ++ "matcher_path.go", ++ "name.go", ++ "resource_type.go", ++ "route_config_resource_type.go", ++ "type.go", ++ "type_cds.go", ++ "type_eds.go", ++ "type_lds.go", ++ "type_rds.go", ++ "unmarshal_cds.go", ++ "unmarshal_eds.go", ++ "unmarshal_lds.go", ++ "unmarshal_rds.go", ++ ], ++ importpath = "google.golang.org/grpc/xds/internal/xdsclient/xdsresource", ++ visibility = ["//xds:__subpackages__"], ++ deps = [ ++ "//codes", ++ "//grpclog", ++ "//internal/envconfig", ++ "//internal/grpclog", ++ "//internal/grpcrand", ++ "//internal/grpcutil", ++ "//internal/pretty", ++ "//internal/resolver", ++ "//internal/serviceconfig", ++ "//internal/xds/matcher", ++ "//metadata", ++ "//xds/internal", ++ "//xds/internal/clusterspecifier", ++ "//xds/internal/httpfilter", ++ "//xds/internal/xdsclient/bootstrap", ++ "//xds/internal/xdsclient/xdslbregistry", ++ "//xds/internal/xdsclient/xdsresource/version", ++ "@com_github_cncf_udpa_go//udpa/type/v1:go_default_library", ++ "@com_github_cncf_xds_go//xds/type/v3:go_default_library", ++ "@com_github_envoyproxy_go_control_plane//envoy/config/cluster/v3:go_default_library", ++ "@com_github_envoyproxy_go_control_plane//envoy/config/core/v3:go_default_library", ++ "@com_github_envoyproxy_go_control_plane//envoy/config/endpoint/v3:go_default_library", ++ "@com_github_envoyproxy_go_control_plane//envoy/config/listener/v3:go_default_library", ++ "@com_github_envoyproxy_go_control_plane//envoy/config/route/v3:go_default_library", ++ "@com_github_envoyproxy_go_control_plane//envoy/extensions/clusters/aggregate/v3:go_default_library", ++ "@com_github_envoyproxy_go_control_plane//envoy/extensions/filters/network/http_connection_manager/v3:go_default_library", ++ "@com_github_envoyproxy_go_control_plane//envoy/extensions/transport_sockets/tls/v3:go_default_library", ++ "@com_github_envoyproxy_go_control_plane//envoy/service/discovery/v3:go_default_library", ++ "@com_github_envoyproxy_go_control_plane//envoy/type/v3:go_default_library", ++ "@com_github_golang_protobuf//proto:go_default_library", ++ "@com_github_golang_protobuf//ptypes:go_default_library", ++ "@org_golang_google_protobuf//proto:go_default_library", ++ "@org_golang_google_protobuf//types/known/anypb:go_default_library", ++ ], ++) ++ ++alias( ++ name = "go_default_library", ++ actual = ":xdsresource", ++ visibility = ["//xds:__subpackages__"], ++) ++ ++go_test( ++ name = "xdsresource_test", ++ srcs = [ ++ "filter_chain_test.go", ++ "matcher_path_test.go", ++ "matcher_test.go", ++ "name_test.go", ++ "test_utils_test.go", ++ "unmarshal_cds_test.go", ++ "unmarshal_eds_test.go", ++ "unmarshal_lds_test.go", ++ "unmarshal_rds_test.go", ++ ], ++ embed = [":xdsresource"], ++ deps = [ ++ "//codes", ++ "//internal/envconfig", ++ "//internal/grpcrand", ++ "//internal/grpctest", ++ "//internal/grpcutil", ++ "//internal/pretty", ++ "//internal/resolver", ++ "//internal/testutils", ++ "//internal/testutils/xds/e2e", ++ "//internal/xds/matcher", ++ "//metadata", ++ "//xds/internal", ++ "//xds/internal/clusterspecifier", ++ "//xds/internal/httpfilter", ++ "//xds/internal/httpfilter/rbac", ++ "//xds/internal/httpfilter/router", ++ "//xds/internal/xdsclient/xdsresource/version", ++ "@com_github_cncf_udpa_go//udpa/type/v1:go_default_library", ++ "@com_github_cncf_xds_go//xds/type/v3:go_default_library", ++ "@com_github_envoyproxy_go_control_plane//envoy/api/v2:go_default_library", ++ "@com_github_envoyproxy_go_control_plane//envoy/config/cluster/v3:go_default_library", ++ "@com_github_envoyproxy_go_control_plane//envoy/config/core/v3:go_default_library", ++ "@com_github_envoyproxy_go_control_plane//envoy/config/endpoint/v3:go_default_library", ++ "@com_github_envoyproxy_go_control_plane//envoy/config/listener/v3:go_default_library", ++ "@com_github_envoyproxy_go_control_plane//envoy/config/rbac/v3:go_default_library", ++ "@com_github_envoyproxy_go_control_plane//envoy/config/route/v3:go_default_library", ++ "@com_github_envoyproxy_go_control_plane//envoy/extensions/clusters/aggregate/v3:go_default_library", ++ "@com_github_envoyproxy_go_control_plane//envoy/extensions/filters/http/rbac/v3:go_default_library", ++ "@com_github_envoyproxy_go_control_plane//envoy/extensions/filters/http/router/v3:go_default_library", ++ "@com_github_envoyproxy_go_control_plane//envoy/extensions/filters/network/http_connection_manager/v3:go_default_library", ++ "@com_github_envoyproxy_go_control_plane//envoy/extensions/load_balancing_policies/least_request/v3:go_default_library", ++ "@com_github_envoyproxy_go_control_plane//envoy/extensions/load_balancing_policies/ring_hash/v3:go_default_library", ++ "@com_github_envoyproxy_go_control_plane//envoy/extensions/transport_sockets/tls/v3:go_default_library", ++ "@com_github_envoyproxy_go_control_plane//envoy/service/discovery/v3:go_default_library", ++ "@com_github_envoyproxy_go_control_plane//envoy/type/matcher/v3:go_default_library", ++ "@com_github_envoyproxy_go_control_plane//envoy/type/v3:go_default_library", ++ "@com_github_golang_protobuf//proto:go_default_library", ++ "@com_github_golang_protobuf//ptypes/any:go_default_library", ++ "@com_github_golang_protobuf//ptypes/struct:go_default_library", ++ "@com_github_golang_protobuf//ptypes/wrappers:go_default_library", ++ "@com_github_google_go_cmp//cmp:go_default_library", ++ "@com_github_google_go_cmp//cmp/cmpopts:go_default_library", ++ "@org_golang_google_protobuf//proto:go_default_library", ++ "@org_golang_google_protobuf//testing/protocmp:go_default_library", ++ "@org_golang_google_protobuf//types/known/anypb:go_default_library", ++ "@org_golang_google_protobuf//types/known/durationpb:go_default_library", ++ "@org_golang_google_protobuf//types/known/wrapperspb:go_default_library", ++ ], ++) +diff -urN a/xds/internal/xdsclient/xdsresource/tests/BUILD.bazel b/xds/internal/xdsclient/xdsresource/tests/BUILD.bazel +--- a/xds/internal/xdsclient/xdsresource/tests/BUILD.bazel 1970-01-01 00:00:00.000000000 +0000 ++++ b/xds/internal/xdsclient/xdsresource/tests/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000 +@@ -0,0 +1,35 @@ ++load("@io_bazel_rules_go//go:def.bzl", "go_test") ++ ++go_test( ++ name = "tests_test", ++ srcs = ["unmarshal_cds_test.go"], ++ deps = [ ++ "//balancer/leastrequest", ++ "//balancer/roundrobin", ++ "//internal/balancer/stub", ++ "//internal/envconfig", ++ "//internal/grpctest", ++ "//internal/serviceconfig", ++ "//internal/testutils", ++ "//internal/testutils/xds/e2e", ++ "//serviceconfig", ++ "//xds", ++ "//xds/internal/balancer/ringhash", ++ "//xds/internal/balancer/wrrlocality", ++ "//xds/internal/xdsclient/xdsresource", ++ "@com_github_cncf_xds_go//xds/type/v3:go_default_library", ++ "@com_github_envoyproxy_go_control_plane//envoy/config/cluster/v3:go_default_library", ++ "@com_github_envoyproxy_go_control_plane//envoy/config/core/v3:go_default_library", ++ "@com_github_envoyproxy_go_control_plane//envoy/config/endpoint/v3:go_default_library", ++ "@com_github_envoyproxy_go_control_plane//envoy/extensions/clusters/aggregate/v3:go_default_library", ++ "@com_github_envoyproxy_go_control_plane//envoy/extensions/load_balancing_policies/ring_hash/v3:go_default_library", ++ "@com_github_envoyproxy_go_control_plane//envoy/extensions/load_balancing_policies/round_robin/v3:go_default_library", ++ "@com_github_envoyproxy_go_control_plane//envoy/extensions/load_balancing_policies/wrr_locality/v3:go_default_library", ++ "@com_github_golang_protobuf//proto:go_default_library", ++ "@com_github_golang_protobuf//ptypes/any:go_default_library", ++ "@com_github_golang_protobuf//ptypes/struct:go_default_library", ++ "@com_github_google_go_cmp//cmp:go_default_library", ++ "@com_github_google_go_cmp//cmp/cmpopts:go_default_library", ++ "@org_golang_google_protobuf//types/known/wrapperspb:go_default_library", ++ ], ++) +diff -urN a/xds/internal/xdsclient/xdsresource/version/BUILD.bazel b/xds/internal/xdsclient/xdsresource/version/BUILD.bazel +--- a/xds/internal/xdsclient/xdsresource/version/BUILD.bazel 1970-01-01 00:00:00.000000000 +0000 ++++ b/xds/internal/xdsclient/xdsresource/version/BUILD.bazel 2000-01-01 00:00:00.000000000 -0000 +@@ -0,0 +1,14 @@ ++load("@io_bazel_rules_go//go:def.bzl", "go_library") ++ ++go_library( ++ name = "version", ++ srcs = ["version.go"], ++ importpath = "google.golang.org/grpc/xds/internal/xdsclient/xdsresource/version", ++ visibility = ["//xds:__subpackages__"], ++) ++ ++alias( ++ name = "go_default_library", ++ actual = ":version", ++ visibility = ["//xds:__subpackages__"], ++)