# A framework supporting Dagger-injected gRPC servers. load("@rules_java//java:defs.bzl", "java_library") load( "//:build_defs.bzl", "DOCLINT_HTML_AND_SYNTAX", "DOCLINT_REFERENCES", "POM_VERSION", ) load("//tools:maven.bzl", "pom_file") load("@google_bazel_common//tools/javadoc:javadoc.bzl", "javadoc_library") package(default_visibility = ["//:src"]) ANNOTATIONS_SRCS = [ "CallScoped.java", "ForGrpcService.java", "GrpcService.java", ] java_library( name = "annotations", srcs = ANNOTATIONS_SRCS, javacopts = DOCLINT_HTML_AND_SYNTAX, tags = ["maven_coordinates=com.google.dagger:dagger-grpc-server-annotations:" + POM_VERSION], deps = [ "@google_bazel_common//third_party/java/jsr330_inject", ], ) # TODO(dpb): Split out the grpc:inprocess and grpc:netty deps into separate libraries. java_library( name = "server", srcs = glob( ["*.java"], exclude = ANNOTATIONS_SRCS, ), exported_plugins = ["//java/dagger/grpc/server/processor:plugin"], javacopts = DOCLINT_HTML_AND_SYNTAX + DOCLINT_REFERENCES, tags = ["maven_coordinates=com.google.dagger:dagger-grpc-server:" + POM_VERSION], exports = [":annotations"], deps = [ "//:dagger_with_compiler", "//java/dagger/internal/guava:base", "//java/dagger/internal/guava:collect", "@google_bazel_common//third_party/java/auto:value", "@google_bazel_common//third_party/java/grpc:context", "@google_bazel_common//third_party/java/grpc:core", "@google_bazel_common//third_party/java/grpc:netty", "@google_bazel_common//third_party/java/grpc:protobuf", "@google_bazel_common//third_party/java/jsr330_inject", "@google_bazel_common//third_party/java/protobuf", ], ) pom_file( name = "annotations-pom", artifact_id = "dagger-grpc-server-annotations", artifact_name = "Dagger gRPC Server Annotations", targets = [":annotations"], ) pom_file( name = "server-pom", artifact_id = "dagger-grpc-server", artifact_name = "Dagger gRPC Server", targets = [":server"], ) filegroup( name = "javadoc-srcs", srcs = glob(["*.java"]), ) javadoc_library( name = "javadoc", srcs = [":javadoc-srcs"], root_packages = ["dagger.grpc.server"], deps = [ ":annotations", ":server", ], )