blob: e3804fb978ded35a233b2afe21d21056e1a2a177 [file] [log] [blame]
Adam Cozzette562fc942021-08-03 11:58:05 -07001load("@rules_java//java:defs.bzl", "java_proto_library")
2load("@rules_jvm_external//:defs.bzl", "java_export")
David L. Jonesd76f8c82022-04-22 16:58:16 -07003load("@rules_pkg//:mappings.bzl", "pkg_filegroup", "pkg_files", "strip_prefix")
Joshua Habermanf5fd8972021-04-30 16:12:50 -07004load("@rules_proto//proto:defs.bzl", "proto_library")
zhangskzb37b6132022-05-03 11:58:31 -04005load("//:protobuf_version.bzl", "PROTOBUF_JAVA_VERSION")
Joshua Habermanf5fd8972021-04-30 16:12:50 -07006load("//java/internal:testing.bzl", "junit_tests")
Yannicf0cb9cd2020-02-13 22:04:14 +01007
Joshua Habermane5c570b2021-09-09 08:21:42 -07008java_library(
Yannicf0cb9cd2020-02-13 22:04:14 +01009 name = "util",
10 srcs = glob([
11 "src/main/java/com/google/protobuf/util/*.java",
12 ]),
Yannicf0cb9cd2020-02-13 22:04:14 +010013 visibility = ["//visibility:public"],
14 deps = [
Yannicf0cb9cd2020-02-13 22:04:14 +010015 "//java/core",
Deanna Garciaab4585a2022-02-01 18:24:53 +000016 "@maven//:com_google_code_findbugs_jsr305",
17 "@maven//:com_google_code_gson_gson",
18 "@maven//:com_google_errorprone_error_prone_annotations",
19 "@maven//:com_google_guava_guava",
20 "@maven//:com_google_j2objc_j2objc_annotations",
Yannicf0cb9cd2020-02-13 22:04:14 +010021 ],
22)
Deanna Garciaab4585a2022-02-01 18:24:53 +000023
Joshua Habermane5c570b2021-09-09 08:21:42 -070024# Bazel users, don't depend on this target, use :util.
25java_export(
26 name = "util_mvn",
David L. Jonesd76f8c82022-04-22 16:58:16 -070027 deploy_env = ["//java/core"],
zhangskzb37b6132022-05-03 11:58:31 -040028 maven_coordinates = "com.google.protobuf:protobuf-java-util:%s" % PROTOBUF_JAVA_VERSION,
Joshua Habermane5c570b2021-09-09 08:21:42 -070029 pom_template = "pom_template.xml",
David L. Jones67823fe2022-05-04 17:30:23 -070030 tags = ["manual"],
Joshua Habermane5c570b2021-09-09 08:21:42 -070031 visibility = ["//java:__pkg__"],
Deanna Garciaab4585a2022-02-01 18:24:53 +000032 runtime_deps = [":util"],
Joshua Habermane5c570b2021-09-09 08:21:42 -070033)
Joshua Habermanf5fd8972021-04-30 16:12:50 -070034
Adam Cozzette562fc942021-08-03 11:58:05 -070035filegroup(
36 name = "release",
Adam Cozzette562fc942021-08-03 11:58:05 -070037 srcs = [
Joshua Habermane5c570b2021-09-09 08:21:42 -070038 ":util_mvn-docs",
Deanna Garciaab4585a2022-02-01 18:24:53 +000039 ":util_mvn-maven-source",
40 ":util_mvn-pom",
Joshua Habermane5c570b2021-09-09 08:21:42 -070041 ":util_mvn-project",
Deanna Garciaab4585a2022-02-01 18:24:53 +000042 ],
43 visibility = ["//java:__pkg__"],
Adam Cozzette562fc942021-08-03 11:58:05 -070044)
45
Joshua Habermanf5fd8972021-04-30 16:12:50 -070046proto_library(
47 name = "test_protos",
48 srcs = glob(["src/test/proto/**/*.proto"]),
49 deps = [
50 "//:any_proto",
51 "//:duration_proto",
52 "//:field_mask_proto",
53 "//:struct_proto",
54 "//:timestamp_proto",
55 "//:wrappers_proto",
56 ],
57)
58
59java_proto_library(
60 name = "test_protos_java_proto",
61 deps = [":test_protos"],
62)
63
64junit_tests(
65 name = "tests",
Joshua Habermanf5fd8972021-04-30 16:12:50 -070066 package_name = "com.google.protobuf.util",
Deanna Garciaab4585a2022-02-01 18:24:53 +000067 srcs = glob(["src/test/java/**/*.java"]),
Joshua Habermanf5fd8972021-04-30 16:12:50 -070068 deps = [
69 ":test_protos_java_proto",
70 ":util",
Joshua Habermanf5fd8972021-04-30 16:12:50 -070071 "//java/core",
72 "//java/core:generic_test_protos_java_proto",
Adam Cozzette839f0f82022-03-03 22:03:15 +000073 "@maven//:com_google_code_gson_gson",
Deanna Garciaab4585a2022-02-01 18:24:53 +000074 "@maven//:com_google_guava_guava",
75 "@maven//:com_google_truth_truth",
76 "@maven//:junit_junit",
Joshua Habermanf5fd8972021-04-30 16:12:50 -070077 ],
78)
David L. Jonesd76f8c82022-04-22 16:58:16 -070079
80pkg_files(
81 name = "dist_files",
82 srcs = glob([
83 "src/main/**/*.java",
84 "src/test/**/*.java",
85 "src/test/**/*.proto",
86 ]) + [
David L. Jones95da0ba2022-04-29 17:57:55 -070087 "BUILD.bazel",
David L. Jonesd76f8c82022-04-22 16:58:16 -070088 "pom.xml",
89 "pom_template.xml",
90 ],
91 strip_prefix = strip_prefix.from_root(""),
92 visibility = ["//java:__pkg__"],
93)