diff options
author | Klaus Aehlig <aehlig@google.com> | 2017-07-11 12:54:40 +0200 |
---|---|---|
committer | László Csomor <laszlocsomor@google.com> | 2017-07-11 14:47:39 +0200 |
commit | a708a02680da349c85077acb6d8db21805342416 (patch) | |
tree | 4e740e29d18d5f4f547c3c424347959966fbddda /src/main/java/com/google/devtools/build | |
parent | 7c2279967a619d44848b5384096323fa7529ed08 (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/com/google/devtools/build')
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/analysis/TargetCompleteEvent.java | 7 | ||||
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/analysis/TargetConfiguredEvent.java | 16 | ||||
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/bazel/rules/VisibilityErrorEvent.java | 7 | ||||
-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.java | 8 |
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); } } |