Allow building third-party apps based on gRPC
By publishing the repackaged grpc and protobuf artifacts
Change-Id: Ib3af7dba4f64948132aa70be31922de61d6f6ab2
diff --git a/lib/BUILD b/lib/BUILD
new file mode 100644
index 0000000..52c4ea6
--- /dev/null
+++ b/lib/BUILD
@@ -0,0 +1,66 @@
+load("//tools/build/bazel:osgi_java_library.bzl", "wrapped_osgi_jar")
+
+# Wrap protobuf and grpc-related JARs in OSGi-compatible ones, since the
+# original ones are built with Bazel and NOT imported via mvn.
+
+wrapped_osgi_jar(
+ # Differently from the official "grpc-core" package, here we also include
+ # "grpc-context" to solve the OSGI split-brain problem:
+ # https://github.com/grpc/grpc-java/issues/2727
+ # We use patched Bazel BUILD files to package together core and context (see
+ # tools/build/bazel/grpc_workspace.bzl). If you need grpc-context as a
+ # compile-time dependency, please use this one.
+ name = "io_grpc_grpc_core_context",
+ generate_pom = True,
+ jar = "@io_grpc_grpc_java//core",
+ visibility = ["//visibility:public"],
+ deps = [],
+)
+
+wrapped_osgi_jar(
+ name = "io_grpc_grpc_stub",
+ generate_pom = True,
+ jar = "@io_grpc_grpc_java//stub",
+ visibility = ["//visibility:public"],
+ deps = [],
+)
+
+wrapped_osgi_jar(
+ name = "io_grpc_grpc_netty",
+ generate_pom = True,
+ jar = "@io_grpc_grpc_java//netty",
+ visibility = ["//visibility:public"],
+ deps = [],
+)
+
+wrapped_osgi_jar(
+ name = "io_grpc_grpc_auth",
+ generate_pom = True,
+ jar = "@io_grpc_grpc_java//auth",
+ visibility = ["//visibility:public"],
+ deps = [],
+)
+
+wrapped_osgi_jar(
+ name = "io_grpc_grpc_protobuf",
+ generate_pom = True,
+ jar = "@io_grpc_grpc_java//protobuf",
+ visibility = ["//visibility:public"],
+ deps = [],
+)
+
+wrapped_osgi_jar(
+ name = "io_grpc_grpc_protobuf_lite",
+ generate_pom = True,
+ jar = "@io_grpc_grpc_java//protobuf-lite",
+ visibility = ["//visibility:public"],
+ deps = [],
+)
+
+wrapped_osgi_jar(
+ name = "com_google_protobuf_protobuf_java",
+ generate_pom = True,
+ jar = "@com_google_protobuf//:protobuf_java",
+ visibility = ["//visibility:public"],
+ deps = [],
+)