aboutsummaryrefslogtreecommitdiffhomepage
path: root/src
diff options
context:
space:
mode:
authorGravatar dbabkin <dbabkin@google.com>2018-03-21 05:50:11 -0700
committerGravatar Copybara-Service <copybara-piper@google.com>2018-03-21 05:51:54 -0700
commit9f7c8985cc04a2f1e5417df9debe2ca54e986fcd (patch)
tree3fa288928e7f6888ff6a94d336d7d58957b1677d /src
parentd116183a1152217c19c10dfe6d4e11e1337fecb2 (diff)
Split PackageProvider to TargetProvider and CachingPackageLocator
No need to pass instance of PackageProvider there as two more general interfaces required separately. RELNOTES:none PiperOrigin-RevId: 189895042
Diffstat (limited to 'src')
-rw-r--r--src/main/java/com/google/devtools/build/lib/query2/BlazeQueryEnvironment.java18
-rw-r--r--src/main/java/com/google/devtools/build/lib/query2/QueryEnvironmentFactory.java41
2 files changed, 51 insertions, 8 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/query2/BlazeQueryEnvironment.java b/src/main/java/com/google/devtools/build/lib/query2/BlazeQueryEnvironment.java
index 421c5b57eb..b7c0a1d915 100644
--- a/src/main/java/com/google/devtools/build/lib/query2/BlazeQueryEnvironment.java
+++ b/src/main/java/com/google/devtools/build/lib/query2/BlazeQueryEnvironment.java
@@ -28,14 +28,15 @@ import com.google.devtools.build.lib.events.ExtendedEventHandler;
import com.google.devtools.build.lib.graph.Digraph;
import com.google.devtools.build.lib.graph.Node;
import com.google.devtools.build.lib.packages.Attribute;
+import com.google.devtools.build.lib.packages.CachingPackageLocator;
import com.google.devtools.build.lib.packages.NoSuchThingException;
import com.google.devtools.build.lib.packages.OutputFile;
import com.google.devtools.build.lib.packages.Package;
import com.google.devtools.build.lib.packages.Rule;
import com.google.devtools.build.lib.packages.Target;
-import com.google.devtools.build.lib.pkgcache.PackageProvider;
import com.google.devtools.build.lib.pkgcache.TargetEdgeObserver;
import com.google.devtools.build.lib.pkgcache.TargetPatternEvaluator;
+import com.google.devtools.build.lib.pkgcache.TargetProvider;
import com.google.devtools.build.lib.pkgcache.TransitivePackageLoader;
import com.google.devtools.build.lib.query2.engine.Callback;
import com.google.devtools.build.lib.query2.engine.DigraphQueryEvalResult;
@@ -72,7 +73,8 @@ public class BlazeQueryEnvironment extends AbstractBlazeQueryEnvironment<Target>
private final Map<String, Set<Target>> resolvedTargetPatterns = new HashMap<>();
private final TargetPatternEvaluator targetPatternEvaluator;
private final TransitivePackageLoader transitivePackageLoader;
- private final PackageProvider packageProvider;
+ private final TargetProvider targetProvider;
+ private final CachingPackageLocator cachingPackageLocator;
private final Digraph<Target> graph = new Digraph<>();
private final ErrorPrintingTargetEdgeErrorObserver errorObserver;
private final LabelVisitor labelVisitor;
@@ -94,7 +96,8 @@ public class BlazeQueryEnvironment extends AbstractBlazeQueryEnvironment<Target>
*/
BlazeQueryEnvironment(
TransitivePackageLoader transitivePackageLoader,
- PackageProvider packageProvider,
+ TargetProvider targetProvider,
+ CachingPackageLocator cachingPackageLocator,
TargetPatternEvaluator targetPatternEvaluator,
boolean keepGoing,
boolean strictScope,
@@ -106,10 +109,11 @@ public class BlazeQueryEnvironment extends AbstractBlazeQueryEnvironment<Target>
super(keepGoing, strictScope, labelFilter, eventHandler, settings, extraFunctions);
this.targetPatternEvaluator = targetPatternEvaluator;
this.transitivePackageLoader = transitivePackageLoader;
- this.packageProvider = packageProvider;
+ this.targetProvider = targetProvider;
+ this.cachingPackageLocator = cachingPackageLocator;
this.errorObserver = new ErrorPrintingTargetEdgeErrorObserver(this.eventHandler);
this.loadingPhaseThreads = loadingPhaseThreads;
- this.labelVisitor = new LabelVisitor(packageProvider, dependencyFilter);
+ this.labelVisitor = new LabelVisitor(targetProvider, dependencyFilter);
}
@Override
@@ -368,7 +372,7 @@ public class BlazeQueryEnvironment extends AbstractBlazeQueryEnvironment<Target>
private Target getTargetOrThrow(Label label)
throws NoSuchThingException, SkyframeRestartQueryException, InterruptedException {
- Target target = packageProvider.getTarget(eventHandler, label);
+ Target target = targetProvider.getTarget(eventHandler, label);
if (target == null) {
throw new SkyframeRestartQueryException();
}
@@ -416,7 +420,7 @@ public class BlazeQueryEnvironment extends AbstractBlazeQueryEnvironment<Target>
// Also add the BUILD file of the subinclude.
if (buildFiles) {
Path buildFileForSubinclude =
- packageProvider.getBuildFileForPackage(
+ cachingPackageLocator.getBuildFileForPackage(
subincludeTarget.getLabel().getLabel().getPackageIdentifier());
if (buildFileForSubinclude != null) {
Label buildFileLabel =
diff --git a/src/main/java/com/google/devtools/build/lib/query2/QueryEnvironmentFactory.java b/src/main/java/com/google/devtools/build/lib/query2/QueryEnvironmentFactory.java
index da08aa2798..1790528b38 100644
--- a/src/main/java/com/google/devtools/build/lib/query2/QueryEnvironmentFactory.java
+++ b/src/main/java/com/google/devtools/build/lib/query2/QueryEnvironmentFactory.java
@@ -17,11 +17,13 @@ import com.google.common.base.Preconditions;
import com.google.common.base.Predicate;
import com.google.devtools.build.lib.cmdline.Label;
import com.google.devtools.build.lib.events.ExtendedEventHandler;
+import com.google.devtools.build.lib.packages.CachingPackageLocator;
import com.google.devtools.build.lib.packages.Rule;
import com.google.devtools.build.lib.packages.Target;
import com.google.devtools.build.lib.pkgcache.PackageProvider;
import com.google.devtools.build.lib.pkgcache.PathPackageLocator;
import com.google.devtools.build.lib.pkgcache.TargetPatternEvaluator;
+import com.google.devtools.build.lib.pkgcache.TargetProvider;
import com.google.devtools.build.lib.pkgcache.TransitivePackageLoader;
import com.google.devtools.build.lib.query2.engine.QueryEnvironment.QueryFunction;
import com.google.devtools.build.lib.query2.engine.QueryEnvironment.Setting;
@@ -49,6 +51,42 @@ public class QueryEnvironmentFactory {
Iterable<QueryFunction> functions,
@Nullable PathPackageLocator packagePath,
boolean blockUniverseEvaluationErrors) {
+ return create(
+ transitivePackageLoader,
+ graphFactory,
+ packageProvider,
+ packageProvider,
+ targetPatternEvaluator,
+ keepGoing,
+ strictScope,
+ orderedResults,
+ universeScope,
+ loadingPhaseThreads,
+ labelFilter,
+ eventHandler,
+ settings,
+ functions,
+ packagePath,
+ blockUniverseEvaluationErrors);
+ }
+
+ public AbstractBlazeQueryEnvironment<Target> create(
+ TransitivePackageLoader transitivePackageLoader,
+ WalkableGraphFactory graphFactory,
+ TargetProvider targetProvider,
+ CachingPackageLocator cachingPackageLocator,
+ TargetPatternEvaluator targetPatternEvaluator,
+ boolean keepGoing,
+ boolean strictScope,
+ boolean orderedResults,
+ List<String> universeScope,
+ int loadingPhaseThreads,
+ Predicate<Label> labelFilter,
+ ExtendedEventHandler eventHandler,
+ Set<Setting> settings,
+ Iterable<QueryFunction> functions,
+ @Nullable PathPackageLocator packagePath,
+ boolean blockUniverseEvaluationErrors) {
Preconditions.checkNotNull(universeScope);
if (canUseSkyQuery(orderedResults, universeScope, packagePath, strictScope, labelFilter)) {
return new SkyQueryEnvironment(
@@ -65,7 +103,8 @@ public class QueryEnvironmentFactory {
} else {
return new BlazeQueryEnvironment(
transitivePackageLoader,
- packageProvider,
+ targetProvider,
+ cachingPackageLocator,
targetPatternEvaluator,
keepGoing,
strictScope,