Move QueryFunctions and InfoItems to ServerBuilder.

Initialize these from BlazeModule.serverInit instead of on-the-fly.

--
MOS_MIGRATED_REVID=131564738
diff --git a/src/main/java/com/google/devtools/build/lib/runtime/BlazeRuntime.java b/src/main/java/com/google/devtools/build/lib/runtime/BlazeRuntime.java
index 8087596..d8a07d2 100644
--- a/src/main/java/com/google/devtools/build/lib/runtime/BlazeRuntime.java
+++ b/src/main/java/com/google/devtools/build/lib/runtime/BlazeRuntime.java
@@ -17,6 +17,7 @@
 import com.google.common.annotations.VisibleForTesting;
 import com.google.common.base.Function;
 import com.google.common.collect.ImmutableList;
+import com.google.common.collect.ImmutableMap;
 import com.google.common.collect.Lists;
 import com.google.common.eventbus.SubscriberExceptionContext;
 import com.google.common.eventbus.SubscriberExceptionHandler;
@@ -43,9 +44,11 @@
 import com.google.devtools.build.lib.profiler.ProfilerTask;
 import com.google.devtools.build.lib.query2.AbstractBlazeQueryEnvironment;
 import com.google.devtools.build.lib.query2.QueryEnvironmentFactory;
+import com.google.devtools.build.lib.query2.engine.QueryEnvironment.QueryFunction;
 import com.google.devtools.build.lib.query2.output.OutputFormatter;
 import com.google.devtools.build.lib.rules.test.CoverageReportActionFactory;
 import com.google.devtools.build.lib.runtime.BlazeCommandDispatcher.LockingMode;
+import com.google.devtools.build.lib.runtime.commands.InfoItem;
 import com.google.devtools.build.lib.runtime.proto.InvocationPolicyOuterClass.InvocationPolicy;
 import com.google.devtools.build.lib.server.AfUnixServer;
 import com.google.devtools.build.lib.server.RPCServer;
@@ -121,6 +124,11 @@
   private final PackageFactory packageFactory;
   private final ConfigurationFactory configurationFactory;
   private final ConfiguredRuleClassProvider ruleClassProvider;
+  // For bazel info.
+  private final ImmutableMap<String, InfoItem> infoItems;
+  // For bazel query.
+  private final QueryEnvironmentFactory queryEnvironmentFactory;
+  private final ImmutableList<QueryFunction> queryFunctions;
 
   private final AtomicInteger storedExitCode = new AtomicInteger();
 
@@ -131,7 +139,6 @@
   @Nullable
   private final InvocationPolicy invocationPolicy;
   private final String defaultsPackageContent;
-  private final QueryEnvironmentFactory queryEnvironmentFactory;
   private final SubscriberExceptionHandler eventBusExceptionHandler;
   private final String productName;
 
@@ -140,12 +147,18 @@
 
   private BlazeRuntime(
       QueryEnvironmentFactory queryEnvironmentFactory,
-      PackageFactory pkgFactory, ConfiguredRuleClassProvider ruleClassProvider,
-      ConfigurationFactory configurationFactory, Clock clock,
-      OptionsProvider startupOptionsProvider, Iterable<BlazeModule> blazeModules,
+      ImmutableList<QueryFunction> queryFunctions,
+      PackageFactory pkgFactory,
+      ConfiguredRuleClassProvider ruleClassProvider,
+      ConfigurationFactory configurationFactory,
+      ImmutableMap<String, InfoItem> infoItems,
+      Clock clock,
+      OptionsProvider startupOptionsProvider,
+      Iterable<BlazeModule> blazeModules,
       SubscriberExceptionHandler eventBusExceptionHandler,
       ProjectFile.Provider projectFileProvider,
-      InvocationPolicy invocationPolicy, Iterable<BlazeCommand> commands,
+      InvocationPolicy invocationPolicy,
+      Iterable<BlazeCommand> commands,
       String productName) {
     // Server state
     this.blazeModules = blazeModules;
@@ -157,9 +170,11 @@
 
     this.ruleClassProvider = ruleClassProvider;
     this.configurationFactory = configurationFactory;
+    this.infoItems = infoItems;
     this.clock = clock;
     this.startupOptionsProvider = startupOptionsProvider;
     this.queryEnvironmentFactory = queryEnvironmentFactory;
+    this.queryFunctions = queryFunctions;
     this.eventBusExceptionHandler = eventBusExceptionHandler;
 
     this.defaultsPackageContent =
@@ -280,6 +295,10 @@
     return queryEnvironmentFactory;
   }
 
+  public ImmutableList<QueryFunction> getQueryFunctions() {
+    return queryFunctions;
+  }
+
   /**
    * Returns the package factory.
    */
@@ -304,6 +323,10 @@
     return ruleClassProvider;
   }
 
+  public ImmutableMap<String, InfoItem> getInfoItems() {
+    return infoItems;
+  }
+
   public Iterable<BlazeModule> getBlazeModules() {
     return blazeModules;
   }
@@ -1100,9 +1123,11 @@
 
       return new BlazeRuntime(
           serverBuilder.getQueryEnvironmentFactory(),
+          serverBuilder.getQueryFunctions(),
           packageFactory,
           ruleClassProvider,
           configurationFactory,
+          serverBuilder.getInfoItems(),
           clock,
           startupOptionsProvider,
           ImmutableList.copyOf(blazeModules),