[WIP] Attempt at building grpc and p4runtime protocols with Bazel
STILL NOT WORKING AT RUNTIME
Change-Id: I1f9e60b12a12e09edad2a714ec2921a4f71c6d35
diff --git a/protocols/p4runtime/BUILD b/protocols/p4runtime/BUILD
new file mode 100644
index 0000000..66e2f59
--- /dev/null
+++ b/protocols/p4runtime/BUILD
@@ -0,0 +1,18 @@
+BUNDLES = [
+ '//protocols/p4runtime/api:onos-protocols-p4runtime-api',
+ '//protocols/p4runtime/ctl:onos-protocols-p4runtime-ctl',
+ '//protocols/p4runtime/model:onos-protocols-p4runtime-model',
+ "//protocols/p4runtime/proto:p4runtime_java_grpc",
+]
+
+onos_app(
+ app_name = 'org.onosproject.protocols.p4runtime',
+ title = 'P4Runtime Protocol Subsystem',
+ category = 'Protocol',
+ url = 'http://onosproject.org',
+ description = 'ONOS P4Runtime protocol subsystem',
+ included_bundles = BUNDLES,
+ required_apps = [
+ 'org.onosproject.protocols.grpc'
+ ],
+)
diff --git a/protocols/p4runtime/api/BUILD b/protocols/p4runtime/api/BUILD
index de7b487..531d734 100644
--- a/protocols/p4runtime/api/BUILD
+++ b/protocols/p4runtime/api/BUILD
@@ -1,7 +1,5 @@
-GRPC_VER = "1_3_1"
-
COMPILE_DEPS = CORE_DEPS + [
- "@grpc_core_" + GRPC_VER + "//jar",
+ "@io_grpc_grpc_java//core",
]
TEST_DEPS = TEST + [
diff --git a/protocols/p4runtime/ctl/BUILD b/protocols/p4runtime/ctl/BUILD
new file mode 100644
index 0000000..13554c7
--- /dev/null
+++ b/protocols/p4runtime/ctl/BUILD
@@ -0,0 +1,28 @@
+COMPILE_DEPS = CORE_DEPS + KRYO + [
+ "//core/store/serializers:onos-core-serializers",
+ "//protocols/grpc/api:onos-protocols-grpc-api",
+ "//protocols/p4runtime/api:onos-protocols-p4runtime-api",
+ "//protocols/p4runtime/proto:p4config_java_proto",
+ "//protocols/p4runtime/proto:p4data_java_proto",
+ "//protocols/p4runtime/proto:p4info_java_proto",
+ "//protocols/p4runtime/proto:p4runtime_java_grpc",
+ "//protocols/p4runtime/proto:p4runtime_java_proto",
+ "//protocols/p4runtime/proto:status_java_proto",
+ "@com_google_protobuf//:protobuf_java",
+ "@io_grpc_grpc_java//context",
+ "@io_grpc_grpc_java//core",
+ "@io_grpc_grpc_java//netty",
+ "@io_grpc_grpc_java//stub",
+ "@io_grpc_grpc_java_core_repkg//:internal",
+]
+
+TEST_DEPS = TEST + [
+ "@minimal_json//jar",
+ "@io_grpc_grpc_java//core:inprocess",
+ "@io_grpc_grpc_java//protobuf-lite",
+]
+
+osgi_jar_with_tests(
+ deps = COMPILE_DEPS,
+ test_deps = TEST_DEPS,
+)
diff --git a/protocols/p4runtime/ctl/src/main/java/org/onosproject/p4runtime/ctl/P4RuntimeControllerImpl.java b/protocols/p4runtime/ctl/src/main/java/org/onosproject/p4runtime/ctl/P4RuntimeControllerImpl.java
index d8b0cae..1e7326d 100644
--- a/protocols/p4runtime/ctl/src/main/java/org/onosproject/p4runtime/ctl/P4RuntimeControllerImpl.java
+++ b/protocols/p4runtime/ctl/src/main/java/org/onosproject/p4runtime/ctl/P4RuntimeControllerImpl.java
@@ -20,8 +20,6 @@
import com.google.common.util.concurrent.Striped;
import io.grpc.ManagedChannel;
import io.grpc.ManagedChannelBuilder;
-import io.grpc.NameResolverProvider;
-import io.grpc.internal.DnsNameResolverProvider;
import io.grpc.netty.NettyChannelBuilder;
import org.apache.felix.scr.annotations.Activate;
import org.apache.felix.scr.annotations.Component;
@@ -65,7 +63,6 @@
implements P4RuntimeController {
private final Logger log = getLogger(getClass());
- private final NameResolverProvider nameResolverProvider = new DnsNameResolverProvider();
private final Map<DeviceId, ClientKey> clientKeys = Maps.newHashMap();
private final Map<ClientKey, P4RuntimeClient> clients = Maps.newHashMap();
@@ -141,8 +138,7 @@
ManagedChannelBuilder channelBuilder = NettyChannelBuilder
.forAddress(serverAddr, serverPort)
- .usePlaintext(true)
- .nameResolverFactory(nameResolverProvider);
+ .usePlaintext(true);
ManagedChannel channel;
try {
diff --git a/protocols/p4runtime/model/BUILD b/protocols/p4runtime/model/BUILD
index f29c84c..1e7b506 100644
--- a/protocols/p4runtime/model/BUILD
+++ b/protocols/p4runtime/model/BUILD
@@ -1,7 +1,5 @@
-PROTOBUF_VER = "3_2_0"
-
COMPILE_DEPS = CORE_DEPS + [
- "//protocols/p4runtime/proto:p4_runtime_java_proto",
+ "//protocols/p4runtime/proto:p4info_java_proto",
"@com_google_protobuf//:protobuf_java",
]
diff --git a/protocols/p4runtime/proto/BUILD b/protocols/p4runtime/proto/BUILD
index 8c533af..2da5615 100644
--- a/protocols/p4runtime/proto/BUILD
+++ b/protocols/p4runtime/proto/BUILD
@@ -1,32 +1,58 @@
load("//tools/build/bazel:osgi_java_library.bzl", "wrapped_osgi_jar")
-
-java_proto_library(
- name = "p4_runtime_java_proto_proto",
- visibility = ["//visibility:public"],
- deps = ["@p4lang_pi//:p4_runtime_proto"],
-)
+load("@io_grpc_grpc_java//:java_grpc_library.bzl", "java_grpc_library")
wrapped_osgi_jar(
- name = "rpc_java_proto-osgi",
- jar = "@google_rpc//:rpc_java_proto",
- visibility = ["//visibility:public"],
- deps = CORE_DEPS + ["@protobuf_java_3_2_0//jar"],
-)
-
-wrapped_osgi_jar(
- name = "grpc-core-repkg-1.3.1",
- jar = "@grpc_src_zip_131//:grpc-core-repkg-1.3.1-native",
- visibility = ["//visibility:public"],
- deps = COMPILE,
-)
-
-wrapped_osgi_jar(
- name = "p4_runtime_java_proto",
- jar = ":p4_runtime_java_proto_proto",
- visibility = ["//visibility:public"],
- deps = CORE_DEPS + [
- "@protobuf_java_3_2_0//jar",
- "@google_rpc//:rpc_java_proto",
- ":grpc-core-repkg-1.3.1",
+ name = "p4config_java_proto",
+ jar = "@com_github_p4lang_pi//:p4config_java_proto_native",
+ deps = [
+ "@com_google_protobuf//:protobuf_java",
],
+ visibility = ["//visibility:public"],
+)
+
+wrapped_osgi_jar(
+ name = "p4data_java_proto",
+ jar = "@com_github_p4lang_p4runtime//:p4data_java_proto_native",
+ deps = [
+ "@com_google_protobuf//:protobuf_java",
+ ],
+ visibility = ["//visibility:public"],
+)
+
+wrapped_osgi_jar(
+ name = "p4info_java_proto",
+ jar = "@com_github_p4lang_p4runtime//:p4info_java_proto_native",
+ deps = [
+ "@com_google_protobuf//:protobuf_java",
+ ],
+ visibility = ["//visibility:public"],
+)
+
+wrapped_osgi_jar(
+ name = "p4runtime_java_proto",
+ jar = "@com_github_p4lang_p4runtime//:p4runtime_java_proto_native",
+ deps = [
+ "@com_google_protobuf//:protobuf_java",
+ ],
+ visibility = ["//visibility:public"],
+)
+
+wrapped_osgi_jar(
+ name = "p4runtime_java_grpc",
+ jar = "@com_github_p4lang_p4runtime//:p4runtime_java_grpc_native",
+ deps = [
+ "@io_grpc_grpc_java//stub",
+ "@io_grpc_grpc_java//core",
+ "@io_grpc_grpc_java//protobuf",
+ ],
+ visibility = ["//visibility:public"],
+)
+
+wrapped_osgi_jar(
+ name = "status_java_proto",
+ jar = "@com_github_googleapis//:status_java_proto_native",
+ deps = [
+ "@com_google_protobuf//:protobuf_java",
+ ],
+ visibility = ["//visibility:public"],
)