Remove BuildView.packageManager, which was only used for testing.
Now that we have an EventHandler everywhere, we can just use the bridge code
to call into the usual PackageManager.
--
MOS_MIGRATED_REVID=104098660
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/BuildView.java b/src/main/java/com/google/devtools/build/lib/analysis/BuildView.java
index 113cd18..14302ac 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/BuildView.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/BuildView.java
@@ -208,9 +208,6 @@
private final SkyframeExecutor skyframeExecutor;
private final SkyframeBuildView skyframeBuildView;
- // Same as skyframeExecutor.getPackageManager().
- private final LoadedPackageProvider packageManager;
-
private final ConfiguredRuleClassProvider ruleClassProvider;
/**
@@ -233,7 +230,6 @@
SkyframeExecutor skyframeExecutor,
CoverageReportActionFactory coverageReportActionFactory) {
this.directories = directories;
- this.packageManager = skyframeExecutor.getLoadedPackageProvider();
this.coverageReportActionFactory = coverageReportActionFactory;
this.ruleClassProvider = ruleClassProvider;
this.skyframeExecutor = Preconditions.checkNotNull(skyframeExecutor);
@@ -777,7 +773,7 @@
@VisibleForTesting
public Iterable<Dependency> getDirectPrerequisiteDependenciesForTesting(
- EventHandler eventHandler, ConfiguredTarget ct,
+ final EventHandler eventHandler, ConfiguredTarget ct,
@Nullable final LoadingCache<Label, Target> targetCache,
BuildConfigurationCollection configurations) throws InterruptedException {
if (!(ct.getTarget() instanceof Rule)) {
@@ -798,7 +794,8 @@
@Override
protected Target getTarget(Label label) throws NoSuchThingException {
if (targetCache == null) {
- return packageManager.getLoadedTarget(label);
+ return LoadedPackageProvider.Bridge.getLoadedTarget(
+ skyframeExecutor.getPackageManager(), eventHandler, label);
}
try {
@@ -843,7 +840,7 @@
}
private ListMultimap<Attribute, ConfiguredTarget> getPrerequisiteMapForTesting(
- EventHandler eventHandler, ConfiguredTarget target,
+ final EventHandler eventHandler, ConfiguredTarget target,
BuildConfigurationCollection configurations) throws InterruptedException {
DependencyResolver resolver = new DependencyResolver() {
@Override
@@ -858,7 +855,8 @@
@Override
protected Target getTarget(Label label) throws NoSuchThingException {
- return packageManager.getLoadedTarget(label);
+ return LoadedPackageProvider.Bridge.getLoadedTarget(
+ skyframeExecutor.getPackageManager(), eventHandler, label);
}
};
TargetAndConfiguration ctNode = new TargetAndConfiguration(target);
diff --git a/src/main/java/com/google/devtools/build/lib/pkgcache/LoadedPackageProvider.java b/src/main/java/com/google/devtools/build/lib/pkgcache/LoadedPackageProvider.java
index 9194466..25648ce 100644
--- a/src/main/java/com/google/devtools/build/lib/pkgcache/LoadedPackageProvider.java
+++ b/src/main/java/com/google/devtools/build/lib/pkgcache/LoadedPackageProvider.java
@@ -13,6 +13,7 @@
// limitations under the License.
package com.google.devtools.build.lib.pkgcache;
+import com.google.common.annotations.VisibleForTesting;
import com.google.devtools.build.lib.cmdline.Label;
import com.google.devtools.build.lib.concurrent.Uninterruptibles;
import com.google.devtools.build.lib.events.EventHandler;
@@ -53,7 +54,7 @@
}
@Override
- public Target getLoadedTarget(final Label label)
+ public Target getLoadedTarget(Label label)
throws NoSuchPackageException, NoSuchTargetException {
return getLoadedTarget(packageProvider, eventHandler, label);
}
@@ -62,6 +63,7 @@
* Uninterruptible method to convert a label into a target using a given package provider and
* event handler.
*/
+ @VisibleForTesting
public static Target getLoadedTarget(
final PackageProvider packageProvider, final EventHandler eventHandler, final Label label)
throws NoSuchPackageException, NoSuchTargetException {
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/SkyframeExecutor.java b/src/main/java/com/google/devtools/build/lib/skyframe/SkyframeExecutor.java
index d21c14f..e2cc19f 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/SkyframeExecutor.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/SkyframeExecutor.java
@@ -87,7 +87,6 @@
import com.google.devtools.build.lib.packages.RuleClassProvider;
import com.google.devtools.build.lib.packages.RuleVisibility;
import com.google.devtools.build.lib.packages.Target;
-import com.google.devtools.build.lib.pkgcache.LoadedPackageProvider;
import com.google.devtools.build.lib.pkgcache.PackageCacheOptions;
import com.google.devtools.build.lib.pkgcache.PackageManager;
import com.google.devtools.build.lib.pkgcache.PathPackageLocator;
@@ -188,7 +187,6 @@
private final AtomicInteger numPackagesLoaded = new AtomicInteger(0);
protected SkyframeBuildView skyframeBuildView;
- private final EventHandler errorEventListener;
private ActionLogBufferPathGenerator actionLogBufferPathGenerator;
protected BuildDriver buildDriver;
@@ -271,6 +269,7 @@
ImmutableMap<SkyFunctionName, SkyFunction> extraSkyFunctions,
ImmutableList<PrecomputedValue.Injected> extraPrecomputedValues,
boolean errorOnExternalFiles) {
+ Preconditions.checkNotNull(reporter);
// Strictly speaking, these arguments are not required for initialization, but all current
// callsites have them at hand, so we might as well set them during construction.
this.evaluatorSupplier = evaluatorSupplier;
@@ -282,7 +281,6 @@
new SkyframePackageLoader(), new SkyframeTransitivePackageLoader(),
new SkyframeTargetPatternEvaluator(this), syscalls, cyclesReporter, pkgLocator,
numPackagesLoaded, this);
- this.errorEventListener = Preconditions.checkNotNull(reporter);
this.resourceManager = ResourceManager.instance();
this.skyframeActionExecutor = new SkyframeActionExecutor(reporter, resourceManager, eventBus,
statusReporterRef);
@@ -1516,10 +1514,6 @@
return packageManager;
}
- public LoadedPackageProvider getLoadedPackageProvider() {
- return new LoadedPackageProvider.Bridge(packageManager, errorEventListener);
- }
-
class SkyframePackageLoader {
/**
* Looks up a particular package (mostly used after the loading phase, so packages should