aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/com/google')
-rw-r--r--src/main/java/com/google/devtools/build/lib/analysis/NoBuildRequestFinishedEvent.java41
-rw-r--r--src/main/java/com/google/devtools/build/lib/buildeventstream/BUILD1
-rw-r--r--src/main/java/com/google/devtools/build/lib/buildeventstream/BuildCompletingEvent.java66
-rw-r--r--src/main/java/com/google/devtools/build/lib/buildtool/buildevent/BuildCompleteEvent.java39
-rw-r--r--src/main/java/com/google/devtools/build/lib/buildtool/buildevent/TestingCompleteEvent.java46
-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/NoTestsFound.java46
7 files changed, 81 insertions, 167 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/NoBuildRequestFinishedEvent.java b/src/main/java/com/google/devtools/build/lib/analysis/NoBuildRequestFinishedEvent.java
index 27ee93a363..f1294f2c47 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/NoBuildRequestFinishedEvent.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/NoBuildRequestFinishedEvent.java
@@ -14,47 +14,12 @@
package com.google.devtools.build.lib.analysis;
-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.BuildCompletingEvent;
import com.google.devtools.build.lib.util.ExitCode;
-import java.util.Collection;
/** {@link BuildEvent} indicating that a request that does not involve building as finished. */
-public final class NoBuildRequestFinishedEvent implements BuildEvent {
- private final ExitCode exitCode;
- private final long finishTimeMillis;
-
+public final class NoBuildRequestFinishedEvent extends BuildCompletingEvent {
public NoBuildRequestFinishedEvent(ExitCode exitCode, long finishTimeMillis) {
- this.exitCode = exitCode;
- this.finishTimeMillis = finishTimeMillis;
- }
-
- @Override
- public Collection<BuildEventId> getChildrenEvents() {
- return ImmutableList.<BuildEventId>of();
- }
-
- @Override
- public BuildEventId getEventId() {
- return BuildEventId.buildFinished();
- }
-
- @Override
- public BuildEventStreamProtos.BuildEvent asStreamProto(BuildEventConverters converters) {
- return GenericBuildEvent.protoChaining(this)
- .setFinished(
- BuildEventStreamProtos.BuildFinished.newBuilder()
- .setExitCode(
- BuildEventStreamProtos.BuildFinished.ExitCode.newBuilder()
- .setName(exitCode.name())
- .setCode(exitCode.getNumericExitCode())
- .build())
- .setFinishTimeMillis(finishTimeMillis)
- .build())
- .build();
+ super(exitCode, finishTimeMillis);
}
}
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 7fb0c27dc3..f56bd27c58 100644
--- a/src/main/java/com/google/devtools/build/lib/buildeventstream/BUILD
+++ b/src/main/java/com/google/devtools/build/lib/buildeventstream/BUILD
@@ -12,6 +12,7 @@ java_library(
srcs = glob(["*.java"]),
deps = [
"//src/main/java/com/google/devtools/build/lib:events",
+ "//src/main/java/com/google/devtools/build/lib:util",
"//src/main/java/com/google/devtools/build/lib/buildeventstream/proto:build_event_stream_java_proto",
"//src/main/java/com/google/devtools/build/lib/causes",
"//src/main/java/com/google/devtools/build/lib/cmdline",
diff --git a/src/main/java/com/google/devtools/build/lib/buildeventstream/BuildCompletingEvent.java b/src/main/java/com/google/devtools/build/lib/buildeventstream/BuildCompletingEvent.java
new file mode 100644
index 0000000000..a1b5b284d3
--- /dev/null
+++ b/src/main/java/com/google/devtools/build/lib/buildeventstream/BuildCompletingEvent.java
@@ -0,0 +1,66 @@
+// Copyright 2014 The Bazel Authors. All rights reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+package com.google.devtools.build.lib.buildeventstream;
+
+import com.google.common.collect.ImmutableList;
+import com.google.devtools.build.lib.util.ExitCode;
+import java.util.Collection;
+
+/**
+ * Class all events completing a build inherit from.
+ *
+ * <p>This class is abstract as for each particular event a specialized class should be used.
+ * However, subclasses do not have to implement anything.
+ */
+public abstract class BuildCompletingEvent implements BuildEvent {
+ private final ExitCode exitCode;
+ private final long finishTimeMillis;
+
+ public BuildCompletingEvent(ExitCode exitCode, long finishTimeMillis) {
+ this.exitCode = exitCode;
+ this.finishTimeMillis = finishTimeMillis;
+ }
+
+ public ExitCode getExitCode() {
+ return exitCode;
+ }
+
+ @Override
+ public BuildEventId getEventId() {
+ return BuildEventId.buildFinished();
+ }
+
+ @Override
+ public Collection<BuildEventId> getChildrenEvents() {
+ return ImmutableList.of();
+ }
+
+ @Override
+ public BuildEventStreamProtos.BuildEvent asStreamProto(BuildEventConverters converters) {
+ BuildEventStreamProtos.BuildFinished.ExitCode protoExitCode =
+ BuildEventStreamProtos.BuildFinished.ExitCode.newBuilder()
+ .setName(exitCode.name())
+ .setCode(exitCode.getNumericExitCode())
+ .build();
+
+ BuildEventStreamProtos.BuildFinished finished =
+ BuildEventStreamProtos.BuildFinished.newBuilder()
+ .setOverallSuccess(ExitCode.SUCCESS.equals(exitCode))
+ .setExitCode(protoExitCode)
+ .setFinishTimeMillis(finishTimeMillis)
+ .build();
+ return GenericBuildEvent.protoChaining(this).setFinished(finished).build();
+ }
+}
diff --git a/src/main/java/com/google/devtools/build/lib/buildtool/buildevent/BuildCompleteEvent.java b/src/main/java/com/google/devtools/build/lib/buildtool/buildevent/BuildCompleteEvent.java
index 45b4ed54d7..d1c2cb79d4 100644
--- a/src/main/java/com/google/devtools/build/lib/buildtool/buildevent/BuildCompleteEvent.java
+++ b/src/main/java/com/google/devtools/build/lib/buildtool/buildevent/BuildCompleteEvent.java
@@ -16,28 +16,22 @@ package com.google.devtools.build.lib.buildtool.buildevent;
import static com.google.devtools.build.lib.util.Preconditions.checkNotNull;
-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.BuildEventStreamProtos.BuildFinished;
-import com.google.devtools.build.lib.buildeventstream.GenericBuildEvent;
+import com.google.devtools.build.lib.buildeventstream.BuildCompletingEvent;
import com.google.devtools.build.lib.buildtool.BuildResult;
-import java.util.Collection;
/**
* This event is fired from BuildTool#stopRequest().
*
* <p>This class also implements the {@link BuildFinished} event of the build event protocol (BEP).
*/
-public final class BuildCompleteEvent implements BuildEvent {
+public final class BuildCompleteEvent extends BuildCompletingEvent {
private final BuildResult result;
/**
* Construct the BuildCompleteEvent.
*/
public BuildCompleteEvent(BuildResult result) {
+ super(result.getExitCondition(), result.getStopTime());
this.result = checkNotNull(result);
}
@@ -47,31 +41,4 @@ public final class BuildCompleteEvent implements BuildEvent {
public BuildResult getResult() {
return result;
}
-
- @Override
- public BuildEventId getEventId() {
- return BuildEventId.buildFinished();
- }
-
- @Override
- public Collection<BuildEventId> getChildrenEvents() {
- return ImmutableList.of();
- }
-
- @Override
- public BuildEventStreamProtos.BuildEvent asStreamProto(BuildEventConverters converters) {
- BuildEventStreamProtos.BuildFinished.ExitCode exitCode =
- BuildFinished.ExitCode.newBuilder()
- .setName(result.getExitCondition().name())
- .setCode(result.getExitCondition().getNumericExitCode())
- .build();
-
- BuildFinished finished =
- BuildFinished.newBuilder()
- .setOverallSuccess(result.getSuccess())
- .setExitCode(exitCode)
- .setFinishTimeMillis(result.getStopTime())
- .build();
- return GenericBuildEvent.protoChaining(this).setFinished(finished).build();
- }
}
diff --git a/src/main/java/com/google/devtools/build/lib/buildtool/buildevent/TestingCompleteEvent.java b/src/main/java/com/google/devtools/build/lib/buildtool/buildevent/TestingCompleteEvent.java
index a150de5694..282715b015 100644
--- a/src/main/java/com/google/devtools/build/lib/buildtool/buildevent/TestingCompleteEvent.java
+++ b/src/main/java/com/google/devtools/build/lib/buildtool/buildevent/TestingCompleteEvent.java
@@ -14,16 +14,8 @@
package com.google.devtools.build.lib.buildtool.buildevent;
-import static com.google.devtools.build.lib.util.Preconditions.checkNotNull;
-
-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.BuildCompletingEvent;
import com.google.devtools.build.lib.util.ExitCode;
-import java.util.Collection;
/**
* Event triggered after testing has completed.
@@ -31,11 +23,7 @@ import java.util.Collection;
* <p>This event is used by the BEP to construct the {@link BuildEventStreamProtos.BuildFinished}
* event when the test command is used.
*/
-public class TestingCompleteEvent implements BuildEvent {
-
- private final ExitCode exitCode;
- private final long finishTimeMillis;
-
+public class TestingCompleteEvent extends BuildCompletingEvent {
/**
* Creates a new {@link TestingCompleteEvent}.
*
@@ -43,34 +31,6 @@ public class TestingCompleteEvent implements BuildEvent {
* @param finishTimeMillis the finish time in milliseconds since the epoch.
*/
public TestingCompleteEvent(ExitCode exitCode, long finishTimeMillis) {
- this.exitCode = checkNotNull(exitCode);
- this.finishTimeMillis = finishTimeMillis;
- }
-
- @Override
- public BuildEventId getEventId() {
- return BuildEventId.buildFinished();
- }
-
- @Override
- public Collection<BuildEventId> getChildrenEvents() {
- return ImmutableList.of();
- }
-
- @Override
- public BuildEventStreamProtos.BuildEvent asStreamProto(BuildEventConverters converters) {
- BuildEventStreamProtos.BuildFinished.ExitCode protoExitCode =
- BuildEventStreamProtos.BuildFinished.ExitCode.newBuilder()
- .setName(exitCode.name())
- .setCode(exitCode.getNumericExitCode())
- .build();
-
- BuildEventStreamProtos.BuildFinished finished =
- BuildEventStreamProtos.BuildFinished.newBuilder()
- .setOverallSuccess(ExitCode.SUCCESS.equals(exitCode))
- .setExitCode(protoExitCode)
- .setFinishTimeMillis(finishTimeMillis)
- .build();
- return GenericBuildEvent.protoChaining(this).setFinished(finished).build();
+ super(exitCode, finishTimeMillis);
}
}
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 7b4ac281d6..3353d577e8 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
@@ -31,11 +31,11 @@ import com.google.devtools.build.lib.actions.Artifact;
import com.google.devtools.build.lib.actions.EventReportingArtifacts;
import com.google.devtools.build.lib.analysis.BuildInfoEvent;
import com.google.devtools.build.lib.analysis.NoBuildEvent;
-import com.google.devtools.build.lib.analysis.NoBuildRequestFinishedEvent;
import com.google.devtools.build.lib.analysis.extra.ExtraAction;
import com.google.devtools.build.lib.buildeventstream.AbortedEvent;
import com.google.devtools.build.lib.buildeventstream.AnnounceBuildEventTransportsEvent;
import com.google.devtools.build.lib.buildeventstream.ArtifactGroupNamer;
+import com.google.devtools.build.lib.buildeventstream.BuildCompletingEvent;
import com.google.devtools.build.lib.buildeventstream.BuildEvent;
import com.google.devtools.build.lib.buildeventstream.BuildEventId;
import com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.Aborted.AbortReason;
@@ -51,13 +51,11 @@ import com.google.devtools.build.lib.buildtool.BuildRequest;
import com.google.devtools.build.lib.buildtool.buildevent.BuildCompleteEvent;
import com.google.devtools.build.lib.buildtool.buildevent.BuildInterruptedEvent;
import com.google.devtools.build.lib.buildtool.buildevent.BuildStartingEvent;
-import com.google.devtools.build.lib.buildtool.buildevent.TestingCompleteEvent;
import com.google.devtools.build.lib.collect.nestedset.NestedSet;
import com.google.devtools.build.lib.collect.nestedset.NestedSetView;
import com.google.devtools.build.lib.events.Event;
import com.google.devtools.build.lib.events.EventHandler;
import com.google.devtools.build.lib.events.Reporter;
-import com.google.devtools.build.lib.runtime.commands.NoTestsFound;
import com.google.devtools.build.lib.util.Pair;
import java.util.ArrayList;
import java.util.Collection;
@@ -414,10 +412,7 @@ public class BuildEventStreamer implements EventHandler {
buildEvent(freedEvent);
}
- if (event instanceof BuildCompleteEvent
- || event instanceof TestingCompleteEvent
- || event instanceof NoBuildRequestFinishedEvent
- || event instanceof NoTestsFound) {
+ if (event instanceof BuildCompletingEvent) {
buildComplete();
}
diff --git a/src/main/java/com/google/devtools/build/lib/runtime/commands/NoTestsFound.java b/src/main/java/com/google/devtools/build/lib/runtime/commands/NoTestsFound.java
index d21ce069fb..8c2179032b 100644
--- a/src/main/java/com/google/devtools/build/lib/runtime/commands/NoTestsFound.java
+++ b/src/main/java/com/google/devtools/build/lib/runtime/commands/NoTestsFound.java
@@ -14,53 +14,13 @@
package com.google.devtools.build.lib.runtime.commands;
-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.BuildCompletingEvent;
import com.google.devtools.build.lib.util.ExitCode;
-import java.util.Collection;
/** This event is posted by the {@link TestCommand} if no tests were found. */
-public class NoTestsFound implements BuildEvent {
- private final ExitCode exitCode;
- private final long finishTimeMillis;
+public class NoTestsFound extends BuildCompletingEvent {
public NoTestsFound(ExitCode exitCode, long finishTimeMillis) {
- this.exitCode = exitCode;
- this.finishTimeMillis = finishTimeMillis;
- }
-
- public ExitCode getExitCode() {
- return exitCode;
- }
-
- @Override
- public BuildEventId getEventId() {
- return BuildEventId.buildFinished();
- }
-
- @Override
- public Collection<BuildEventId> getChildrenEvents() {
- return ImmutableList.of();
- }
-
- @Override
- public BuildEventStreamProtos.BuildEvent asStreamProto(BuildEventConverters converters) {
- BuildEventStreamProtos.BuildFinished.ExitCode protoExitCode =
- BuildEventStreamProtos.BuildFinished.ExitCode.newBuilder()
- .setName(exitCode.name())
- .setCode(exitCode.getNumericExitCode())
- .build();
-
- BuildEventStreamProtos.BuildFinished finished =
- BuildEventStreamProtos.BuildFinished.newBuilder()
- .setOverallSuccess(ExitCode.SUCCESS.equals(exitCode))
- .setExitCode(protoExitCode)
- .setFinishTimeMillis(finishTimeMillis)
- .build();
- return GenericBuildEvent.protoChaining(this).setFinished(finished).build();
+ super(exitCode, finishTimeMillis);
}
}