diff options
author | 2017-08-16 21:33:48 +0200 | |
---|---|---|
committer | 2017-08-17 09:54:15 +0200 | |
commit | d63ee814e2493bc74b74842744a8471a0aeeb0ef (patch) | |
tree | a0bf485ccd08148eebaf180c5f23491f1bc394c1 /src/main/java/com/google/devtools | |
parent | c65147b4bb866bd8ec553dcbec5e9bb59c164493 (diff) |
Remove ConfigurationFactory as part of the static configuration cleanup.
PiperOrigin-RevId: 165478994
Diffstat (limited to 'src/main/java/com/google/devtools')
6 files changed, 12 insertions, 146 deletions
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 7915bcecb3..8d93d05614 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 @@ package com.google.devtools.build.lib.analysis; 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 @@ public interface ConfigurationCollectionFactory { * 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 @@ public interface ConfigurationCollectionFactory { */ @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 d06bb63ab4..db9649d495 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 @@ public final class BuildConfiguration implements BuildEvent { * 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 0080786b97..0000000000 --- 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 330e641499..d740102ac8 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.BuildConfigurationCollectio 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 @@ public class BazelConfigurationCollection implements ConfigurationCollectionFact @Override @Nullable public BuildConfiguration createConfigurations( - ConfigurationFactory configurationFactory, Cache<String, BuildConfiguration> cache, PackageProviderForConfigurations packageProvider, BuildOptions buildOptions, @@ -56,8 +54,8 @@ public class BazelConfigurationCollection implements ConfigurationCollectionFact 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 @@ public class BazelConfigurationCollection implements ConfigurationCollectionFact // 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 @@ public class BazelConfigurationCollection implements ConfigurationCollectionFact 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 @@ public class BazelConfigurationCollection implements ConfigurationCollectionFact */ @Nullable private static BuildConfiguration getHostConfigurationFromRequest( - ConfigurationFactory configurationFactory, PackageProviderForConfigurations loadedPackageProvider, BuildConfiguration requestConfig, BuildOptions buildOptions, @@ -135,8 +132,8 @@ public class BazelConfigurationCollection implements ConfigurationCollectionFact 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 ccabf7d1e0..e5d8d111a1 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.ConfiguredRuleClassProvider; 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 @@ import javax.annotation.Nullable; */ @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 @@ public class ConfigurationCollectionFunction implements SkyFunction { 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 df32c0f5e2..96e89fa3d1 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 @@ public abstract class SkyframeExecutor implements WalkableGraphFactory { 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()); |