aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java
diff options
context:
space:
mode:
authorGravatar Klaus Aehlig <aehlig@google.com>2017-07-11 12:54:40 +0200
committerGravatar László Csomor <laszlocsomor@google.com>2017-07-11 14:47:39 +0200
commita708a02680da349c85077acb6d8db21805342416 (patch)
tree4e740e29d18d5f4f547c3c424347959966fbddda /src/main/java
parent7c2279967a619d44848b5384096323fa7529ed08 (diff)
BuildEventWithConfiguration: represent configurations as BuildEvent
From a BEP point of view, the only interface of a configuration we care about is its BuildEvent structure. Represent it as such, so that we can move this class to the rest of the buildeventstream module. This is a prerequisite for ActionOwners refering to configurations in the BEP. Change-Id: I6d1c1bf2951aac91607e83cad664553cd6620df8 PiperOrigin-RevId: 161510049
Diffstat (limited to 'src/main/java')
-rw-r--r--src/main/java/com/google/devtools/build/lib/analysis/TargetCompleteEvent.java7
-rw-r--r--src/main/java/com/google/devtools/build/lib/analysis/TargetConfiguredEvent.java16
-rw-r--r--src/main/java/com/google/devtools/build/lib/bazel/rules/VisibilityErrorEvent.java7
-rw-r--r--src/main/java/com/google/devtools/build/lib/buildeventstream/BuildEventWithConfiguration.java (renamed from src/main/java/com/google/devtools/build/lib/analysis/config/BuildEventWithConfiguration.java)12
-rw-r--r--src/main/java/com/google/devtools/build/lib/runtime/BuildEventStreamer.java8
5 files changed, 30 insertions, 20 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/TargetCompleteEvent.java b/src/main/java/com/google/devtools/build/lib/analysis/TargetCompleteEvent.java
index fc1402573a..7e50b36ba0 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/TargetCompleteEvent.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/TargetCompleteEvent.java
@@ -21,13 +21,14 @@ import com.google.devtools.build.lib.actions.Artifact;
import com.google.devtools.build.lib.actions.EventReportingArtifacts;
import com.google.devtools.build.lib.analysis.TopLevelArtifactHelper.ArtifactsInOutputGroup;
import com.google.devtools.build.lib.analysis.config.BuildConfiguration;
-import com.google.devtools.build.lib.analysis.config.BuildEventWithConfiguration;
import com.google.devtools.build.lib.buildeventstream.ArtifactGroupNamer;
+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.File;
import com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.OutputGroup;
+import com.google.devtools.build.lib.buildeventstream.BuildEventWithConfiguration;
import com.google.devtools.build.lib.buildeventstream.BuildEventWithOrderConstraint;
import com.google.devtools.build.lib.buildeventstream.GenericBuildEvent;
import com.google.devtools.build.lib.causes.Cause;
@@ -207,12 +208,12 @@ public final class TargetCompleteEvent
}
@Override
- public Collection<BuildConfiguration> getConfigurations() {
+ public Collection<BuildEvent> getConfigurations() {
BuildConfiguration configuration = target.getConfiguration();
if (configuration != null) {
return ImmutableList.of(target.getConfiguration());
} else {
- return ImmutableList.<BuildConfiguration>of();
+ return ImmutableList.<BuildEvent>of();
}
}
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/TargetConfiguredEvent.java b/src/main/java/com/google/devtools/build/lib/analysis/TargetConfiguredEvent.java
index 2473991981..56ddc4dceb 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/TargetConfiguredEvent.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/TargetConfiguredEvent.java
@@ -15,11 +15,13 @@ package com.google.devtools.build.lib.analysis;
import com.google.common.collect.ImmutableList;
import com.google.devtools.build.lib.analysis.config.BuildConfiguration;
-import com.google.devtools.build.lib.analysis.config.BuildEventWithConfiguration;
+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.BuildEventWithConfiguration;
import com.google.devtools.build.lib.buildeventstream.GenericBuildEvent;
+import com.google.devtools.build.lib.buildeventstream.NullConfiguration;
import com.google.devtools.build.lib.cmdline.Label;
import java.util.Collection;
@@ -34,8 +36,16 @@ public class TargetConfiguredEvent implements BuildEventWithConfiguration {
}
@Override
- public Collection<BuildConfiguration> getConfigurations() {
- return configurations;
+ public Collection<BuildEvent> getConfigurations() {
+ ImmutableList.Builder<BuildEvent> builder = new ImmutableList.Builder<>();
+ for (BuildConfiguration config : configurations) {
+ if (config != null) {
+ builder.add(config);
+ } else {
+ builder.add(new NullConfiguration());
+ }
+ }
+ return builder.build();
}
@Override
diff --git a/src/main/java/com/google/devtools/build/lib/bazel/rules/VisibilityErrorEvent.java b/src/main/java/com/google/devtools/build/lib/bazel/rules/VisibilityErrorEvent.java
index 5842a8e186..afe4e34bc3 100644
--- a/src/main/java/com/google/devtools/build/lib/bazel/rules/VisibilityErrorEvent.java
+++ b/src/main/java/com/google/devtools/build/lib/bazel/rules/VisibilityErrorEvent.java
@@ -16,10 +16,11 @@ package com.google.devtools.build.lib.bazel.rules;
import com.google.common.collect.ImmutableList;
import com.google.devtools.build.lib.analysis.config.BuildConfiguration;
-import com.google.devtools.build.lib.analysis.config.BuildEventWithConfiguration;
+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.BuildEventWithConfiguration;
import com.google.devtools.build.lib.buildeventstream.GenericBuildEvent;
import com.google.devtools.build.lib.cmdline.Label;
import java.util.Collection;
@@ -55,7 +56,7 @@ public class VisibilityErrorEvent implements BuildEventWithConfiguration {
}
@Override
- public Collection<BuildConfiguration> getConfigurations() {
- return ImmutableList.of(configuration);
+ public Collection<BuildEvent> getConfigurations() {
+ return ImmutableList.<BuildEvent>of(configuration);
}
}
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/config/BuildEventWithConfiguration.java b/src/main/java/com/google/devtools/build/lib/buildeventstream/BuildEventWithConfiguration.java
index a4742c0101..4cd2b46daf 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/config/BuildEventWithConfiguration.java
+++ b/src/main/java/com/google/devtools/build/lib/buildeventstream/BuildEventWithConfiguration.java
@@ -12,16 +12,16 @@
// See the License for the specific language governing permissions and
// limitations under the License.
-package com.google.devtools.build.lib.analysis.config;
+package com.google.devtools.build.lib.buildeventstream;
-import com.google.devtools.build.lib.buildeventstream.BuildEvent;
import java.util.Collection;
-/** Interface for {@link BuildEvent}s that reference {@link BuildConfigration}s */
+/** Interface for {@link BuildEvent}s that reference build configurations */
public interface BuildEventWithConfiguration extends BuildEvent {
/**
- * The {@link BuildConfiguration}s the event mentions, and hence should be introduced in the
- * stream before this event.
+ * The configurations the event mentions, and hence should be introduced in the stream before this
+ * event; they are abstracted as {@link BuildEvent}, as for the build event stream the only thing
+ * we care is how they get presenteded in the protocol.
*/
- Collection<BuildConfiguration> getConfigurations();
+ Collection<BuildEvent> getConfigurations();
}
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 1d4e55b55e..fa2b152c91 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
@@ -32,8 +32,6 @@ 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.config.BuildConfiguration;
-import com.google.devtools.build.lib.analysis.config.BuildEventWithConfiguration;
import com.google.devtools.build.lib.buildeventstream.AbortedEvent;
import com.google.devtools.build.lib.buildeventstream.AnnounceBuildEventTransportsEvent;
import com.google.devtools.build.lib.buildeventstream.ArtifactGroupNamer;
@@ -43,6 +41,7 @@ import com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.Abo
import com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId.NamedSetOfFilesId;
import com.google.devtools.build.lib.buildeventstream.BuildEventTransport;
import com.google.devtools.build.lib.buildeventstream.BuildEventTransportClosedEvent;
+import com.google.devtools.build.lib.buildeventstream.BuildEventWithConfiguration;
import com.google.devtools.build.lib.buildeventstream.BuildEventWithOrderConstraint;
import com.google.devtools.build.lib.buildeventstream.LastBuildEvent;
import com.google.devtools.build.lib.buildeventstream.NullConfiguration;
@@ -351,7 +350,7 @@ public class BuildEventStreamer implements EventHandler {
maybeReportArtifactSet(new NestedSetView<Artifact>(set));
}
- private void maybeReportConfiguration(BuildConfiguration configuration) {
+ private void maybeReportConfiguration(BuildEvent configuration) {
BuildEvent event = configuration;
if (configuration == null) {
event = new NullConfiguration();
@@ -392,8 +391,7 @@ public class BuildEventStreamer implements EventHandler {
}
if (event instanceof BuildEventWithConfiguration) {
- for (BuildConfiguration configuration :
- ((BuildEventWithConfiguration) event).getConfigurations()) {
+ for (BuildEvent configuration : ((BuildEventWithConfiguration) event).getConfigurations()) {
maybeReportConfiguration(configuration);
}
}