• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1load("@rules_pkg//pkg:mappings.bzl", "pkg_files", "strip_prefix")
2load("//:protobuf_version.bzl", "PROTOBUF_JAVA_VERSION")
3load("//bazel:java_proto_library.bzl", "java_proto_library")
4load("//bazel:proto_library.bzl", "proto_library")
5load("//build_defs:java_opts.bzl", "protobuf_java_export", "protobuf_versioned_java_library")
6load("//java/internal:testing.bzl", "junit_tests")
7
8java_library(
9    name = "util",
10    srcs = glob([
11        "src/main/java/com/google/protobuf/util/*.java",
12    ]),
13    visibility = ["//visibility:public"],
14    deps = [
15        "//java/core",
16        "@protobuf_maven//:com_google_code_findbugs_jsr305",
17        "@protobuf_maven//:com_google_code_gson_gson",
18        "@protobuf_maven//:com_google_errorprone_error_prone_annotations",
19        "@protobuf_maven//:com_google_guava_guava",
20        "@protobuf_maven//:com_google_j2objc_j2objc_annotations",
21    ],
22)
23
24protobuf_versioned_java_library(
25    name = "util_bundle",
26    srcs = glob([
27        "src/main/java/com/google/protobuf/util/*.java",
28    ]),
29    automatic_module_name = "com.google.protobuf.util",
30    bundle_description = "Utilities for Protocol Buffers",
31    bundle_name = "Protocol Buffers [Util]",
32    bundle_symbolic_name = "com.google.protobuf.util",
33    visibility = ["//visibility:public"],
34    deps = [
35        "//java/core",
36        "@protobuf_maven//:com_google_code_findbugs_jsr305",
37        "@protobuf_maven//:com_google_code_gson_gson",
38        "@protobuf_maven//:com_google_errorprone_error_prone_annotations",
39        "@protobuf_maven//:com_google_guava_guava",
40        "@protobuf_maven//:com_google_j2objc_j2objc_annotations",
41    ],
42)
43
44# Bazel users, don't depend on this target, use :util.
45protobuf_java_export(
46    name = "util_mvn",
47    deploy_env = ["//java/core"],
48    maven_coordinates = "com.google.protobuf:protobuf-java-util:%s" % PROTOBUF_JAVA_VERSION,
49    pom_template = "pom_template.xml",
50    tags = ["manual"],
51    visibility = ["//java:__pkg__"],
52    runtime_deps = [":util_bundle"],
53)
54
55filegroup(
56    name = "release",
57    srcs = [
58        ":util_mvn-docs",
59        ":util_mvn-maven-source",
60        ":util_mvn-pom",
61        ":util_mvn-project",
62    ],
63    visibility = ["//java:__pkg__"],
64)
65
66proto_library(
67    name = "test_protos",
68    srcs = glob(["src/test/proto/**/*.proto"]),
69    deps = [
70        "//:any_proto",
71        "//:duration_proto",
72        "//:field_mask_proto",
73        "//:struct_proto",
74        "//:timestamp_proto",
75        "//:wrappers_proto",
76    ],
77)
78
79java_proto_library(
80    name = "test_protos_java_proto",
81    deps = [":test_protos"],
82)
83
84junit_tests(
85    name = "tests",
86    package_name = "com.google.protobuf.util",
87    srcs = glob(["src/test/java/**/*.java"]),
88    deps = [
89        ":test_protos_java_proto",
90        ":util",
91        "//java/core",
92        "//java/core:generic_test_protos_java_proto",
93        "@protobuf_maven//:com_google_code_gson_gson",
94        "@protobuf_maven//:com_google_guava_guava",
95        "@protobuf_maven//:com_google_truth_truth",
96        "@protobuf_maven//:junit_junit",
97    ],
98)
99
100pkg_files(
101    name = "dist_files",
102    srcs = glob([
103        "src/main/**/*.java",
104        "src/test/**/*.java",
105        "src/test/**/*.proto",
106    ]) + [
107        "BUILD.bazel",
108        "pom_template.xml",
109    ],
110    strip_prefix = strip_prefix.from_root(""),
111    visibility = ["//java:__pkg__"],
112)
113