From f0cc5b838b851d3f2872492ce5e1441738c29105 Mon Sep 17 00:00:00 2001 From: Nathan Harmata Date: Fri, 18 Mar 2016 14:56:28 +0000 Subject: Move AbstractBlazeQueryEnvironment to a factory class, and have BlazeModule optionally expose a custom factory implementation. -- MOS_MIGRATED_REVID=117546934 --- .../lib/query2/AbstractBlazeQueryEnvironment.java | 42 +-------------- .../build/lib/query2/QueryEnvironmentFactory.java | 62 ++++++++++++++++++++++ .../build/lib/rules/genquery/GenQuery.java | 13 +++-- .../devtools/build/lib/runtime/BlazeModule.java | 10 ++++ .../devtools/build/lib/runtime/BlazeRuntime.java | 27 +++++++++- .../build/lib/runtime/commands/QueryCommand.java | 12 ++++- 6 files changed, 118 insertions(+), 48 deletions(-) create mode 100644 src/main/java/com/google/devtools/build/lib/query2/QueryEnvironmentFactory.java diff --git a/src/main/java/com/google/devtools/build/lib/query2/AbstractBlazeQueryEnvironment.java b/src/main/java/com/google/devtools/build/lib/query2/AbstractBlazeQueryEnvironment.java index 27a0bde0ab..19430a4736 100644 --- a/src/main/java/com/google/devtools/build/lib/query2/AbstractBlazeQueryEnvironment.java +++ b/src/main/java/com/google/devtools/build/lib/query2/AbstractBlazeQueryEnvironment.java @@ -23,12 +23,7 @@ import com.google.devtools.build.lib.events.ErrorSensingEventHandler; import com.google.devtools.build.lib.events.Event; import com.google.devtools.build.lib.events.EventHandler; import com.google.devtools.build.lib.packages.DependencyFilter; -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.TransitivePackageLoader; import com.google.devtools.build.lib.profiler.AutoProfiler; import com.google.devtools.build.lib.query2.engine.Callback; import com.google.devtools.build.lib.query2.engine.QueryEnvironment; @@ -37,7 +32,6 @@ import com.google.devtools.build.lib.query2.engine.QueryException; import com.google.devtools.build.lib.query2.engine.QueryExpression; import com.google.devtools.build.lib.query2.engine.QueryUtil.AggregateAllCallback; import com.google.devtools.build.lib.util.Preconditions; -import com.google.devtools.build.skyframe.WalkableGraph.WalkableGraphFactory; import java.util.Collection; import java.util.HashMap; @@ -48,8 +42,6 @@ import java.util.Set; import java.util.concurrent.atomic.AtomicBoolean; import java.util.logging.Logger; -import javax.annotation.Nullable; - /** * {@link QueryEnvironment} that can evaluate queries to produce a result, and implements as much * of QueryEnvironment as possible while remaining mostly agnostic as to the objects being stored. @@ -66,7 +58,7 @@ public abstract class AbstractBlazeQueryEnvironment implements QueryEnvironme private final Set settings; private final List extraFunctions; - private static final Logger LOG = Logger.getLogger(AbstractBlazeQueryEnvironment.class.getName()); + private static final Logger LOG = Logger.getLogger(AbstractBlazeQueryEnvironment.class.getName()); protected AbstractBlazeQueryEnvironment(boolean keepGoing, boolean strictScope, @@ -98,38 +90,6 @@ public abstract class AbstractBlazeQueryEnvironment implements QueryEnvironme return specifiedFilter; } - public static AbstractBlazeQueryEnvironment newQueryEnvironment( - TransitivePackageLoader transitivePackageLoader, WalkableGraphFactory graphFactory, - PackageProvider packageProvider, - TargetPatternEvaluator targetPatternEvaluator, boolean keepGoing, boolean orderedResults, - List universeScope, int loadingPhaseThreads, - EventHandler eventHandler, Set settings, Iterable functions, - @Nullable PathPackageLocator packagePath) { - return newQueryEnvironment(transitivePackageLoader, graphFactory, packageProvider, - targetPatternEvaluator, keepGoing, /*strictScope=*/true, orderedResults, - universeScope, loadingPhaseThreads, Rule.ALL_LABELS, eventHandler, settings, functions, - packagePath); - } - - public static AbstractBlazeQueryEnvironment newQueryEnvironment( - TransitivePackageLoader transitivePackageLoader, WalkableGraphFactory graphFactory, - PackageProvider packageProvider, - TargetPatternEvaluator targetPatternEvaluator, boolean keepGoing, boolean strictScope, - boolean orderedResults, List universeScope, int loadingPhaseThreads, - Predicate