java_library(
    name = "core",
    visibility = ["//visibility:public"],
    exports = ["//api"],
)

java_library(
    name = "inprocess",
    srcs = glob([
        "src/main/java/io/grpc/inprocess/*.java",
    ]),
    visibility = ["//visibility:public"],
    deps = [
        ":internal",
        "//api",
        "//context",
        "@com_google_code_findbugs_jsr305//jar",
        "@com_google_guava_guava//jar",
        "@com_google_j2objc_j2objc_annotations//jar",
    ],
)

java_library(
    name = "internal",
    srcs = glob([
        "src/main/java/io/grpc/internal/*.java",
    ]),
    resources = glob([
        "src/bazel-internal/resources/**",
    ]),
    visibility = ["//:__subpackages__"],
    deps = [
        "//api",
        "//context",
        "@com_google_android_annotations//jar",
        "@com_google_code_findbugs_jsr305//jar",
        "@com_google_code_gson_gson//jar",
        "@com_google_errorprone_error_prone_annotations//jar",
        "@com_google_guava_guava//jar",
        "@com_google_j2objc_j2objc_annotations//jar",
        "@io_perfmark_perfmark_api//jar",
        "@org_codehaus_mojo_animal_sniffer_annotations//jar",
    ],
)

java_library(
    name = "util",
    srcs = glob([
        "src/main/java/io/grpc/util/*.java",
    ]),
    resources = glob([
        "src/bazel-util/resources/**",
    ]),
    visibility = ["//visibility:public"],
    deps = [
        ":internal",
        "//api",
        "@com_google_code_findbugs_jsr305//jar",
        "@com_google_guava_guava//jar",
        "@com_google_j2objc_j2objc_annotations//jar",
    ],
)

# Mirrors the dependencies included in the artifact on Maven Central for usage
# with maven_install's override_targets. Purposefully does not export any
# symbols, as it should only be used as a dep for pre-compiled binaries on
# Maven Central.
java_library(
    name = "core_maven",
    visibility = ["//visibility:public"],
    runtime_deps = [
        ":inprocess",
        ":internal",
        ":util",
        "//api",
    ],
)
