From 617bb896dc5d2b815449459e991c577237d7a7fc Mon Sep 17 00:00:00 2001 From: aehlig Date: Tue, 4 Apr 2017 15:03:23 +0000 Subject: BEP: provide events a generic converter class Change the BuildEvent interface to accept a generic class of converters. In this way, we won't have to change it again in the future, once more converters are needed. In fact, a new converter is needed right now (will be added in a follow-up patch) to allow build events to know the name of named artifact groups already reported in the stream. Change-Id: Ibb32ea5fff361e21bcf2d34818d8351a1da7a2e3 PiperOrigin-RevId: 152131870 --- .../buildeventstream/transports/BinaryFormatFileTransport.java | 10 +++++++++- .../buildeventstream/transports/TextFormatFileTransport.java | 10 +++++++++- 2 files changed, 18 insertions(+), 2 deletions(-) (limited to 'src/main/java/com/google/devtools/build/lib/buildeventstream/transports') diff --git a/src/main/java/com/google/devtools/build/lib/buildeventstream/transports/BinaryFormatFileTransport.java b/src/main/java/com/google/devtools/build/lib/buildeventstream/transports/BinaryFormatFileTransport.java index 1bf30b7c0e..3356c230ca 100644 --- a/src/main/java/com/google/devtools/build/lib/buildeventstream/transports/BinaryFormatFileTransport.java +++ b/src/main/java/com/google/devtools/build/lib/buildeventstream/transports/BinaryFormatFileTransport.java @@ -15,6 +15,7 @@ package com.google.devtools.build.lib.buildeventstream.transports; import com.google.devtools.build.lib.buildeventstream.BuildEvent; +import com.google.devtools.build.lib.buildeventstream.BuildEventConverters; import com.google.devtools.build.lib.buildeventstream.BuildEventTransport; import com.google.devtools.build.lib.buildeventstream.PathConverter; import java.io.BufferedOutputStream; @@ -40,7 +41,14 @@ public final class BinaryFormatFileTransport implements BuildEventTransport { @Override public synchronized void sendBuildEvent(BuildEvent event) throws IOException { - event.asStreamProto(pathConverter).writeDelimitedTo(out); + BuildEventConverters converters = + new BuildEventConverters() { + @Override + public PathConverter pathConverter() { + return pathConverter; + } + }; + event.asStreamProto(converters).writeDelimitedTo(out); out.flush(); } diff --git a/src/main/java/com/google/devtools/build/lib/buildeventstream/transports/TextFormatFileTransport.java b/src/main/java/com/google/devtools/build/lib/buildeventstream/transports/TextFormatFileTransport.java index 5f8f59d338..54e979e739 100644 --- a/src/main/java/com/google/devtools/build/lib/buildeventstream/transports/TextFormatFileTransport.java +++ b/src/main/java/com/google/devtools/build/lib/buildeventstream/transports/TextFormatFileTransport.java @@ -15,6 +15,7 @@ package com.google.devtools.build.lib.buildeventstream.transports; import com.google.devtools.build.lib.buildeventstream.BuildEvent; +import com.google.devtools.build.lib.buildeventstream.BuildEventConverters; import com.google.devtools.build.lib.buildeventstream.BuildEventTransport; import com.google.devtools.build.lib.buildeventstream.PathConverter; import com.google.protobuf.TextFormat; @@ -40,7 +41,14 @@ public final class TextFormatFileTransport implements BuildEventTransport { @Override public synchronized void sendBuildEvent(BuildEvent event) throws IOException { if (out != null) { - String protoTextRepresentation = TextFormat.printToString(event.asStreamProto(pathConverter)); + BuildEventConverters converters = + new BuildEventConverters() { + @Override + public PathConverter pathConverter() { + return pathConverter; + } + }; + String protoTextRepresentation = TextFormat.printToString(event.asStreamProto(converters)); out.write(("event {\n" + protoTextRepresentation + "}\n\n").getBytes(StandardCharsets.UTF_8)); out.flush(); } -- cgit v1.2.3