Remove ConfigurationFactory as part of the static configuration cleanup.
PiperOrigin-RevId: 165478994
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/ConfigurationCollectionFactory.java b/src/main/java/com/google/devtools/build/lib/analysis/ConfigurationCollectionFactory.java
index 7915bce..8d93d05 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/ConfigurationCollectionFactory.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/ConfigurationCollectionFactory.java
@@ -16,7 +16,6 @@
import com.google.common.cache.Cache;
import com.google.devtools.build.lib.analysis.config.BuildConfiguration;
import com.google.devtools.build.lib.analysis.config.BuildOptions;
-import com.google.devtools.build.lib.analysis.config.ConfigurationFactory;
import com.google.devtools.build.lib.analysis.config.InvalidConfigurationException;
import com.google.devtools.build.lib.analysis.config.PackageProviderForConfigurations;
import com.google.devtools.build.lib.events.EventHandler;
@@ -33,7 +32,6 @@
* configurations during a build should be accessible from this top-level configuration via
* configuration transitions.
*
- * @param configurationFactory the configuration factory
* @param cache a cache for BuildConfigurations
* @param loadedPackageProvider the package provider
* @param buildOptions top-level build options representing the command-line
@@ -44,7 +42,6 @@
*/
@Nullable
BuildConfiguration createConfigurations(
- ConfigurationFactory configurationFactory,
Cache<String, BuildConfiguration> cache,
PackageProviderForConfigurations loadedPackageProvider,
BuildOptions buildOptions,
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/config/BuildConfiguration.java b/src/main/java/com/google/devtools/build/lib/analysis/config/BuildConfiguration.java
index d06bb63..db9649d 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/config/BuildConfiguration.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/config/BuildConfiguration.java
@@ -454,8 +454,7 @@
* even if they don't affect the value of the BuildConfiguration instances.)
*
* <p>IMPORTANT: when adding new options, be sure to consider whether those
- * values should be propagated to the host configuration or not (see
- * {@link ConfigurationFactory#getConfiguration}.
+ * values should be propagated to the host configuration or not.
*
* <p>ALSO IMPORTANT: all option types MUST define a toString method that
* gives identical results for semantically identical option values. The
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/config/ConfigurationFactory.java b/src/main/java/com/google/devtools/build/lib/analysis/config/ConfigurationFactory.java
deleted file mode 100644
index 0080786..0000000
--- a/src/main/java/com/google/devtools/build/lib/analysis/config/ConfigurationFactory.java
+++ /dev/null
@@ -1,121 +0,0 @@
-// Copyright 2014 The Bazel Authors. All rights reserved.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-package com.google.devtools.build.lib.analysis.config;
-
-import com.google.common.cache.Cache;
-import com.google.common.collect.ImmutableList;
-import com.google.devtools.build.lib.analysis.BlazeDirectories;
-import com.google.devtools.build.lib.analysis.ConfigurationCollectionFactory;
-import com.google.devtools.build.lib.analysis.config.BuildConfiguration.Fragment;
-import com.google.devtools.build.lib.concurrent.ThreadSafety.ThreadCompatible;
-import com.google.devtools.build.lib.events.EventHandler;
-import com.google.devtools.build.lib.util.Preconditions;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import javax.annotation.Nullable;
-
-/**
- * A factory class for {@link BuildConfiguration} instances. This is unfortunately more complex,
- * and should be simplified in the future, if
- * possible. Right now, creating a {@link BuildConfiguration} instance involves
- * creating the instance itself and the related configurations; the main method
- * is {@link #createConfigurations}.
- *
- * <p>Avoid calling into this class, and instead use the skyframe infrastructure to obtain
- * configuration instances.
- *
- * <p>Blaze currently relies on the fact that all {@link BuildConfiguration}
- * instances used in a build can be constructed ahead of time by this class.
- */
-@ThreadCompatible // safe as long as separate instances are used
-public final class ConfigurationFactory {
- private final List<ConfigurationFragmentFactory> configurationFragmentFactories;
- private final ConfigurationCollectionFactory configurationCollectionFactory;
-
- public ConfigurationFactory(
- ConfigurationCollectionFactory configurationCollectionFactory,
- ConfigurationFragmentFactory... fragmentFactories) {
- this(configurationCollectionFactory, ImmutableList.copyOf(fragmentFactories));
- }
-
- public ConfigurationFactory(
- ConfigurationCollectionFactory configurationCollectionFactory,
- List<ConfigurationFragmentFactory> fragmentFactories) {
- this.configurationCollectionFactory =
- Preconditions.checkNotNull(configurationCollectionFactory);
- this.configurationFragmentFactories = ImmutableList.copyOf(fragmentFactories);
- }
-
- /**
- * Creates a set of build configurations with top-level configuration having the given options.
- *
- * <p>The rest of the configurations are created based on the set of transitions available.
- */
- @Nullable
- public BuildConfiguration createConfigurations(
- Cache<String, BuildConfiguration> cache,
- PackageProviderForConfigurations loadedPackageProvider,
- BuildOptions buildOptions,
- EventHandler errorEventListener,
- String mainRepositoryName)
- throws InvalidConfigurationException, InterruptedException {
- return configurationCollectionFactory.createConfigurations(this, cache,
- loadedPackageProvider, buildOptions, errorEventListener, mainRepositoryName);
- }
-
- /**
- * Returns a {@link com.google.devtools.build.lib.analysis.config.BuildConfiguration} based on the
- * given set of build options.
- *
- * <p>If the configuration has already been created, re-uses it, otherwise, creates a new one.
- */
- @Nullable
- public BuildConfiguration getConfiguration(
- PackageProviderForConfigurations loadedPackageProvider,
- BuildOptions buildOptions,
- Cache<String, BuildConfiguration> cache,
- String repositoryName)
- throws InvalidConfigurationException, InterruptedException {
-
- String cacheKey = buildOptions.computeCacheKey();
- BuildConfiguration result = cache.getIfPresent(cacheKey);
- if (result != null) {
- return result;
- }
-
- Map<Class<? extends Fragment>, Fragment> fragments = new HashMap<>();
- // Create configuration fragments
- for (ConfigurationFragmentFactory factory : configurationFragmentFactories) {
- Class<? extends Fragment> fragmentType = factory.creates();
- Fragment fragment = loadedPackageProvider.getFragment(buildOptions, fragmentType);
- if (fragment != null && fragments.get(fragment.getClass()) == null) {
- fragments.put(fragment.getClass(), fragment);
- }
- }
- BlazeDirectories directories = loadedPackageProvider.getDirectories();
- if (loadedPackageProvider.valuesMissing()) {
- return null;
- }
-
- result = new BuildConfiguration(directories, fragments, buildOptions, repositoryName, null);
- cache.put(cacheKey, result);
- return result;
- }
-
- public List<ConfigurationFragmentFactory> getFactories() {
- return configurationFragmentFactories;
- }
-}
diff --git a/src/main/java/com/google/devtools/build/lib/bazel/rules/BazelConfigurationCollection.java b/src/main/java/com/google/devtools/build/lib/bazel/rules/BazelConfigurationCollection.java
index 330e641..d740102 100644
--- a/src/main/java/com/google/devtools/build/lib/bazel/rules/BazelConfigurationCollection.java
+++ b/src/main/java/com/google/devtools/build/lib/bazel/rules/BazelConfigurationCollection.java
@@ -26,7 +26,6 @@
import com.google.devtools.build.lib.analysis.config.BuildConfigurationCollection.ConfigurationHolder;
import com.google.devtools.build.lib.analysis.config.BuildConfigurationCollection.Transitions;
import com.google.devtools.build.lib.analysis.config.BuildOptions;
-import com.google.devtools.build.lib.analysis.config.ConfigurationFactory;
import com.google.devtools.build.lib.analysis.config.InvalidConfigurationException;
import com.google.devtools.build.lib.analysis.config.PackageProviderForConfigurations;
import com.google.devtools.build.lib.events.EventHandler;
@@ -48,7 +47,6 @@
@Override
@Nullable
public BuildConfiguration createConfigurations(
- ConfigurationFactory configurationFactory,
Cache<String, BuildConfiguration> cache,
PackageProviderForConfigurations packageProvider,
BuildOptions buildOptions,
@@ -56,8 +54,8 @@
String mainRepositoryName)
throws InvalidConfigurationException, InterruptedException {
// Target configuration
- BuildConfiguration targetConfiguration = configurationFactory.getConfiguration(
- packageProvider, buildOptions, cache, mainRepositoryName);
+ // Dead code: being removed. The original value used a class that's already been deleted.
+ BuildConfiguration targetConfiguration = null;
if (targetConfiguration == null) {
return null;
}
@@ -67,7 +65,7 @@
// Host configuration
// Note that this passes in the dataConfiguration, not the target
// configuration. This is intentional.
- BuildConfiguration hostConfiguration = getHostConfigurationFromRequest(configurationFactory,
+ BuildConfiguration hostConfiguration = getHostConfigurationFromRequest(
packageProvider, dataConfiguration, buildOptions, cache, mainRepositoryName);
if (hostConfiguration == null) {
return null;
@@ -77,8 +75,8 @@
ArrayListMultimap.create();
for (SplitTransition<BuildOptions> transition : buildOptions.getPotentialSplitTransitions()) {
for (BuildOptions splitOptions : transition.split(buildOptions)) {
- BuildConfiguration splitConfig = configurationFactory.getConfiguration(
- packageProvider, splitOptions, cache, mainRepositoryName);
+ // Dead code: being removed. The original value used a class that's already been deleted.
+ BuildConfiguration splitConfig = null;
splitTransitionsTable.put(transition, splitConfig);
}
}
@@ -124,7 +122,6 @@
*/
@Nullable
private static BuildConfiguration getHostConfigurationFromRequest(
- ConfigurationFactory configurationFactory,
PackageProviderForConfigurations loadedPackageProvider,
BuildConfiguration requestConfig,
BuildOptions buildOptions,
@@ -135,8 +132,8 @@
if (!commonOptions.useDistinctHostConfiguration) {
return requestConfig;
} else {
- BuildConfiguration hostConfig = configurationFactory.getConfiguration(
- loadedPackageProvider, buildOptions.createHostOptions(false), cache, repositoryName);
+ // Dead code: being removed. The original value used a class that's already been deleted.
+ BuildConfiguration hostConfig = null;
if (hostConfig == null) {
return null;
}
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/ConfigurationCollectionFunction.java b/src/main/java/com/google/devtools/build/lib/skyframe/ConfigurationCollectionFunction.java
index ccabf7d..e5d8d11 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/ConfigurationCollectionFunction.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/ConfigurationCollectionFunction.java
@@ -13,7 +13,6 @@
// limitations under the License.
package com.google.devtools.build.lib.skyframe;
-import com.google.common.base.Supplier;
import com.google.common.cache.Cache;
import com.google.common.cache.CacheBuilder;
import com.google.common.collect.ImmutableSet;
@@ -21,7 +20,6 @@
import com.google.devtools.build.lib.analysis.config.BuildConfiguration;
import com.google.devtools.build.lib.analysis.config.BuildConfigurationCollection;
import com.google.devtools.build.lib.analysis.config.BuildOptions;
-import com.google.devtools.build.lib.analysis.config.ConfigurationFactory;
import com.google.devtools.build.lib.analysis.config.HostTransition;
import com.google.devtools.build.lib.analysis.config.InvalidConfigurationException;
import com.google.devtools.build.lib.analysis.config.PackageProviderForConfigurations;
@@ -45,13 +43,9 @@
*/
@Deprecated
public class ConfigurationCollectionFunction implements SkyFunction {
-
- private final Supplier<ConfigurationFactory> configurationFactory;
private final RuleClassProvider ruleClassProvider;
- public ConfigurationCollectionFunction(Supplier<ConfigurationFactory> configurationFactory,
- RuleClassProvider ruleClassProvider) {
- this.configurationFactory = configurationFactory;
+ public ConfigurationCollectionFunction(RuleClassProvider ruleClassProvider) {
this.ruleClassProvider = ruleClassProvider;
}
@@ -169,8 +163,8 @@
cpuOverride;
}
- BuildConfiguration targetConfig = configurationFactory.get().createConfigurations(
- cache, loadedPackageProvider, buildOptions, eventHandler, repositoryName);
+ // Dead code: being removed. The original value used a class that's already been deleted.
+ BuildConfiguration targetConfig = null;
if (targetConfig == null) {
return null;
}
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/SkyframeExecutor.java b/src/main/java/com/google/devtools/build/lib/skyframe/SkyframeExecutor.java
index df32c0f..96e89fa 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/SkyframeExecutor.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/SkyframeExecutor.java
@@ -427,7 +427,7 @@
map.put(SkyFunctions.BUILD_CONFIGURATION,
new BuildConfigurationFunction(directories, ruleClassProvider));
map.put(SkyFunctions.CONFIGURATION_COLLECTION, new ConfigurationCollectionFunction(
- null, ruleClassProvider));
+ ruleClassProvider));
map.put(SkyFunctions.CONFIGURATION_FRAGMENT, new ConfigurationFragmentFunction(
configurationFragments, ruleClassProvider));
map.put(SkyFunctions.WORKSPACE_NAME, new WorkspaceNameFunction());
diff --git a/src/test/java/com/google/devtools/build/lib/analysis/BuildViewTest.java b/src/test/java/com/google/devtools/build/lib/analysis/BuildViewTest.java
index d2864bb..72c18f2 100644
--- a/src/test/java/com/google/devtools/build/lib/analysis/BuildViewTest.java
+++ b/src/test/java/com/google/devtools/build/lib/analysis/BuildViewTest.java
@@ -34,7 +34,6 @@
import com.google.devtools.build.lib.analysis.BuildView.AnalysisResult;
import com.google.devtools.build.lib.analysis.config.BuildConfiguration;
import com.google.devtools.build.lib.analysis.config.InvalidConfigurationException;
-import com.google.devtools.build.lib.analysis.util.AnalysisMock;
import com.google.devtools.build.lib.analysis.util.BuildViewTestBase;
import com.google.devtools.build.lib.analysis.util.ExpectedDynamicConfigurationErrors;
import com.google.devtools.build.lib.analysis.util.MockRule;
@@ -1109,7 +1108,6 @@
"filegroup(name = 'jdk', srcs = [",
" '//does/not/exist:a-piii', '//does/not/exist:b-k8', '//does/not/exist:c-default'])");
scratch.file("does/not/exist/BUILD");
- useConfigurationFactory(AnalysisMock.get().createConfigurationFactory());
useConfiguration("--javabase=//jdk");
reporter.removeHandler(failFastHandler);
try {
diff --git a/src/test/java/com/google/devtools/build/lib/analysis/ConfigurationsForLateBoundTargetsTest.java b/src/test/java/com/google/devtools/build/lib/analysis/ConfigurationsForLateBoundTargetsTest.java
index 352fe31..3fc5127 100644
--- a/src/test/java/com/google/devtools/build/lib/analysis/ConfigurationsForLateBoundTargetsTest.java
+++ b/src/test/java/com/google/devtools/build/lib/analysis/ConfigurationsForLateBoundTargetsTest.java
@@ -22,7 +22,6 @@
import com.google.common.collect.Iterables;
import com.google.devtools.build.lib.analysis.config.BuildConfiguration;
import com.google.devtools.build.lib.analysis.config.BuildOptions;
-import com.google.devtools.build.lib.analysis.config.ConfigurationFactory;
import com.google.devtools.build.lib.analysis.config.PatchTransition;
import com.google.devtools.build.lib.analysis.util.AnalysisTestCase;
import com.google.devtools.build.lib.analysis.util.MockRule;
@@ -100,11 +99,6 @@
builder.addConfigurationOptions(LateBoundSplitUtil.TestOptions.class);
builder.addRuleDefinition(LATE_BOUND_DEP_RULE);
useRuleClassProvider(builder.build());
-
- // Register the latebound split fragment with the config creation environment.
- useConfigurationFactory(new ConfigurationFactory(
- ruleClassProvider.getConfigurationCollectionFactory(),
- ruleClassProvider.getConfigurationFragments()));
}
@Test
diff --git a/src/test/java/com/google/devtools/build/lib/analysis/config/BuildConfigurationTest.java b/src/test/java/com/google/devtools/build/lib/analysis/config/BuildConfigurationTest.java
index 4374c86..9577d1b 100644
--- a/src/test/java/com/google/devtools/build/lib/analysis/config/BuildConfigurationTest.java
+++ b/src/test/java/com/google/devtools/build/lib/analysis/config/BuildConfigurationTest.java
@@ -16,6 +16,7 @@
import static com.google.common.truth.Truth.assertThat;
import static org.junit.Assert.fail;
+import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableSet;
import com.google.common.collect.Iterables;
import com.google.devtools.build.lib.analysis.config.BuildConfiguration.Fragment;
@@ -234,11 +235,9 @@
@Test
public void testCycleInFragments() throws Exception {
- configurationFactory =
- new ConfigurationFactory(
- analysisMock.createConfigurationCollectionFactory(),
- createMockFragment(CppConfiguration.class, JavaConfiguration.class),
- createMockFragment(JavaConfiguration.class, CppConfiguration.class));
+ configurationFragmentFactories = ImmutableList.of(
+ createMockFragment(CppConfiguration.class, JavaConfiguration.class),
+ createMockFragment(JavaConfiguration.class, CppConfiguration.class));
try {
createCollection();
fail();
@@ -249,10 +248,8 @@
@Test
public void testMissingFragment() throws Exception {
- configurationFactory =
- new ConfigurationFactory(
- analysisMock.createConfigurationCollectionFactory(),
- createMockFragment(CppConfiguration.class, JavaConfiguration.class));
+ configurationFragmentFactories = ImmutableList.of(
+ createMockFragment(CppConfiguration.class, JavaConfiguration.class));
try {
createCollection();
fail();
@@ -394,10 +391,7 @@
@Test
public void depLabelCycleOnConfigurationLoading() throws Exception {
- configurationFactory =
- new ConfigurationFactory(
- analysisMock.createConfigurationCollectionFactory(),
- createMockFragmentWithLabelDep("//foo"));
+ configurationFragmentFactories = ImmutableList.of(createMockFragmentWithLabelDep("//foo"));
getScratch().file("foo/BUILD",
"load('//skylark:one.bzl', 'one')",
"cc_library(name = 'foo')");
diff --git a/src/test/java/com/google/devtools/build/lib/analysis/mock/BazelAnalysisMock.java b/src/test/java/com/google/devtools/build/lib/analysis/mock/BazelAnalysisMock.java
index f15e092..5131112 100644
--- a/src/test/java/com/google/devtools/build/lib/analysis/mock/BazelAnalysisMock.java
+++ b/src/test/java/com/google/devtools/build/lib/analysis/mock/BazelAnalysisMock.java
@@ -22,7 +22,6 @@
import com.google.devtools.build.lib.analysis.ConfigurationCollectionFactory;
import com.google.devtools.build.lib.analysis.ConfiguredRuleClassProvider;
import com.google.devtools.build.lib.analysis.PlatformConfigurationLoader;
-import com.google.devtools.build.lib.analysis.config.ConfigurationFactory;
import com.google.devtools.build.lib.analysis.config.ConfigurationFragmentFactory;
import com.google.devtools.build.lib.analysis.featurecontrol.FeaturePolicyLoader;
import com.google.devtools.build.lib.analysis.util.AnalysisMock;
@@ -236,19 +235,7 @@
}
@Override
- public ConfigurationFactory createConfigurationFactory() {
- return createConfigurationFactory(getDefaultConfigurationFactories());
- }
-
- @Override
- public ConfigurationFactory createConfigurationFactory(
- List<ConfigurationFragmentFactory> configurationFragmentFactories) {
- return new ConfigurationFactory(
- new BazelConfigurationCollection(),
- configurationFragmentFactories);
- }
-
- private static List<ConfigurationFragmentFactory> getDefaultConfigurationFactories() {
+ public List<ConfigurationFragmentFactory> getDefaultConfigurationFragmentFactories() {
return ImmutableList.<ConfigurationFragmentFactory>of(
new BazelConfiguration.Loader(),
new CppConfigurationLoader(Functions.<String>identity()),
diff --git a/src/test/java/com/google/devtools/build/lib/analysis/util/AnalysisMock.java b/src/test/java/com/google/devtools/build/lib/analysis/util/AnalysisMock.java
index ff340b5..4c1d1d5 100644
--- a/src/test/java/com/google/devtools/build/lib/analysis/util/AnalysisMock.java
+++ b/src/test/java/com/google/devtools/build/lib/analysis/util/AnalysisMock.java
@@ -17,7 +17,6 @@
import com.google.common.collect.ImmutableMap;
import com.google.devtools.build.lib.analysis.ConfigurationCollectionFactory;
import com.google.devtools.build.lib.analysis.ConfiguredRuleClassProvider;
-import com.google.devtools.build.lib.analysis.config.ConfigurationFactory;
import com.google.devtools.build.lib.analysis.config.ConfigurationFragmentFactory;
import com.google.devtools.build.lib.bazel.rules.android.AndroidNdkRepositoryFunction;
import com.google.devtools.build.lib.bazel.rules.android.AndroidNdkRepositoryRule;
@@ -99,13 +98,11 @@
*/
public abstract void setupMockWorkspaceFiles(Path embeddedBinariesRoot) throws IOException;
- public abstract ConfigurationFactory createConfigurationFactory();
-
- public abstract ConfigurationFactory createConfigurationFactory(
- List<ConfigurationFragmentFactory> configurationFragmentFactories);
-
public abstract ConfigurationCollectionFactory createConfigurationCollectionFactory();
+ /** Returns the default factories for configuration fragments used in tests. */
+ public abstract List<ConfigurationFragmentFactory> getDefaultConfigurationFragmentFactories();
+
@Override
public abstract ConfiguredRuleClassProvider createRuleClassProvider();
@@ -158,22 +155,16 @@
}
@Override
- public ConfigurationFactory createConfigurationFactory() {
- return delegate.createConfigurationFactory();
- }
-
- @Override
- public ConfigurationFactory createConfigurationFactory(
- List<ConfigurationFragmentFactory> configurationFragmentFactories) {
- return delegate.createConfigurationFactory(configurationFragmentFactories);
- }
-
- @Override
public ConfigurationCollectionFactory createConfigurationCollectionFactory() {
return delegate.createConfigurationCollectionFactory();
}
@Override
+ public List<ConfigurationFragmentFactory> getDefaultConfigurationFragmentFactories() {
+ return delegate.getDefaultConfigurationFragmentFactories();
+ }
+
+ @Override
public ConfiguredRuleClassProvider createRuleClassProvider() {
return delegate.createRuleClassProvider();
}
diff --git a/src/test/java/com/google/devtools/build/lib/analysis/util/AnalysisTestCase.java b/src/test/java/com/google/devtools/build/lib/analysis/util/AnalysisTestCase.java
index 6e3a0f1..ff655ba 100644
--- a/src/test/java/com/google/devtools/build/lib/analysis/util/AnalysisTestCase.java
+++ b/src/test/java/com/google/devtools/build/lib/analysis/util/AnalysisTestCase.java
@@ -34,7 +34,6 @@
import com.google.devtools.build.lib.analysis.config.BuildConfiguration;
import com.google.devtools.build.lib.analysis.config.BuildConfigurationCollection;
import com.google.devtools.build.lib.analysis.config.BuildOptions;
-import com.google.devtools.build.lib.analysis.config.ConfigurationFactory;
import com.google.devtools.build.lib.analysis.config.ConfigurationFragmentFactory;
import com.google.devtools.build.lib.buildtool.BuildRequest.BuildRequestOptions;
import com.google.devtools.build.lib.cmdline.Label;
@@ -130,7 +129,6 @@
private OptionsParser optionsParser;
protected PackageManager packageManager;
private LoadingPhaseRunner loadingPhaseRunner;
- private ConfigurationFactory configurationFactory;
private BuildView buildView;
// Note that these configurations are virtual (they use only VFS)
@@ -155,7 +153,6 @@
mockToolsConfig = new MockToolsConfig(rootDirectory);
analysisMock.setupMockClient(mockToolsConfig);
analysisMock.setupMockWorkspaceFiles(directories.getEmbeddedBinariesRoot());
- configurationFactory = analysisMock.createConfigurationFactory();
useRuleClassProvider(analysisMock.createRuleClassProvider());
}
@@ -166,10 +163,6 @@
protected void useRuleClassProvider(ConfiguredRuleClassProvider ruleClassProvider)
throws Exception {
this.ruleClassProvider = ruleClassProvider;
- useConfigurationFactory(
- new ConfigurationFactory(
- ruleClassProvider.getConfigurationCollectionFactory(),
- ruleClassProvider.getConfigurationFragments()));
PackageFactory pkgFactory =
analysisMock
.getPackageFactoryBuilderForTesting()
@@ -224,10 +217,6 @@
return ImmutableList.of();
}
- protected final void useConfigurationFactory(ConfigurationFactory configurationFactory) {
- this.configurationFactory = configurationFactory;
- }
-
/**
* Sets host and target configuration using the specified options, falling back to the default
* options for unspecified ones, and recreates the build view.
@@ -361,8 +350,9 @@
BuildRequestOptions requestOptions = optionsParser.getOptions(BuildRequestOptions.class);
ImmutableSortedSet<String> multiCpu = ImmutableSortedSet.copyOf(requestOptions.multiCpus);
- masterConfig = skyframeExecutor.createConfigurations(reporter,
- configurationFactory.getFactories(), buildOptions, multiCpu, false);
+ masterConfig = skyframeExecutor.createConfigurations(
+ reporter, ruleClassProvider.getConfigurationFragments(), buildOptions,
+ multiCpu, false);
analysisResult =
buildView.update(
loadingResult,
diff --git a/src/test/java/com/google/devtools/build/lib/analysis/util/BuildViewTestCase.java b/src/test/java/com/google/devtools/build/lib/analysis/util/BuildViewTestCase.java
index 949b738..934082f 100644
--- a/src/test/java/com/google/devtools/build/lib/analysis/util/BuildViewTestCase.java
+++ b/src/test/java/com/google/devtools/build/lib/analysis/util/BuildViewTestCase.java
@@ -77,7 +77,6 @@
import com.google.devtools.build.lib.analysis.config.BuildConfiguration.Options.DynamicConfigsMode;
import com.google.devtools.build.lib.analysis.config.BuildConfigurationCollection;
import com.google.devtools.build.lib.analysis.config.BuildOptions;
-import com.google.devtools.build.lib.analysis.config.ConfigurationFactory;
import com.google.devtools.build.lib.analysis.config.PatchTransition;
import com.google.devtools.build.lib.analysis.extra.ExtraAction;
import com.google.devtools.build.lib.analysis.test.BaselineCoverageAction;
@@ -170,7 +169,6 @@
protected AnalysisMock analysisMock;
protected ConfiguredRuleClassProvider ruleClassProvider;
- protected ConfigurationFactory configurationFactory;
protected BuildView view;
protected SequencedSkyframeExecutor skyframeExecutor;
@@ -212,8 +210,6 @@
new AnalysisTestUtil.DummyWorkspaceStatusActionFactory(directories);
mutableActionGraph = new MapBasedActionGraph();
ruleClassProvider = getRuleClassProvider();
- configurationFactory =
- analysisMock.createConfigurationFactory(ruleClassProvider.getConfigurationFragments());
ImmutableList<PrecomputedValue.Injected> extraPrecomputedValues = ImmutableList.of(
PrecomputedValue.injected(
@@ -320,8 +316,9 @@
BuildOptions buildOptions = ruleClassProvider.createBuildOptions(optionsParser);
skyframeExecutor.invalidateConfigurationCollection();
- return skyframeExecutor.createConfigurations(reporter, configurationFactory.getFactories(),
- buildOptions, ImmutableSet.<String>of(), false);
+ return skyframeExecutor.createConfigurations(
+ reporter, ruleClassProvider.getConfigurationFragments(), buildOptions,
+ ImmutableSet.<String>of(), false);
}
protected Target getTarget(String label)
diff --git a/src/test/java/com/google/devtools/build/lib/analysis/util/ConfigurationTestCase.java b/src/test/java/com/google/devtools/build/lib/analysis/util/ConfigurationTestCase.java
index 3ccaea2..f01405e 100644
--- a/src/test/java/com/google/devtools/build/lib/analysis/util/ConfigurationTestCase.java
+++ b/src/test/java/com/google/devtools/build/lib/analysis/util/ConfigurationTestCase.java
@@ -27,7 +27,7 @@
import com.google.devtools.build.lib.analysis.config.BuildConfiguration;
import com.google.devtools.build.lib.analysis.config.BuildConfigurationCollection;
import com.google.devtools.build.lib.analysis.config.BuildOptions;
-import com.google.devtools.build.lib.analysis.config.ConfigurationFactory;
+import com.google.devtools.build.lib.analysis.config.ConfigurationFragmentFactory;
import com.google.devtools.build.lib.analysis.config.FragmentOptions;
import com.google.devtools.build.lib.analysis.config.InvalidConfigurationException;
import com.google.devtools.build.lib.cmdline.RepositoryName;
@@ -66,7 +66,7 @@
import org.junit.runners.JUnit4;
/**
- * Testing framework for tests which check ConfigurationFactory.
+ * Testing framework for tests which create configuration collections.
*/
@RunWith(JUnit4.class)
public abstract class ConfigurationTestCase extends FoundationTestCase {
@@ -89,7 +89,7 @@
protected Path workspace;
protected AnalysisMock analysisMock;
protected SequencedSkyframeExecutor skyframeExecutor;
- protected ConfigurationFactory configurationFactory;
+ protected List<ConfigurationFragmentFactory> configurationFragmentFactories;
protected ImmutableList<Class<? extends FragmentOptions>> buildOptionClasses;
@Before
@@ -147,7 +147,7 @@
mockToolsConfig = new MockToolsConfig(rootDirectory);
analysisMock.setupMockClient(mockToolsConfig);
analysisMock.setupMockWorkspaceFiles(directories.getEmbeddedBinariesRoot());
- configurationFactory = analysisMock.createConfigurationFactory();
+ configurationFragmentFactories = analysisMock.getDefaultConfigurationFragmentFactories();
buildOptionClasses = ruleClassProvider.getConfigurationOptions();
}
@@ -180,9 +180,9 @@
parser.getOptions(TestOptions.class).multiCpus);
skyframeExecutor.handleDiffs(reporter);
- BuildConfigurationCollection collection = skyframeExecutor.createConfigurations(reporter,
- configurationFactory.getFactories(), BuildOptions.of(buildOptionClasses, parser), multiCpu,
- false);
+ BuildConfigurationCollection collection = skyframeExecutor.createConfigurations(
+ reporter, configurationFragmentFactories, BuildOptions.of(buildOptionClasses, parser),
+ multiCpu, false);
return collection;
}
diff --git a/src/test/java/com/google/devtools/build/lib/rules/cpp/CcCommonTest.java b/src/test/java/com/google/devtools/build/lib/rules/cpp/CcCommonTest.java
index 4852123..2547d35 100644
--- a/src/test/java/com/google/devtools/build/lib/rules/cpp/CcCommonTest.java
+++ b/src/test/java/com/google/devtools/build/lib/rules/cpp/CcCommonTest.java
@@ -32,7 +32,6 @@
import com.google.devtools.build.lib.analysis.RuleDefinition;
import com.google.devtools.build.lib.analysis.RuleDefinitionEnvironment;
import com.google.devtools.build.lib.analysis.config.BuildConfiguration;
-import com.google.devtools.build.lib.analysis.config.ConfigurationFactory;
import com.google.devtools.build.lib.analysis.mock.BazelAnalysisMock;
import com.google.devtools.build.lib.analysis.util.AnalysisMock;
import com.google.devtools.build.lib.analysis.util.BuildViewTestCase;
@@ -972,13 +971,6 @@
final AnalysisMock original = BazelAnalysisMock.INSTANCE;
return new AnalysisMock.Delegate(original) {
@Override
- public ConfigurationFactory createConfigurationFactory() {
- return new ConfigurationFactory(
- createRuleClassProvider().getConfigurationCollectionFactory(),
- createRuleClassProvider().getConfigurationFragments());
- }
-
- @Override
public ConfiguredRuleClassProvider createRuleClassProvider() {
ConfiguredRuleClassProvider.Builder builder = new ConfiguredRuleClassProvider.Builder();
builder.setToolsRepository("@bazel_tools");