aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/skyframe
diff options
context:
space:
mode:
authorGravatar ulfjack <ulfjack@google.com>2017-07-17 14:46:02 +0200
committerGravatar Damien Martin-Guillerez <dmarting@google.com>2017-07-18 09:47:36 +0200
commit90ed84c0d9b48b7474b7cba3994561ecec9fe858 (patch)
tree7a602ea9291503c5a2cc05a4912067d783353428 /src/main/java/com/google/devtools/build/lib/skyframe
parent88518522a18df5788736be6151fc67992efe2aad (diff)
Remove ParseFailureListener in favor of posting to EventBus directly
We now have the ExtendedEventHandler, which is available in all the relevant code paths, so we just post the event directly. PiperOrigin-RevId: 162200923
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/skyframe')
-rw-r--r--src/main/java/com/google/devtools/build/lib/skyframe/LegacyLoadingPhaseRunner.java30
-rw-r--r--src/main/java/com/google/devtools/build/lib/skyframe/PrepareDepsOfPatternsFunction.java32
-rw-r--r--src/main/java/com/google/devtools/build/lib/skyframe/SkyframeTargetPatternEvaluator.java11
3 files changed, 17 insertions, 56 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/LegacyLoadingPhaseRunner.java b/src/main/java/com/google/devtools/build/lib/skyframe/LegacyLoadingPhaseRunner.java
index 1fd16b1989..c6d34b0c09 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/LegacyLoadingPhaseRunner.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/LegacyLoadingPhaseRunner.java
@@ -19,7 +19,6 @@ import com.google.common.collect.Sets;
import com.google.devtools.build.lib.cmdline.Label;
import com.google.devtools.build.lib.cmdline.ResolvedTargets;
import com.google.devtools.build.lib.cmdline.TargetParsingException;
-import com.google.devtools.build.lib.events.DelegatingEventHandler;
import com.google.devtools.build.lib.events.Event;
import com.google.devtools.build.lib.events.ExtendedEventHandler;
import com.google.devtools.build.lib.packages.NoSuchPackageException;
@@ -35,8 +34,6 @@ import com.google.devtools.build.lib.pkgcache.LoadingPhaseCompleteEvent;
import com.google.devtools.build.lib.pkgcache.LoadingPhaseRunner;
import com.google.devtools.build.lib.pkgcache.LoadingResult;
import com.google.devtools.build.lib.pkgcache.PackageManager;
-import com.google.devtools.build.lib.pkgcache.ParseFailureListener;
-import com.google.devtools.build.lib.pkgcache.ParsingFailedEvent;
import com.google.devtools.build.lib.pkgcache.TargetParsingCompleteEvent;
import com.google.devtools.build.lib.pkgcache.TargetPatternEvaluator;
import com.google.devtools.build.lib.pkgcache.TestFilter;
@@ -71,27 +68,6 @@ import javax.annotation.Nullable;
* <p>The Skyframe-based re-implementation of this class is in TargetPatternPhaseFunction.
*/
public final class LegacyLoadingPhaseRunner extends LoadingPhaseRunner {
-
- private static final class ParseFailureListenerImpl extends DelegatingEventHandler
- implements ParseFailureListener, ExtendedEventHandler {
- private final ExtendedEventHandler eventHandler;
-
- private ParseFailureListenerImpl(ExtendedEventHandler delegate) {
- super(delegate);
- this.eventHandler = delegate;
- }
-
- @Override
- public void parsingError(String targetPattern, String message) {
- eventHandler.post(new ParsingFailedEvent(targetPattern, message));
- }
-
- @Override
- public void post(ExtendedEventHandler.Postable obj) {
- eventHandler.post(obj);
- }
- }
-
private static final Logger LOG = Logger.getLogger(LoadingPhaseRunner.class.getName());
private final PackageManager packageManager;
@@ -128,12 +104,10 @@ public final class LegacyLoadingPhaseRunner extends LoadingPhaseRunner {
}
targetPatternEvaluator.updateOffset(relativeWorkingDirectory);
- ExtendedEventHandler parseFailureListener =
- new ParseFailureListenerImpl(eventHandler);
// Determine targets to build:
ResolvedTargets<Target> targets =
getTargetsToBuild(
- parseFailureListener, targetPatterns, options.compileOneDependency,
+ eventHandler, targetPatterns, options.compileOneDependency,
options.buildTagFilterList, options.buildManualTests, keepGoing);
ImmutableSet<Target> filteredTargets = targets.getFilteredTargets();
@@ -149,7 +123,7 @@ public final class LegacyLoadingPhaseRunner extends LoadingPhaseRunner {
if (determineTests || buildTestsOnly) {
// Parse the targets to get the tests.
ResolvedTargets<Target> testTargets =
- determineTests(parseFailureListener, targetPatterns, options, keepGoing);
+ determineTests(eventHandler, targetPatterns, options, keepGoing);
if (testTargets.getTargets().isEmpty() && !testTargets.getFilteredTargets().isEmpty()) {
eventHandler.handle(Event.warn("All specified test targets were excluded by filters"));
}
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/PrepareDepsOfPatternsFunction.java b/src/main/java/com/google/devtools/build/lib/skyframe/PrepareDepsOfPatternsFunction.java
index 60ec9caec1..2ae25ccd07 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/PrepareDepsOfPatternsFunction.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/PrepareDepsOfPatternsFunction.java
@@ -18,8 +18,8 @@ import com.google.common.collect.ImmutableList;
import com.google.common.collect.Iterables;
import com.google.devtools.build.lib.cmdline.TargetParsingException;
import com.google.devtools.build.lib.events.Event;
-import com.google.devtools.build.lib.events.EventHandler;
-import com.google.devtools.build.lib.pkgcache.ParseFailureListener;
+import com.google.devtools.build.lib.events.ExtendedEventHandler;
+import com.google.devtools.build.lib.pkgcache.ParsingFailedEvent;
import com.google.devtools.build.lib.skyframe.PrepareDepsOfPatternValue.PrepareDepsOfPatternSkyKeyOrException;
import com.google.devtools.build.lib.skyframe.PrepareDepsOfPatternsValue.TargetPatternSequence;
import com.google.devtools.build.lib.skyframe.TargetPatternValue.TargetPatternKey;
@@ -28,9 +28,7 @@ import com.google.devtools.build.skyframe.SkyFunction;
import com.google.devtools.build.skyframe.SkyKey;
import com.google.devtools.build.skyframe.SkyValue;
import com.google.devtools.build.skyframe.ValueOrException;
-
import java.util.Map;
-
import javax.annotation.Nullable;
/**
@@ -39,20 +37,18 @@ import javax.annotation.Nullable;
*/
public class PrepareDepsOfPatternsFunction implements SkyFunction {
- public static ImmutableList<SkyKey> getSkyKeys(SkyKey skyKey, EventHandler eventHandler) {
+ public static ImmutableList<SkyKey> getSkyKeys(SkyKey skyKey, ExtendedEventHandler eventHandler) {
TargetPatternSequence targetPatternSequence = (TargetPatternSequence) skyKey.argument();
Iterable<PrepareDepsOfPatternSkyKeyOrException> keysMaybe =
PrepareDepsOfPatternValue.keys(targetPatternSequence.getPatterns(),
targetPatternSequence.getOffset());
ImmutableList.Builder<SkyKey> skyKeyBuilder = ImmutableList.builder();
- boolean handlerIsParseFailureListener = eventHandler instanceof ParseFailureListener;
for (PrepareDepsOfPatternSkyKeyOrException skyKeyOrException : keysMaybe) {
try {
skyKeyBuilder.add(skyKeyOrException.getSkyKey());
} catch (TargetParsingException e) {
- handleTargetParsingException(eventHandler, handlerIsParseFailureListener,
- skyKeyOrException.getOriginalPattern(), e);
+ handleTargetParsingException(eventHandler, skyKeyOrException.getOriginalPattern(), e);
}
}
@@ -81,7 +77,7 @@ public class PrepareDepsOfPatternsFunction implements SkyFunction {
@Nullable
@Override
public SkyValue compute(SkyKey skyKey, Environment env) throws InterruptedException {
- EventHandler eventHandler = env.getListener();
+ ExtendedEventHandler eventHandler = env.getListener();
ImmutableList<SkyKey> skyKeys = getSkyKeys(skyKey, eventHandler);
Map<SkyKey, ValueOrException<TargetParsingException>> tokensByKey =
@@ -90,7 +86,6 @@ public class PrepareDepsOfPatternsFunction implements SkyFunction {
return null;
}
- boolean handlerIsParseFailureListener = eventHandler instanceof ParseFailureListener;
for (SkyKey key : skyKeys) {
try {
// The only exception type throwable by PrepareDepsOfPatternFunction is
@@ -99,28 +94,25 @@ public class PrepareDepsOfPatternsFunction implements SkyFunction {
Preconditions.checkNotNull(tokensByKey.get(key).get());
} catch (TargetParsingException e) {
// If a target pattern can't be evaluated, notify the user of the problem and keep going.
- handleTargetParsingException(eventHandler, handlerIsParseFailureListener, key, e);
+ handleTargetParsingException(eventHandler, key, e);
}
}
return new PrepareDepsOfPatternsValue(getTargetPatternKeys(skyKeys));
}
- private static void handleTargetParsingException(EventHandler eventHandler,
- boolean handlerIsParseFailureListener, SkyKey key, TargetParsingException e) {
+ private static void handleTargetParsingException(
+ ExtendedEventHandler eventHandler, SkyKey key, TargetParsingException e) {
TargetPatternKey patternKey = (TargetPatternKey) key.argument();
String rawPattern = patternKey.getPattern();
- handleTargetParsingException(eventHandler, handlerIsParseFailureListener, rawPattern, e);
+ handleTargetParsingException(eventHandler, rawPattern, e);
}
- private static void handleTargetParsingException(EventHandler eventHandler,
- boolean handlerIsParseFailureListener, String rawPattern, TargetParsingException e) {
+ private static void handleTargetParsingException(
+ ExtendedEventHandler eventHandler, String rawPattern, TargetParsingException e) {
String errorMessage = e.getMessage();
eventHandler.handle(Event.error("Skipping '" + rawPattern + "': " + errorMessage));
- if (handlerIsParseFailureListener) {
- ParseFailureListener parseListener = (ParseFailureListener) eventHandler;
- parseListener.parsingError(rawPattern, errorMessage);
- }
+ eventHandler.post(new ParsingFailedEvent(rawPattern, errorMessage));
}
@Nullable
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/SkyframeTargetPatternEvaluator.java b/src/main/java/com/google/devtools/build/lib/skyframe/SkyframeTargetPatternEvaluator.java
index af3450e765..dccc1eff74 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/SkyframeTargetPatternEvaluator.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/SkyframeTargetPatternEvaluator.java
@@ -24,7 +24,7 @@ import com.google.devtools.build.lib.events.ExtendedEventHandler;
import com.google.devtools.build.lib.packages.Target;
import com.google.devtools.build.lib.pkgcache.FilteringPolicies;
import com.google.devtools.build.lib.pkgcache.FilteringPolicy;
-import com.google.devtools.build.lib.pkgcache.ParseFailureListener;
+import com.google.devtools.build.lib.pkgcache.ParsingFailedEvent;
import com.google.devtools.build.lib.pkgcache.TargetPatternEvaluator;
import com.google.devtools.build.lib.skyframe.TargetPatternValue.TargetPatternSkyKeyOrException;
import com.google.devtools.build.lib.util.Preconditions;
@@ -115,9 +115,7 @@ final class SkyframeTargetPatternEvaluator implements TargetPatternEvaluator {
}
String pattern = skyKeyOrException.getOriginalPattern();
eventHandler.handle(Event.error("Skipping '" + pattern + "': " + e.getMessage()));
- if (eventHandler instanceof ParseFailureListener) {
- ((ParseFailureListener) eventHandler).parsingError(pattern, e.getMessage());
- }
+ eventHandler.post(new ParsingFailedEvent(pattern, e.getMessage()));
}
}
ImmutableList<SkyKey> skyKeys = builder.build();
@@ -188,10 +186,7 @@ final class SkyframeTargetPatternEvaluator implements TargetPatternEvaluator {
}
finalTargetSetEvaluator.setError();
- if (eventHandler instanceof ParseFailureListener) {
- ParseFailureListener parseListener = (ParseFailureListener) eventHandler;
- parseListener.parsingError(rawPattern, errorMessage);
- }
+ eventHandler.post(new ParsingFailedEvent(rawPattern, errorMessage));
}
}