• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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