aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main
diff options
context:
space:
mode:
Diffstat (limited to 'src/main')
-rw-r--r--src/main/java/com/google/devtools/build/lib/analysis/NoBuildEvent.java51
-rw-r--r--src/main/java/com/google/devtools/build/lib/runtime/BuildEventStreamer.java9
-rw-r--r--src/main/java/com/google/devtools/build/lib/runtime/commands/QueryCommand.java2
3 files changed, 51 insertions, 11 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/NoBuildEvent.java b/src/main/java/com/google/devtools/build/lib/analysis/NoBuildEvent.java
index 152f39f0c0..7974bddaac 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/NoBuildEvent.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/NoBuildEvent.java
@@ -14,7 +14,50 @@
package com.google.devtools.build.lib.analysis;
-/**
- * This event raised to indicate that no build will be happening for the given command.
- */
-public final class NoBuildEvent {}
+import com.google.common.collect.ImmutableList;
+import com.google.devtools.build.lib.buildeventstream.BuildEvent;
+import com.google.devtools.build.lib.buildeventstream.BuildEventConverters;
+import com.google.devtools.build.lib.buildeventstream.BuildEventId;
+import com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos;
+import com.google.devtools.build.lib.buildeventstream.GenericBuildEvent;
+import com.google.devtools.build.lib.buildeventstream.ProgressEvent;
+import java.util.Collection;
+
+/** This event raised to indicate that no build will be happening for the given command. */
+public final class NoBuildEvent implements BuildEvent {
+ private final String command;
+ private final Long startTimeMillis;
+
+ public NoBuildEvent(String command, Long startTimeMillis) {
+ this.command = command;
+ this.startTimeMillis = startTimeMillis;
+ }
+
+ public NoBuildEvent() {
+ this(null, null);
+ }
+
+ @Override
+ public Collection<BuildEventId> getChildrenEvents() {
+ return ImmutableList.of(ProgressEvent.INITIAL_PROGRESS_UPDATE);
+ }
+
+ @Override
+ public BuildEventId getEventId() {
+ return BuildEventId.buildStartedId();
+ }
+
+ @Override
+ public BuildEventStreamProtos.BuildEvent asStreamProto(BuildEventConverters converters) {
+ BuildEventStreamProtos.BuildStarted.Builder started =
+ BuildEventStreamProtos.BuildStarted.newBuilder()
+ .setBuildToolVersion(BlazeVersionInfo.instance().getVersion());
+ if (command != null) {
+ started.setCommand(command);
+ }
+ if (startTimeMillis != null) {
+ started.setStartTimeMillis(startTimeMillis);
+ }
+ return GenericBuildEvent.protoChaining(this).setStarted(started.build()).build();
+ }
+}
diff --git a/src/main/java/com/google/devtools/build/lib/runtime/BuildEventStreamer.java b/src/main/java/com/google/devtools/build/lib/runtime/BuildEventStreamer.java
index 19eafc98fd..74bb12218f 100644
--- a/src/main/java/com/google/devtools/build/lib/runtime/BuildEventStreamer.java
+++ b/src/main/java/com/google/devtools/build/lib/runtime/BuildEventStreamer.java
@@ -326,11 +326,6 @@ public class BuildEventStreamer implements EventHandler {
public void handle(Event event) {}
@Subscribe
- public void noBuild(NoBuildEvent event) {
- close();
- }
-
- @Subscribe
public void buildInterrupted(BuildInterruptedEvent event) {
abortReason = AbortReason.USER_INTERRUPTED;
}
@@ -374,7 +369,9 @@ public class BuildEventStreamer implements EventHandler {
buildEvent(freedEvent);
}
- if (event instanceof BuildCompleteEvent || event instanceof TestingCompleteEvent) {
+ if (event instanceof BuildCompleteEvent
+ || event instanceof TestingCompleteEvent
+ || event instanceof NoBuildEvent) {
buildComplete();
}
}
diff --git a/src/main/java/com/google/devtools/build/lib/runtime/commands/QueryCommand.java b/src/main/java/com/google/devtools/build/lib/runtime/commands/QueryCommand.java
index f2c89865d2..47571ae9fd 100644
--- a/src/main/java/com/google/devtools/build/lib/runtime/commands/QueryCommand.java
+++ b/src/main/java/com/google/devtools/build/lib/runtime/commands/QueryCommand.java
@@ -199,7 +199,7 @@ public final class QueryCommand implements BlazeCommand {
}
}
- env.getEventBus().post(new NoBuildEvent());
+ env.getEventBus().post(new NoBuildEvent(env.getCommandName(), env.getCommandStartTime()));
if (!streamResults) {
disableAnsiCharactersFiltering(env);
try {