diff options
author | ulfjack <ulfjack@google.com> | 2018-06-12 04:56:24 -0700 |
---|---|---|
committer | Copybara-Service <copybara-piper@google.com> | 2018-06-12 04:57:48 -0700 |
commit | ede315264b2191baf76d4cb76bbcf5db85da2630 (patch) | |
tree | fa8c1c7435d3893f014e7c93cbfac9ed815faf49 /src/main/java/com/google/devtools/build/lib/query2 | |
parent | 6abc7497941dd81c27674d6636090867ea13101f (diff) |
Split TargetPatternEvaluator into two interfaces
- the TargetPatternPreloader is still used for query in all its forms
- the remaining TargetPatternEvaluator part is no longer used except in tests
- also make both implementations stateless and pass the offset to the methods
instead; note that they both modify the underlying skyframe graph, so there
are side effects to the calls even if there's no direct state anymore
The intent is to migrate the relevant tests to LoadingPhaseRunnerTest (which
could also now be renamed since it's not doing a loading phase), and then
delete the TargetPatternEvaluator interface.
This depends on the previous commit that removed the last direct use of TPE
from an internal command.
PiperOrigin-RevId: 200198067
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/query2')
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/query2/BlazeQueryEnvironment.java | 14 | ||||
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/query2/QueryEnvironmentFactory.java | 11 |
2 files changed, 16 insertions, 9 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 68ab117f37..62cc674d31 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 @@ -35,7 +35,7 @@ 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.TargetEdgeObserver; -import com.google.devtools.build.lib.pkgcache.TargetPatternEvaluator; +import com.google.devtools.build.lib.pkgcache.TargetPatternPreloader; 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; @@ -71,7 +71,8 @@ import java.util.Set; public class BlazeQueryEnvironment extends AbstractBlazeQueryEnvironment<Target> { private static final int MAX_DEPTH_FULL_SCAN_LIMIT = 20; private final Map<String, Set<Target>> resolvedTargetPatterns = new HashMap<>(); - private final TargetPatternEvaluator targetPatternEvaluator; + private final TargetPatternPreloader targetPatternPreloader; + private final PathFragment relativeWorkingDirectory; private final TransitivePackageLoader transitivePackageLoader; private final TargetProvider targetProvider; private final CachingPackageLocator cachingPackageLocator; @@ -98,7 +99,8 @@ public class BlazeQueryEnvironment extends AbstractBlazeQueryEnvironment<Target> TransitivePackageLoader transitivePackageLoader, TargetProvider targetProvider, CachingPackageLocator cachingPackageLocator, - TargetPatternEvaluator targetPatternEvaluator, + TargetPatternPreloader targetPatternPreloader, + PathFragment relativeWorkingDirectory, boolean keepGoing, boolean strictScope, int loadingPhaseThreads, @@ -107,7 +109,8 @@ public class BlazeQueryEnvironment extends AbstractBlazeQueryEnvironment<Target> Set<Setting> settings, Iterable<QueryFunction> extraFunctions) { super(keepGoing, strictScope, labelFilter, eventHandler, settings, extraFunctions); - this.targetPatternEvaluator = targetPatternEvaluator; + this.targetPatternPreloader = targetPatternPreloader; + this.relativeWorkingDirectory = relativeWorkingDirectory; this.transitivePackageLoader = transitivePackageLoader; this.targetProvider = targetProvider; this.cachingPackageLocator = cachingPackageLocator; @@ -441,7 +444,8 @@ public class BlazeQueryEnvironment extends AbstractBlazeQueryEnvironment<Target> // being called from within a SkyFunction. resolvedTargetPatterns.putAll( Maps.transformValues( - targetPatternEvaluator.preloadTargetPatterns(eventHandler, patterns, keepGoing), + targetPatternPreloader.preloadTargetPatterns( + eventHandler, relativeWorkingDirectory, patterns, keepGoing), ResolvedTargets::getTargets)); } } 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 3c02da6fe8..e7cc8820d4 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 @@ -21,11 +21,12 @@ 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.PathPackageLocator; -import com.google.devtools.build.lib.pkgcache.TargetPatternEvaluator; +import com.google.devtools.build.lib.pkgcache.TargetPatternPreloader; 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; +import com.google.devtools.build.lib.vfs.PathFragment; import com.google.devtools.build.skyframe.WalkableGraph.WalkableGraphFactory; import java.util.List; import java.util.Set; @@ -40,7 +41,8 @@ public class QueryEnvironmentFactory { WalkableGraphFactory graphFactory, TargetProvider targetProvider, CachingPackageLocator cachingPackageLocator, - TargetPatternEvaluator targetPatternEvaluator, + TargetPatternPreloader targetPatternPreloader, + PathFragment relativeWorkingDirectory, boolean keepGoing, boolean strictScope, boolean orderedResults, @@ -60,7 +62,7 @@ public class QueryEnvironmentFactory { eventHandler, settings, functions, - targetPatternEvaluator.getOffset(), + relativeWorkingDirectory.getPathString(), graphFactory, universeScope, packagePath, @@ -70,7 +72,8 @@ public class QueryEnvironmentFactory { transitivePackageLoader, targetProvider, cachingPackageLocator, - targetPatternEvaluator, + targetPatternPreloader, + relativeWorkingDirectory, keepGoing, strictScope, loadingPhaseThreads, |