1# A framework supporting Dagger-injected gRPC servers. 2 3load("@rules_java//java:defs.bzl", "java_library") 4load( 5 "//:build_defs.bzl", 6 "DOCLINT_HTML_AND_SYNTAX", 7 "DOCLINT_REFERENCES", 8 "JAVA_RELEASE_MIN", 9 "POM_VERSION", 10) 11load("//tools/javadoc:javadoc.bzl", "javadoc_library") 12load("//tools/maven:maven.bzl", "dagger_pom_file") 13 14package(default_visibility = ["//:src"]) 15 16ANNOTATIONS_SRCS = [ 17 "CallScoped.java", 18 "ForGrpcService.java", 19 "GrpcService.java", 20] 21 22java_library( 23 name = "annotations", 24 srcs = ANNOTATIONS_SRCS, 25 javacopts = DOCLINT_HTML_AND_SYNTAX + JAVA_RELEASE_MIN, 26 tags = ["maven_coordinates=com.google.dagger:dagger-grpc-server-annotations:" + POM_VERSION], 27 deps = [ 28 "//third_party/java/jsr330_inject", 29 ], 30) 31 32# TODO(dpb): Split out the grpc:inprocess and grpc:netty deps into separate libraries. 33java_library( 34 name = "server", 35 srcs = glob( 36 ["*.java"], 37 exclude = ANNOTATIONS_SRCS, 38 ), 39 exported_plugins = ["//java/dagger/grpc/server/processor:plugin"], 40 javacopts = DOCLINT_HTML_AND_SYNTAX + DOCLINT_REFERENCES + JAVA_RELEASE_MIN, 41 tags = ["maven_coordinates=com.google.dagger:dagger-grpc-server:" + POM_VERSION], 42 exports = [":annotations"], 43 deps = [ 44 "//:dagger_with_compiler", 45 "//third_party/java/auto:value", 46 "//third_party/java/grpc:context", 47 "//third_party/java/grpc:core", 48 "//third_party/java/grpc:netty", 49 "//third_party/java/grpc:protobuf", 50 "//third_party/java/guava/base", 51 "//third_party/java/guava/collect", 52 "//third_party/java/jsr330_inject", 53 "//third_party/java/protobuf", 54 ], 55) 56 57dagger_pom_file( 58 name = "annotations-pom", 59 artifact_id = "dagger-grpc-server-annotations", 60 artifact_name = "Dagger gRPC Server Annotations", 61 targets = [":annotations"], 62) 63 64dagger_pom_file( 65 name = "server-pom", 66 artifact_id = "dagger-grpc-server", 67 artifact_name = "Dagger gRPC Server", 68 targets = [":server"], 69) 70 71filegroup( 72 name = "javadoc-srcs", 73 srcs = glob(["*.java"]), 74) 75 76javadoc_library( 77 name = "javadoc", 78 srcs = [":javadoc-srcs"], 79 root_packages = ["dagger.grpc.server"], 80 deps = [ 81 ":annotations", 82 ":server", 83 ], 84) 85