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