Internal change

PiperOrigin-RevId: 837124434
Change-Id: I35f4ee085410e552eb303f980cf237d38ee51503
diff --git a/src/main/java/com/google/devtools/build/lib/buildeventservice/BUILD b/src/main/java/com/google/devtools/build/lib/buildeventservice/BUILD
index de30717..56a2a15 100644
--- a/src/main/java/com/google/devtools/build/lib/buildeventservice/BUILD
+++ b/src/main/java/com/google/devtools/build/lib/buildeventservice/BUILD
@@ -12,7 +12,7 @@
 )
 
 java_library(
-    name = "BuildEventServiceAvailabilityEvent",
+    name = "build_event_service_availability_event",
     srcs = ["BuildEventServiceAvailabilityEvent.java"],
     deps = [
         "//src/main/java/com/google/devtools/build/lib/util:exit_code",
@@ -22,7 +22,7 @@
 )
 
 java_library(
-    name = "buildeventservice-options",
+    name = "build_event_service_options",
     srcs = ["BuildEventServiceOptions.java"],
     deps = [
         "//src/main/java/com/google/devtools/common/options",
@@ -33,10 +33,14 @@
     name = "buildeventservice",
     srcs = glob(
         ["*.java"],
-        exclude = ["BuildEventServiceOptions.java"],
+        exclude = [
+            "BuildEventServiceOptions.java",
+            "BuildEventServiceAvailabilityEvent.java",
+        ],
     ),
     deps = [
-        ":buildeventservice-options",
+        ":build_event_service_availability_event",
+        ":build_event_service_options",
         "//src/main/java/com/google/devtools/build/lib:runtime",
         "//src/main/java/com/google/devtools/build/lib/analysis:blaze_directories",
         "//src/main/java/com/google/devtools/build/lib/analysis:test/test_configuration",
@@ -44,7 +48,8 @@
         "//src/main/java/com/google/devtools/build/lib/authandtls/credentialhelper",
         "//src/main/java/com/google/devtools/build/lib/authandtls/credentialhelper:credential_module",
         "//src/main/java/com/google/devtools/build/lib/bugreport",
-        "//src/main/java/com/google/devtools/build/lib/buildeventservice/client",
+        "//src/main/java/com/google/devtools/build/lib/buildeventservice/client:build_event_service_client",
+        "//src/main/java/com/google/devtools/build/lib/buildeventservice/client:build_event_service_grpc_client",
         "//src/main/java/com/google/devtools/build/lib/buildeventstream",
         "//src/main/java/com/google/devtools/build/lib/buildeventstream:build_event_service_upload_complete_event",
         "//src/main/java/com/google/devtools/build/lib/buildeventstream:large-buildevent-serialized-event",
diff --git a/src/main/java/com/google/devtools/build/lib/buildeventservice/client/BUILD b/src/main/java/com/google/devtools/build/lib/buildeventservice/client/BUILD
index 34a8ba4..e7e6d94 100644
--- a/src/main/java/com/google/devtools/build/lib/buildeventservice/client/BUILD
+++ b/src/main/java/com/google/devtools/build/lib/buildeventservice/client/BUILD
@@ -12,22 +12,45 @@
 )
 
 java_library(
-    name = "client",
-    srcs = glob(["*.java"]),
-    runtime_deps = [
-        # This is required for client TLS.
-        "//third_party:netty_tcnative",
-    ],
+    name = "build_event_service_client",
+    srcs = ["BuildEventServiceClient.java"],
     deps = [
-        "//src/main/java/com/google/devtools/build/lib/buildeventstream/proto:build_event_stream_java_proto",
-        "//src/main/java/com/google/devtools/build/lib/remote/util",
         "//third_party:auto_value",
         "//third_party:error_prone_annotations",
         "//third_party:guava",
         "//third_party:jsr305",
         "//third_party/grpc-java:grpc-jar",
         "@com_google_protobuf//:protobuf_java",
+    ],
+)
+
+java_library(
+    name = "build_event_service_grpc_client",
+    srcs = ["BuildEventServiceGrpcClient.java"],
+    runtime_deps = [
+        # This is required for client TLS.
+        "//third_party:netty_tcnative",
+    ],
+    deps = [
+        ":build_event_service_client",
+        ":build_event_service_proto_util",
+        "//src/main/java/com/google/devtools/build/lib/remote/util",
+        "//third_party:guava",
+        "//third_party:jsr305",
+        "//third_party/grpc-java:grpc-jar",
         "@googleapis//google/devtools/build/v1:build_java_grpc",
         "@googleapis//google/devtools/build/v1:build_java_proto",
     ],
 )
+
+java_library(
+    name = "build_event_service_proto_util",
+    srcs = ["BuildEventServiceProtoUtil.java"],
+    deps = [
+        ":build_event_service_client",
+        "//src/main/java/com/google/devtools/build/lib/buildeventstream/proto:build_event_stream_java_proto",
+        "//third_party:guava",
+        "@com_google_protobuf//:protobuf_java",
+        "@googleapis//google/devtools/build/v1:build_java_proto",
+    ],
+)
diff --git a/src/main/java/com/google/devtools/build/lib/buildeventstream/BUILD b/src/main/java/com/google/devtools/build/lib/buildeventstream/BUILD
index 2ebbe3d..e91e25e 100644
--- a/src/main/java/com/google/devtools/build/lib/buildeventstream/BUILD
+++ b/src/main/java/com/google/devtools/build/lib/buildeventstream/BUILD
@@ -24,7 +24,7 @@
     deps = [
         "//src/main/java/com/google/devtools/build/lib/actions:artifacts",
         "//src/main/java/com/google/devtools/build/lib/actions:file_metadata",
-        "//src/main/java/com/google/devtools/build/lib/buildeventservice:buildeventservice-options",
+        "//src/main/java/com/google/devtools/build/lib/buildeventservice:build_event_service_options",
         "//src/main/java/com/google/devtools/build/lib/buildeventstream/proto:build_event_stream_java_proto",
         "//src/main/java/com/google/devtools/build/lib/cmdline",
         "//src/main/java/com/google/devtools/build/lib/collect/nestedset",
diff --git a/src/main/java/com/google/devtools/build/lib/buildeventstream/transports/BUILD b/src/main/java/com/google/devtools/build/lib/buildeventstream/transports/BUILD
index d56339a..fc5cbb0 100644
--- a/src/main/java/com/google/devtools/build/lib/buildeventstream/transports/BUILD
+++ b/src/main/java/com/google/devtools/build/lib/buildeventstream/transports/BUILD
@@ -15,7 +15,7 @@
     name = "transports",
     srcs = glob(["*.java"]),
     deps = [
-        "//src/main/java/com/google/devtools/build/lib/buildeventservice:buildeventservice-options",
+        "//src/main/java/com/google/devtools/build/lib/buildeventservice:build_event_service_options",
         "//src/main/java/com/google/devtools/build/lib/buildeventstream",
         "//src/main/java/com/google/devtools/build/lib/buildeventstream/proto:build_event_stream_java_proto",
         "//src/main/java/com/google/devtools/build/lib/util:abrupt_exit_exception",
diff --git a/src/test/java/com/google/devtools/build/lib/buildeventservice/AbstractBuildEventServiceTransportTest.java b/src/test/java/com/google/devtools/build/lib/buildeventservice/AbstractBuildEventServiceTransportTest.java
index a80a242..a12360c 100644
--- a/src/test/java/com/google/devtools/build/lib/buildeventservice/AbstractBuildEventServiceTransportTest.java
+++ b/src/test/java/com/google/devtools/build/lib/buildeventservice/AbstractBuildEventServiceTransportTest.java
@@ -70,7 +70,6 @@
 import com.google.devtools.build.lib.vfs.inmemoryfs.InMemoryFileSystem;
 import com.google.devtools.build.v1.PublishBuildToolEventStreamRequest;
 import com.google.devtools.common.options.Options;
-import com.google.devtools.common.options.OptionsParsingException;
 import com.google.protobuf.Any;
 import com.google.protobuf.ByteString;
 import io.grpc.Status;
@@ -928,15 +927,14 @@
 
   protected abstract AbstractBuildEventRecorder createBesServer();
 
-  protected abstract BuildEventServiceClient createBesClient() throws OptionsParsingException;
+  protected abstract BuildEventServiceClient createBesClient() throws IOException;
 
-  protected abstract BuildEventServiceClient createBesClient(int serverPort)
-      throws OptionsParsingException;
+  protected abstract BuildEventServiceClient createBesClient(int serverPort) throws IOException;
 
   protected abstract DigestHashFunction makeVfsHashFunction();
 
   private BuildEventServiceTransport newBuildEventServiceTransport(boolean publishLifecycleEvents)
-      throws OptionsParsingException {
+      throws IOException {
     return newBuildEventServiceTransport(
         createBesClient(), publishLifecycleEvents, Duration.ZERO, new LocalFilesArtifactUploader());
   }
diff --git a/src/test/java/com/google/devtools/build/lib/buildeventservice/BUILD b/src/test/java/com/google/devtools/build/lib/buildeventservice/BUILD
index 0547d54..1e37ad8 100644
--- a/src/test/java/com/google/devtools/build/lib/buildeventservice/BUILD
+++ b/src/test/java/com/google/devtools/build/lib/buildeventservice/BUILD
@@ -24,8 +24,9 @@
     deps = [
         "//src/main/java/com/google/devtools/build/lib:runtime",
         "//src/main/java/com/google/devtools/build/lib/buildeventservice",
-        "//src/main/java/com/google/devtools/build/lib/buildeventservice:buildeventservice-options",
-        "//src/main/java/com/google/devtools/build/lib/buildeventservice/client",
+        "//src/main/java/com/google/devtools/build/lib/buildeventservice:build_event_service_options",
+        "//src/main/java/com/google/devtools/build/lib/buildeventservice/client:build_event_service_client",
+        "//src/main/java/com/google/devtools/build/lib/buildeventservice/client:build_event_service_proto_util",
         "//src/main/java/com/google/devtools/build/lib/buildeventstream",
         "//src/main/java/com/google/devtools/build/lib/buildeventstream/proto:build_event_stream_java_proto",
         "//src/main/java/com/google/devtools/build/lib/clock",
@@ -60,7 +61,9 @@
     test_class = "com.google.devtools.build.lib.AllTests",
     runtime_deps = ["//src/test/java/com/google/devtools/build/lib:test_runner"],
     deps = [
-        "//src/main/java/com/google/devtools/build/lib/buildeventservice/client",
+        "//src/main/java/com/google/devtools/build/lib/buildeventservice/client:build_event_service_client",
+        "//src/main/java/com/google/devtools/build/lib/buildeventservice/client:build_event_service_grpc_client",
+        "//src/main/java/com/google/devtools/build/lib/buildeventservice/client:build_event_service_proto_util",
         "//src/test/java/com/google/devtools/build/lib/testutil",
         "//third_party:guava",
         "//third_party:junit4",
@@ -77,7 +80,8 @@
     srcs = ["BuildEventServiceTransportGrpcTest.java"],
     deps = [
         ":AbstractBuildEventServiceTransportTest",
-        "//src/main/java/com/google/devtools/build/lib/buildeventservice/client",
+        "//src/main/java/com/google/devtools/build/lib/buildeventservice/client:build_event_service_client",
+        "//src/main/java/com/google/devtools/build/lib/buildeventservice/client:build_event_service_grpc_client",
         "//src/main/java/com/google/devtools/build/lib/util:pair",
         "//src/main/java/com/google/devtools/build/lib/vfs",
         "//src/test/java/com/google/devtools/build/lib/remote/util:free_port_finder",
@@ -105,7 +109,7 @@
         "//src/main/java/com/google/devtools/build/lib/authandtls/credentialhelper:credential_module",
         "//src/main/java/com/google/devtools/build/lib/bugreport",
         "//src/main/java/com/google/devtools/build/lib/buildeventservice",
-        "//src/main/java/com/google/devtools/build/lib/buildeventservice:buildeventservice-options",
+        "//src/main/java/com/google/devtools/build/lib/buildeventservice:build_event_service_options",
         "//src/main/java/com/google/devtools/build/lib/buildeventstream",
         "//src/main/java/com/google/devtools/build/lib/buildeventstream:build_event_service_upload_complete_event",
         "//src/main/java/com/google/devtools/build/lib/buildeventstream/proto:build_event_stream_java_proto",
diff --git a/src/test/java/com/google/devtools/build/lib/buildeventstream/transports/BUILD b/src/test/java/com/google/devtools/build/lib/buildeventstream/transports/BUILD
index a27b8d6..f894e94 100644
--- a/src/test/java/com/google/devtools/build/lib/buildeventstream/transports/BUILD
+++ b/src/test/java/com/google/devtools/build/lib/buildeventstream/transports/BUILD
@@ -19,7 +19,7 @@
     test_class = "com.google.devtools.build.lib.AllTests",
     runtime_deps = ["//src/test/java/com/google/devtools/build/lib:test_runner"],
     deps = [
-        "//src/main/java/com/google/devtools/build/lib/buildeventservice:buildeventservice-options",
+        "//src/main/java/com/google/devtools/build/lib/buildeventservice:build_event_service_options",
         "//src/main/java/com/google/devtools/build/lib/buildeventstream",
         "//src/main/java/com/google/devtools/build/lib/buildeventstream/proto:build_event_stream_java_proto",
         "//src/main/java/com/google/devtools/build/lib/buildeventstream/transports",
diff --git a/src/test/java/com/google/devtools/build/lib/runtime/BUILD b/src/test/java/com/google/devtools/build/lib/runtime/BUILD
index 801cac2..80b0c71 100644
--- a/src/test/java/com/google/devtools/build/lib/runtime/BUILD
+++ b/src/test/java/com/google/devtools/build/lib/runtime/BUILD
@@ -70,7 +70,7 @@
         "//src/main/java/com/google/devtools/build/lib/bazel/repository/downloader",
         "//src/main/java/com/google/devtools/build/lib/bazel/rules",
         "//src/main/java/com/google/devtools/build/lib/bugreport",
-        "//src/main/java/com/google/devtools/build/lib/buildeventservice:buildeventservice-options",
+        "//src/main/java/com/google/devtools/build/lib/buildeventservice:build_event_service_options",
         "//src/main/java/com/google/devtools/build/lib/buildeventstream",
         "//src/main/java/com/google/devtools/build/lib/buildeventstream/proto:build_event_stream_java_proto",
         "//src/main/java/com/google/devtools/build/lib/buildeventstream/transports",