load("//tools/bzl:junit.bzl", "junit_tests")
load(
    "//tools/bzl:plugin.bzl",
    "PLUGIN_DEPS",
    "PLUGIN_TEST_DEPS",
    "gerrit_plugin",
)

gerrit_plugin(
    name = "events-gcloud-pubsub",
    srcs = glob(["src/main/java/**/*.java"]),
    manifest_entries = [
        "Gerrit-PluginName: events-gcloud-pubsub",
        "Gerrit-Module: com.googlesource.gerrit.plugins.pubsub.Module",
        "Gerrit-InitStep: com.googlesource.gerrit.plugins.pubsub.InitConfig",
        "Implementation-Title: Gerrit events listener to send events to an external GCloud PubSub broker",
        "Implementation-URL: https://gerrit.googlesource.com/plugins/events-gcloud-pubsub",
    ],
    resources = glob(["src/main/resources/**/*"]),
    deps = [
        ":events-broker-neverlink",
        "@api-common//jar",
        "@gax-grpc//jar",
        "@gax//jar",
        "@google-auth-library-credentials//jar",
        "@google-auth-library-oauth2-http//jar",
        "@google-cloud-pubsub-proto//jar",
        "@google-cloud-pubsub//jar",
        "@google-http-client-gson//jar",
        "@google-http-client//jar",
        "@grpc-alts//jar",
        "@grpc-api//jar",
        "@grpc-auth//jar",
        "@grpc-context//jar",
        "@grpc-core//jar",
        "@grpc-netty-shaded//jar",
        "@grpc-protobuf-lite//jar",
        "@grpc-protobuf//jar",
        "@grpc-stub//jar",
        "@opencensus-api//jar",
        "@opencensus-contrib-http-util//jar",
        "@perfmark-api//jar",
        "@proto-google-common-protos//jar",
        "@proto-google-iam-v1//jar",
        "@threetenbp//jar",
    ],
)

junit_tests(
    name = "events-gcloud-pubsub_tests",
    srcs = glob(["src/test/java/**/*.java"]),
    tags = ["events-gcloud-pubsub"],
    deps = [
        ":events-gcloud-pubsub__plugin_test_deps",
        "//plugins/events-broker",
        "@api-common//jar",
        "@gax-grpc//jar",
        "@gax//jar",
        "@google-auth-library-credentials//jar",
        "@google-auth-library-oauth2-http//jar",
        "@google-cloud-pubsub-proto//jar",
        "@google-cloud-pubsub//jar",
        "@google-http-client-gson//jar",
        "@google-http-client//jar",
        "@grpc-alts//jar",
        "@grpc-api//jar",
        "@grpc-context//jar",
        "@grpc-core//jar",
        "@grpc-netty-shaded//jar",
        "@grpc-protobuf-lite//jar",
        "@grpc-protobuf//jar",
        "@grpc-stub//jar",
        "@opencensus-api//jar",
        "@opencensus-contrib-http-util//jar",
        "@perfmark-api//jar",
        "@proto-google-common-protos//jar",
        "@proto-google-iam-v1//jar",
        "@testcontainers-gcloud//jar",
        "@threetenbp//jar",
    ],
)

java_library(
    name = "events-gcloud-pubsub__plugin_test_deps",
    testonly = 1,
    visibility = ["//visibility:public"],
    exports = PLUGIN_DEPS + PLUGIN_TEST_DEPS + [
        ":events-gcloud-pubsub__plugin",
        "@jackson-annotations//jar",
        "@testcontainers//jar",
        "@docker-java-api//jar",
        "@docker-java-transport//jar",
        "@duct-tape//jar",
        "@visible-assertions//jar",
        "@jna//jar",
        "@testcontainers-gcloud//jar",
        "@grpc-api//jar",
        "@gax-grpc//jar",
        "@grpc-netty-shaded//jar",
        "@grpc-core//jar",
        "@threetenbp//jar",
        "@grpc-alts//jar",
        "@grpc-protobuf//jar",
        "@grpc-protobuf-lite//jar",
        "@proto-google-iam-v1//jar",
        "@proto-google-common-protos//jar",
        "@google-http-client//jar",
        "@grpc-context//jar",
        "@grpc-stub//jar",
        "@perfmark-api//jar",
        "@google-http-client-gson//jar",
        "@opencensus-api//jar",
        "@opencensus-contrib-http-util//jar",
    ],
)

java_library(
    name = "events-broker-neverlink",
    neverlink = 1,
    exports = ["//plugins/events-broker"],
)
