diff options
author | dbabkin <dbabkin@google.com> | 2018-03-21 05:50:11 -0700 |
---|---|---|
committer | Copybara-Service <copybara-piper@google.com> | 2018-03-21 05:51:54 -0700 |
commit | 9f7c8985cc04a2f1e5417df9debe2ca54e986fcd (patch) | |
tree | 3fa288928e7f6888ff6a94d336d7d58957b1677d /src/main/java/com | |
parent | d116183a1152217c19c10dfe6d4e11e1337fecb2 (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/main/java/com')
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/query2/BlazeQueryEnvironment.java | 18 | ||||
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/query2/QueryEnvironmentFactory.java | 41 |
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, |