diff options
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/pkgcache')
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/pkgcache/LegacyLoadingPhaseRunner.java | 10 | ||||
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/pkgcache/TargetParsingCompleteEvent.java | 61 |
2 files changed, 57 insertions, 14 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/pkgcache/LegacyLoadingPhaseRunner.java b/src/main/java/com/google/devtools/build/lib/pkgcache/LegacyLoadingPhaseRunner.java index 6d7fc3f251..388e4b84f8 100644 --- a/src/main/java/com/google/devtools/build/lib/pkgcache/LegacyLoadingPhaseRunner.java +++ b/src/main/java/com/google/devtools/build/lib/pkgcache/LegacyLoadingPhaseRunner.java @@ -174,9 +174,13 @@ public final class LegacyLoadingPhaseRunner extends LoadingPhaseRunner { } } - eventBus.post(new TargetParsingCompleteEvent(targets.getTargets(), - filteredTargets, testFilteredTargets, - timer.stop().elapsed(TimeUnit.MILLISECONDS))); + eventBus.post( + new TargetParsingCompleteEvent( + targets.getTargets(), + filteredTargets, + testFilteredTargets, + timer.stop().elapsed(TimeUnit.MILLISECONDS), + targetPatterns)); if (targets.hasError()) { eventHandler.handle(Event.warn("Target pattern parsing failed. Continuing anyway")); diff --git a/src/main/java/com/google/devtools/build/lib/pkgcache/TargetParsingCompleteEvent.java b/src/main/java/com/google/devtools/build/lib/pkgcache/TargetParsingCompleteEvent.java index 56aff59aee..8e0022a46a 100644 --- a/src/main/java/com/google/devtools/build/lib/pkgcache/TargetParsingCompleteEvent.java +++ b/src/main/java/com/google/devtools/build/lib/pkgcache/TargetParsingCompleteEvent.java @@ -15,18 +15,23 @@ package com.google.devtools.build.lib.pkgcache; import com.google.common.annotations.VisibleForTesting; import com.google.common.base.Function; +import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableSet; import com.google.common.collect.Iterables; +import com.google.devtools.build.lib.buildeventstream.BuildEvent; +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.cmdline.Label; import com.google.devtools.build.lib.packages.Target; - +import com.google.devtools.build.lib.packages.TargetUtils; import java.util.Collection; +import java.util.List; -/** - * This event is fired just after target pattern evaluation is completed. - */ -public class TargetParsingCompleteEvent { +/** This event is fired just after target pattern evaluation is completed. */ +public class TargetParsingCompleteEvent implements BuildEvent { + private final ImmutableList<String> originalTargetPattern; private final ImmutableSet<Target> targets; private final ImmutableSet<Target> filteredTargets; private final ImmutableSet<Target> testFilteredTargets; @@ -34,21 +39,30 @@ public class TargetParsingCompleteEvent { /** * Construct the event. - * @param targets The targets that were parsed from the - * command-line pattern. + * + * @param targets The targets that were parsed from the command-line pattern. */ - public TargetParsingCompleteEvent(Collection<Target> targets, - Collection<Target> filteredTargets, Collection<Target> testFilteredTargets, - long timeInMs) { + public TargetParsingCompleteEvent( + Collection<Target> targets, + Collection<Target> filteredTargets, + Collection<Target> testFilteredTargets, + long timeInMs, + List<String> originalTargetPattern) { this.timeInMs = timeInMs; this.targets = ImmutableSet.copyOf(targets); this.filteredTargets = ImmutableSet.copyOf(filteredTargets); this.testFilteredTargets = ImmutableSet.copyOf(testFilteredTargets); + this.originalTargetPattern = ImmutableList.copyOf(originalTargetPattern); } @VisibleForTesting public TargetParsingCompleteEvent(Collection<Target> targets) { - this(targets, ImmutableSet.<Target>of(), ImmutableSet.<Target>of(), 0); + this( + targets, + ImmutableSet.<Target>of(), + ImmutableSet.<Target>of(), + 0, + ImmutableList.<String>of()); } /** @@ -84,4 +98,29 @@ public class TargetParsingCompleteEvent { public long getTimeInMs() { return timeInMs; } + + @Override + public BuildEventId getEventId() { + return BuildEventId.targetPatternExpanded(originalTargetPattern); + } + + @Override + public Collection<BuildEventId> getChildrenEvents() { + ImmutableList.Builder childrenBuilder = ImmutableList.builder(); + for (Target target : targets) { + // Test suits won't produce a target-complete event, so do not anounce their + // completion as children. + if (!TargetUtils.isTestSuiteRule(target)) { + childrenBuilder.add(BuildEventId.targetCompleted(target.getLabel())); + } + } + return childrenBuilder.build(); + } + + @Override + public BuildEventStreamProtos.BuildEvent asStreamProto() { + return GenericBuildEvent.protoChaining(this) + .setExpanded(BuildEventStreamProtos.PatternExpanded.newBuilder().build()) + .build(); + } } |