aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/skyframe
diff options
context:
space:
mode:
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));
}
}