| load("//tools/build/bazel:osgi_java_library.bzl", "wrapped_osgi_jar") |
| load("//tools/build/bazel:variables.bzl", "GRPC_JAVA_VERSION") |
| load("//tools/build/bazel:variables.bzl", "PROTOBUF_VERSION") |
| |
| BUNDLES = [ |
| "//protocols/grpc/proto:onos-protocols-grpc-proto", |
| "//protocols/grpc/api:onos-protocols-grpc-api", |
| "//protocols/grpc/ctl:onos-protocols-grpc-ctl", |
| # gRPC dependencies (with patched core) |
| ":grpc-core", |
| ":grpc-stub", |
| ":grpc-netty", |
| ":grpc-auth", |
| ":grpc-protobuf", |
| ":grpc-protobuf-lite", |
| ":protobuf-java", |
| "@com_google_api_grpc_proto_google_common_protos//jar", |
| "@com_google_errorprone_error_prone_annotations//jar", |
| "@com_google_auth_google_auth_library_credentials//jar", |
| "@io_opencensus_opencensus_api//jar", |
| "@io_opencensus_opencensus_contrib_grpc_metrics//jar", |
| "@com_google_code_gson_gson//jar", |
| ] |
| |
| onos_app( |
| app_name = "org.onosproject.protocols.grpc", |
| category = "Protocol", |
| description = "Exposes APIs to operate with gRPC channels", |
| included_bundles = BUNDLES, |
| title = "gRPC Protocol Subsystem", |
| url = "ttp://onosproject.org", |
| ) |
| |
| # Wrap protobuf and grpc-related JARs in OSGi-compatible ones, since the |
| # original ones are built with Bazel and NOT imported via mvn. |
| |
| # FIXME: consider moving these rules somewhere else as other apps depend on it |
| # (e.g. openstacktelemetry and kafka-integration) but they don't directly |
| # depend on any onos-protocols-grpc-* module. |
| |
| GRPC_GROUP_ID = "io.grpc" |
| |
| PROTOBUF_GROUP_ID = "com.google.protobuf" |
| |
| 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 = "grpc-core", |
| group = GRPC_GROUP_ID, |
| jar = "@io_grpc_grpc_java//core", |
| version = GRPC_JAVA_VERSION, |
| visibility = ["//visibility:public"], |
| deps = [], |
| ) |
| |
| wrapped_osgi_jar( |
| name = "grpc-stub", |
| group = GRPC_GROUP_ID, |
| jar = "@io_grpc_grpc_java//stub", |
| version = GRPC_JAVA_VERSION, |
| visibility = ["//visibility:public"], |
| deps = [], |
| ) |
| |
| wrapped_osgi_jar( |
| name = "grpc-netty", |
| group = GRPC_GROUP_ID, |
| jar = "@io_grpc_grpc_java//netty", |
| version = GRPC_JAVA_VERSION, |
| visibility = ["//visibility:public"], |
| deps = [], |
| ) |
| |
| wrapped_osgi_jar( |
| name = "grpc-auth", |
| group = GRPC_GROUP_ID, |
| jar = "@io_grpc_grpc_java//auth", |
| version = GRPC_JAVA_VERSION, |
| visibility = ["//visibility:public"], |
| deps = [], |
| ) |
| |
| wrapped_osgi_jar( |
| name = "grpc-protobuf", |
| group = GRPC_GROUP_ID, |
| jar = "@io_grpc_grpc_java//protobuf", |
| version = GRPC_JAVA_VERSION, |
| visibility = ["//visibility:public"], |
| deps = [], |
| ) |
| |
| wrapped_osgi_jar( |
| name = "grpc-protobuf-lite", |
| group = GRPC_GROUP_ID, |
| jar = "@io_grpc_grpc_java//protobuf-lite", |
| version = GRPC_JAVA_VERSION, |
| visibility = ["//visibility:public"], |
| deps = [], |
| ) |
| |
| wrapped_osgi_jar( |
| name = "protobuf-java", |
| group = PROTOBUF_GROUP_ID, |
| jar = "@com_google_protobuf//:protobuf_java", |
| version = PROTOBUF_VERSION, |
| visibility = ["//visibility:public"], |
| deps = [], |
| ) |