aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com
diff options
context:
space:
mode:
authorGravatar gregce <gregce@google.com>2017-08-16 21:33:48 +0200
committerGravatar Irina Iancu <elenairina@google.com>2017-08-17 09:54:15 +0200
commitd63ee814e2493bc74b74842744a8471a0aeeb0ef (patch)
treea0bf485ccd08148eebaf180c5f23491f1bc394c1 /src/main/java/com
parentc65147b4bb866bd8ec553dcbec5e9bb59c164493 (diff)
Remove ConfigurationFactory as part of the static configuration cleanup.
PiperOrigin-RevId: 165478994
Diffstat (limited to 'src/main/java/com')
-rw-r--r--src/main/java/com/google/devtools/build/lib/analysis/ConfigurationCollectionFactory.java3
-rw-r--r--src/main/java/com/google/devtools/build/lib/analysis/config/BuildConfiguration.java3
-rw-r--r--src/main/java/com/google/devtools/build/lib/analysis/config/ConfigurationFactory.java121
-rw-r--r--src/main/java/com/google/devtools/build/lib/bazel/rules/BazelConfigurationCollection.java17
-rw-r--r--src/main/java/com/google/devtools/build/lib/skyframe/ConfigurationCollectionFunction.java12
-rw-r--r--src/main/java/com/google/devtools/build/lib/skyframe/SkyframeExecutor.java2
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());