Fix p4runtime runtime dependencies when building with Bazel
A convenient macro for packaging together all proto and gRPC libraries
in an OSGi jar is provided. Also re-packaging of gRPC core (to avoid OSGi
split problem) is simplified by depending on a patched fork of grpc-java.
Change-Id: Idb79a5bea8ae0bc57b146bda1fc47a4568d12c60
diff --git a/protocols/p4runtime/proto/BUILD b/protocols/p4runtime/proto/BUILD
index 4c99b0d..3a9435c 100644
--- a/protocols/p4runtime/proto/BUILD
+++ b/protocols/p4runtime/proto/BUILD
@@ -1,61 +1,19 @@
-load("//tools/build/bazel:osgi_java_library.bzl", "wrapped_osgi_jar")
-load("@io_grpc_grpc_java//:java_grpc_library.bzl", "java_grpc_library")
+load("//tools/build/bazel:osgi_java_library.bzl", "osgi_proto_jar")
-GRPC_DEPS = [
- "@io_grpc_grpc_java//stub",
- "@io_grpc_grpc_java//core",
- "@io_grpc_grpc_java//protobuf",
+PROTOS = [
+ "@com_github_p4lang_p4runtime//:" + p for p in [
+ "p4info_proto",
+ "p4types_proto",
+ "p4data_proto",
+ "p4runtime_proto",
+]] + [
+ "@com_github_p4lang_pi//:p4config_proto"
]
-PROTOBUF_DEPS = [
- "@com_google_protobuf//:protobuf_java",
-]
-
-wrapped_osgi_jar(
- name = "p4config_java_proto",
- jar = "@com_github_p4lang_pi//:p4config_java_proto_native",
- deps = PROTOBUF_DEPS,
- visibility = ["//visibility:public"],
-)
-
-wrapped_osgi_jar(
- name = "p4data_java_proto",
- jar = "@com_github_p4lang_p4runtime//:p4data_java_proto_native",
- deps = PROTOBUF_DEPS,
- visibility = ["//visibility:public"],
-)
-
-wrapped_osgi_jar(
- name = "p4types_java_proto",
- jar = "@com_github_p4lang_p4runtime//:p4types_java_proto_native",
- deps = PROTOBUF_DEPS,
- visibility = ["//visibility:public"],
-)
-
-wrapped_osgi_jar(
- name = "p4info_java_proto",
- jar = "@com_github_p4lang_p4runtime//:p4info_java_proto_native",
- deps = PROTOBUF_DEPS,
- visibility = ["//visibility:public"],
-)
-
-wrapped_osgi_jar(
- name = "p4runtime_java_proto",
- jar = "@com_github_p4lang_p4runtime//:p4runtime_java_proto_native",
- deps = PROTOBUF_DEPS,
- visibility = ["//visibility:public"],
-)
-
-wrapped_osgi_jar(
- name = "p4runtime_java_grpc",
- jar = "@com_github_p4lang_p4runtime//:p4runtime_java_grpc_native",
- deps = GRPC_DEPS,
- visibility = ["//visibility:public"],
-)
-
-wrapped_osgi_jar(
- name = "status_java_proto",
- jar = "@com_github_googleapis//:status_java_proto_native",
- deps = PROTOBUF_DEPS,
- visibility = ["//visibility:public"],
+osgi_proto_jar(
+ proto_libs = PROTOS,
+ grpc_proto_lib = "@com_github_p4lang_p4runtime//:p4runtime_proto",
+ deps = [
+ "@com_google_api_grpc_proto_google_common_protos//jar",
+ ]
)