load("//:java_grpc_library.bzl", "java_grpc_library")

# Mirrors the dependencies included in the artifact on Maven Central for usage
# with maven_install's override_targets. Should only be used as a dep for
# pre-compiled binaries on Maven Central.
java_library(
    name = "xds_maven",
    visibility = ["//visibility:public"],
    exports = [
        ":orca",
        ":xds",
    ],
)

java_library(
    name = "xds",
    srcs = glob(
        [
            "src/main/java/**/*.java",
            "third_party/zero-allocation-hashing/main/java/**/*.java",
        ],
        exclude = ["src/main/java/io/grpc/xds/orca/**"],
    ),
    resources = glob([
        "src/main/resources/**",
    ]),
    visibility = ["//visibility:public"],
    deps = [
        ":envoy_service_discovery_v2_java_grpc",
        ":envoy_service_discovery_v3_java_grpc",
        ":envoy_service_load_stats_v2_java_grpc",
        ":envoy_service_load_stats_v3_java_grpc",
        ":envoy_service_status_v3_java_grpc",
        ":xds_protos_java",
        ":orca",
        "//:auto_value_annotations",
        "//alts",
        "//api",
        "//context",
        "//core:internal",
        "//core:util",
        "//netty",
        "//stub",
        "//services:metrics",
        "//services:metrics_internal",
        "@com_google_code_findbugs_jsr305//jar",
        "@com_google_code_gson_gson//jar",
        "@com_google_errorprone_error_prone_annotations//jar",
        "@com_google_googleapis//google/rpc:rpc_java_proto",
        "@com_google_guava_guava//jar",
        "@com_google_protobuf//:protobuf_java",
        "@com_google_protobuf//:protobuf_java_util",
        "@com_google_re2j_re2j//jar",
        "@io_netty_netty_buffer//jar",
        "@io_netty_netty_codec//jar",
        "@io_netty_netty_common//jar",
        "@io_netty_netty_handler//jar",
        "@io_netty_netty_transport//jar",
    ],
)

java_proto_library(
    name = "xds_protos_java",
    deps = [
        "@com_github_cncf_udpa//udpa/type/v1:pkg",
        "@com_github_cncf_xds//xds/data/orca/v3:pkg",
        "@com_github_cncf_xds//xds/service/orca/v3:pkg",
        "@com_github_cncf_xds//xds/type/v3:pkg",
        "@envoy_api//envoy/admin/v3:pkg",
        "@envoy_api//envoy/api/v2:pkg",
        "@envoy_api//envoy/api/v2/core:pkg",
        "@envoy_api//envoy/api/v2/endpoint:pkg",
        "@envoy_api//envoy/config/cluster/aggregate/v2alpha:pkg",
        "@envoy_api//envoy/config/cluster/v3:pkg",
        "@envoy_api//envoy/config/core/v3:pkg",
        "@envoy_api//envoy/config/endpoint/v3:pkg",
        "@envoy_api//envoy/config/filter/http/fault/v2:pkg",
        "@envoy_api//envoy/config/filter/http/router/v2:pkg",
        "@envoy_api//envoy/config/filter/network/http_connection_manager/v2:pkg",
        "@envoy_api//envoy/config/listener/v3:pkg",
        "@envoy_api//envoy/config/rbac/v3:pkg",
        "@envoy_api//envoy/config/route/v3:pkg",
        "@envoy_api//envoy/extensions/clusters/aggregate/v3:pkg",
        "@envoy_api//envoy/extensions/filters/common/fault/v3:pkg",
        "@envoy_api//envoy/extensions/filters/http/fault/v3:pkg",
        "@envoy_api//envoy/extensions/filters/http/rbac/v3:pkg",
        "@envoy_api//envoy/extensions/filters/http/router/v3:pkg",
        "@envoy_api//envoy/extensions/filters/network/http_connection_manager/v3:pkg",
        "@envoy_api//envoy/extensions/load_balancing_policies/client_side_weighted_round_robin/v3:pkg",
        "@envoy_api//envoy/extensions/load_balancing_policies/least_request/v3:pkg",
        "@envoy_api//envoy/extensions/load_balancing_policies/pick_first/v3:pkg",
        "@envoy_api//envoy/extensions/load_balancing_policies/ring_hash/v3:pkg",
        "@envoy_api//envoy/extensions/load_balancing_policies/round_robin/v3:pkg",
        "@envoy_api//envoy/extensions/load_balancing_policies/wrr_locality/v3:pkg",
        "@envoy_api//envoy/extensions/transport_sockets/tls/v3:pkg",
        "@envoy_api//envoy/service/discovery/v2:pkg",
        "@envoy_api//envoy/service/discovery/v3:pkg",
        "@envoy_api//envoy/service/load_stats/v2:pkg",
        "@envoy_api//envoy/service/load_stats/v3:pkg",
        "@envoy_api//envoy/service/status/v3:pkg",
        "@envoy_api//envoy/type/matcher/v3:pkg",
        "@envoy_api//envoy/type/v3:pkg",
    ],
)

java_grpc_library(
    name = "envoy_service_discovery_v2_java_grpc",
    srcs = ["@envoy_api//envoy/service/discovery/v2:pkg"],
    deps = [":xds_protos_java"],
)

java_grpc_library(
    name = "envoy_service_discovery_v3_java_grpc",
    srcs = ["@envoy_api//envoy/service/discovery/v3:pkg"],
    deps = [":xds_protos_java"],
)

java_grpc_library(
    name = "envoy_service_load_stats_v2_java_grpc",
    srcs = ["@envoy_api//envoy/service/load_stats/v2:pkg"],
    deps = [":xds_protos_java"],
)

java_grpc_library(
    name = "envoy_service_load_stats_v3_java_grpc",
    srcs = ["@envoy_api//envoy/service/load_stats/v3:pkg"],
    deps = [":xds_protos_java"],
)

java_grpc_library(
    name = "envoy_service_status_v3_java_grpc",
    srcs = ["@envoy_api//envoy/service/status/v3:pkg"],
    deps = [":xds_protos_java"],
)

java_library(
    name = "orca",
    srcs = glob([
        "src/main/java/io/grpc/xds/orca/*.java",
    ]),
    visibility = ["//visibility:public"],
    deps = [
        ":orca_protos_java",
        ":xds_service_orca_v3_java_grpc",
        "//api",
        "//context",
        "//core:internal",
        "//core:util",
        "//protobuf",
        "//services:metrics",
        "//services:metrics_internal",
        "//stub",
        "@com_google_code_findbugs_jsr305//jar",
        "@com_google_guava_guava//jar",
        "@com_google_protobuf//:protobuf_java_util",
    ],
)

java_proto_library(
    name = "orca_protos_java",
    deps = [
        "@com_github_cncf_xds//xds/data/orca/v3:pkg",
        "@com_github_cncf_xds//xds/service/orca/v3:pkg",
    ],
)

java_grpc_library(
    name = "xds_service_orca_v3_java_grpc",
    srcs = ["@com_github_cncf_xds//xds/service/orca/v3:pkg"],
    deps = [":orca_protos_java"],
)
