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",
+    ]
 )