Remove ConfigurationFragmentFactory.
PiperOrigin-RevId: 343072214
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/BUILD b/src/main/java/com/google/devtools/build/lib/analysis/BUILD
index 2d6be1c..95d3a2f 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/BUILD
+++ b/src/main/java/com/google/devtools/build/lib/analysis/BUILD
@@ -112,7 +112,6 @@
":options_diff_predicate",
":package_specification_provider",
":platform_configuration",
- ":platform_configuration_loader",
":platform_options",
":print_action_visitor",
":provider_collection",
@@ -927,20 +926,6 @@
)
java_library(
- name = "platform_configuration_loader",
- srcs = ["PlatformConfigurationLoader.java"],
- deps = [
- ":config/build_options",
- ":config/fragment",
- ":config/fragment_provider",
- ":config/invalid_configuration_exception",
- ":platform_configuration",
- ":platform_options",
- "//third_party:guava",
- ],
-)
-
-java_library(
name = "platform_options",
srcs = ["PlatformOptions.java"],
deps = [
@@ -1701,17 +1686,12 @@
java_library(
name = "config/fragment_provider",
srcs = [
- "config/ConfigurationFragmentFactory.java",
"config/FragmentProvider.java",
],
deps = [
- ":config/build_options",
":config/fragment",
- ":config/fragment_options",
- ":config/invalid_configuration_exception",
"//src/main/java/com/google/devtools/build/lib/packages",
"//third_party:guava",
- "//third_party:jsr305",
],
)
@@ -2287,8 +2267,6 @@
":config/core_option_converters",
":config/fragment",
":config/fragment_options",
- ":config/fragment_provider",
- ":config/invalid_configuration_exception",
":config/per_label_options",
":options_diff_predicate",
":test/test_sharding_strategy",
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/ConfiguredRuleClassProvider.java b/src/main/java/com/google/devtools/build/lib/analysis/ConfiguredRuleClassProvider.java
index 5e51012..20c636b 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/ConfiguredRuleClassProvider.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/ConfiguredRuleClassProvider.java
@@ -30,7 +30,6 @@
import com.google.devtools.build.lib.analysis.buildinfo.BuildInfoKey;
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.ConfigurationFragmentFactory;
import com.google.devtools.build.lib.analysis.config.ConvenienceSymlinks.SymlinkDefinition;
import com.google.devtools.build.lib.analysis.config.Fragment;
import com.google.devtools.build.lib.analysis.config.FragmentOptions;
@@ -100,8 +99,7 @@
private Label preludeLabel;
private String runfilesPrefix;
private String toolsRepository;
- private final List<ConfigurationFragmentFactory> configurationFragmentFactories =
- new ArrayList<>();
+ private final List<Class<? extends Fragment>> configurationFragmentClasses = new ArrayList<>();
private final List<BuildInfoFactory> buildInfoFactories = new ArrayList<>();
private final Set<Class<? extends FragmentOptions>> configurationOptions =
new LinkedHashSet<>();
@@ -198,22 +196,22 @@
}
/**
- * Adds a configuration fragment factory and all build options required by its fragment.
+ * Adds a configuration fragment and all build options required by its fragment.
*
* <p>Note that configuration fragments annotated with a Starlark name must have a unique name;
* no two different configuration fragments can share the same name.
*/
- public Builder addConfigurationFragment(ConfigurationFragmentFactory factory) {
- this.configurationOptions.addAll(Fragment.requiredOptions(factory.creates()));
- configurationFragmentFactories.add(factory);
+ public Builder addConfigurationFragment(Class<? extends Fragment> fragmentClass) {
+ this.configurationOptions.addAll(Fragment.requiredOptions(fragmentClass));
+ configurationFragmentClasses.add(fragmentClass);
return this;
}
/**
* Adds configuration options that aren't required by configuration fragments.
*
- * <p>If {@link #addConfigurationFragment(ConfigurationFragmentFactory)} adds a fragment factory
- * that also requires these options, this method is redundant.
+ * <p>If {@link #addConfigurationFragment} adds a fragment that also requires these options,
+ * this method is redundant.
*/
public Builder addConfigurationOptions(Class<? extends FragmentOptions> configurationOptions) {
this.configurationOptions.add(configurationOptions);
@@ -418,7 +416,7 @@
defaultWorkspaceFileSuffix.toString(),
ImmutableList.copyOf(buildInfoFactories),
ImmutableList.copyOf(configurationOptions),
- ImmutableList.copyOf(configurationFragmentFactories),
+ ImmutableList.copyOf(configurationFragmentClasses),
ImmutableList.copyOf(universalFragments),
trimmingTransitionFactory,
toolchainTaggedTrimmingTransition,
@@ -491,7 +489,7 @@
private final ImmutableList<Class<? extends FragmentOptions>> configurationOptions;
/** The set of configuration fragment factories. */
- private final ImmutableList<ConfigurationFragmentFactory> configurationFragmentFactories;
+ private final ImmutableList<Class<? extends Fragment>> configurationFragmentClasses;
/**
* Maps build option names to matching config fragments. This is used to determine correct
@@ -546,7 +544,7 @@
String defaultWorkspaceFileSuffix,
ImmutableList<BuildInfoFactory> buildInfoFactories,
ImmutableList<Class<? extends FragmentOptions>> configurationOptions,
- ImmutableList<ConfigurationFragmentFactory> configurationFragments,
+ ImmutableList<Class<? extends Fragment>> configurationFragmentClasses,
ImmutableList<Class<? extends Fragment>> universalFragments,
@Nullable TransitionFactory<Rule> trimmingTransitionFactory,
PatchTransition toolchainTaggedTrimmingTransition,
@@ -569,8 +567,8 @@
this.defaultWorkspaceFileSuffix = defaultWorkspaceFileSuffix;
this.buildInfoFactories = buildInfoFactories;
this.configurationOptions = configurationOptions;
- this.configurationFragmentFactories = configurationFragments;
- this.optionsToFragmentMap = computeOptionsToFragmentMap(configurationFragments);
+ this.configurationFragmentClasses = configurationFragmentClasses;
+ this.optionsToFragmentMap = computeOptionsToFragmentMap(configurationFragmentClasses);
this.universalFragments = universalFragments;
this.trimmingTransitionFactory = trimmingTransitionFactory;
this.toolchainTaggedTrimmingTransition = toolchainTaggedTrimmingTransition;
@@ -582,7 +580,7 @@
this.symlinkDefinitions = symlinkDefinitions;
this.reservedActionMnemonics = reservedActionMnemonics;
this.actionEnvironmentProvider = actionEnvironmentProvider;
- this.configurationFragmentMap = createFragmentMap(configurationFragments);
+ this.configurationFragmentMap = createFragmentMap(configurationFragmentClasses);
this.constraintSemantics = constraintSemantics;
this.thirdPartyLicenseExistencePolicy = thirdPartyLicenseExistencePolicy;
}
@@ -594,12 +592,11 @@
* that's all that's needed to satisfy the config_setting.
*/
private static Map<String, Class<? extends Fragment>> computeOptionsToFragmentMap(
- Iterable<ConfigurationFragmentFactory> configurationFragments) {
+ ImmutableList<Class<? extends Fragment>> configurationFragments) {
Map<String, Class<? extends Fragment>> result = new LinkedHashMap<>();
Map<Class<? extends FragmentOptions>, Integer> visitedOptionsClasses = new HashMap<>();
- for (ConfigurationFragmentFactory factory : configurationFragments) {
- Set<Class<? extends FragmentOptions>> requiredOpts =
- Fragment.requiredOptions(factory.creates());
+ for (Class<? extends Fragment> fragment : configurationFragments) {
+ Set<Class<? extends FragmentOptions>> requiredOpts = Fragment.requiredOptions(fragment);
for (Class<? extends FragmentOptions> optionsClass : requiredOpts) {
Integer previousBest = visitedOptionsClasses.get(optionsClass);
if (previousBest != null && previousBest <= requiredOpts.size()) {
@@ -611,7 +608,7 @@
visitedOptionsClasses.put(optionsClass, requiredOpts.size());
for (Field field : optionsClass.getFields()) {
if (field.isAnnotationPresent(Option.class)) {
- result.put(field.getAnnotation(Option.class).name(), factory.creates());
+ result.put(field.getAnnotation(Option.class).name(), fragment);
}
}
}
@@ -663,8 +660,8 @@
/** Returns the set of configuration fragments provided by this module. */
@Override
- public ImmutableList<ConfigurationFragmentFactory> getConfigurationFragments() {
- return configurationFragmentFactories;
+ public ImmutableList<Class<? extends Fragment>> getConfigurationFragments() {
+ return configurationFragmentClasses;
}
@Nullable
@@ -751,10 +748,9 @@
}
private static ImmutableMap<String, Class<?>> createFragmentMap(
- Iterable<ConfigurationFragmentFactory> configurationFragmentFactories) {
+ Iterable<Class<? extends Fragment>> configurationFragments) {
ImmutableMap.Builder<String, Class<?>> mapBuilder = ImmutableMap.builder();
- for (ConfigurationFragmentFactory fragmentFactory : configurationFragmentFactories) {
- Class<? extends Fragment> fragmentClass = fragmentFactory.creates();
+ for (Class<? extends Fragment> fragmentClass : configurationFragments) {
StarlarkBuiltin fragmentModule = StarlarkAnnotations.getStarlarkBuiltin(fragmentClass);
if (fragmentModule != null) {
mapBuilder.put(fragmentModule.name(), fragmentClass);
@@ -834,9 +830,7 @@
public ImmutableSortedSet<Class<? extends Fragment>> getAllFragments() {
ImmutableSortedSet.Builder<Class<? extends Fragment>> fragmentsBuilder =
ImmutableSortedSet.orderedBy(BuildConfiguration.lexicalFragmentSorter);
- for (ConfigurationFragmentFactory factory : getConfigurationFragments()) {
- fragmentsBuilder.add(factory.creates());
- }
+ fragmentsBuilder.addAll(getConfigurationFragments());
fragmentsBuilder.addAll(getUniversalFragments());
return fragmentsBuilder.build();
}
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/PlatformConfigurationLoader.java b/src/main/java/com/google/devtools/build/lib/analysis/PlatformConfigurationLoader.java
deleted file mode 100644
index 221822f..0000000
--- a/src/main/java/com/google/devtools/build/lib/analysis/PlatformConfigurationLoader.java
+++ /dev/null
@@ -1,26 +0,0 @@
-// Copyright 2017 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;
-
-import com.google.devtools.build.lib.analysis.config.ConfigurationFragmentFactory;
-import com.google.devtools.build.lib.analysis.config.Fragment;
-
-/** A loader that creates {@link PlatformConfiguration} instances based on command-line options. */
-public class PlatformConfigurationLoader implements ConfigurationFragmentFactory {
- @Override
- public Class<? extends Fragment> creates() {
- return PlatformConfiguration.class;
- }
-}
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/ShellConfiguration.java b/src/main/java/com/google/devtools/build/lib/analysis/ShellConfiguration.java
index 80c78d0..b5621cb 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/ShellConfiguration.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/ShellConfiguration.java
@@ -15,7 +15,6 @@
import com.google.common.collect.ImmutableMap;
import com.google.devtools.build.lib.analysis.config.BuildOptions;
-import com.google.devtools.build.lib.analysis.config.ConfigurationFragmentFactory;
import com.google.devtools.build.lib.analysis.config.Fragment;
import com.google.devtools.build.lib.analysis.config.FragmentOptions;
import com.google.devtools.build.lib.analysis.config.RequiresOptions;
@@ -122,12 +121,4 @@
PathFragment result = OS_SPECIFIC_SHELL.get(os);
return result != null ? result : defaultShell;
}
-
- /** The loader for {@link ShellConfiguration}. */
- public static class Loader implements ConfigurationFragmentFactory {
- @Override
- public Class<? extends Fragment> creates() {
- return ShellConfiguration.class;
- }
- }
}
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 d0477d4..7caa8b5 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
@@ -349,10 +349,9 @@
Multimap<Class<? extends Fragment>, Class<? extends FragmentOptions>>
fragmentToRequiredOptions = ArrayListMultimap.create();
- for (ConfigurationFragmentFactory fragmentLoader :
+ for (Class<? extends Fragment> fragmentClass :
((FragmentProvider) ruleClassProvider).getConfigurationFragments()) {
- fragmentToRequiredOptions.putAll(
- fragmentLoader.creates(), Fragment.requiredOptions(fragmentLoader.creates()));
+ fragmentToRequiredOptions.putAll(fragmentClass, Fragment.requiredOptions(fragmentClass));
}
Set<Class<? extends FragmentOptions>> options = new HashSet<>();
for (Class<? extends Fragment> fragmentClass : fragmentClasses) {
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/config/ConfigurationFragmentFactory.java b/src/main/java/com/google/devtools/build/lib/analysis/config/ConfigurationFragmentFactory.java
deleted file mode 100644
index 881d02e..0000000
--- a/src/main/java/com/google/devtools/build/lib/analysis/config/ConfigurationFragmentFactory.java
+++ /dev/null
@@ -1,23 +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;
-
-/**
- * A factory that instantiates configuration fragments, and which knows some "static" information
- * about these fragments.
- */
-public interface ConfigurationFragmentFactory {
- /** Returns the exact type of the fragment this factory creates. */
- Class<? extends Fragment> creates();
-}
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/config/FragmentProvider.java b/src/main/java/com/google/devtools/build/lib/analysis/config/FragmentProvider.java
index 2dc99bf..5ff5f19 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/config/FragmentProvider.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/config/FragmentProvider.java
@@ -22,5 +22,5 @@
*/
public interface FragmentProvider extends RuleClassProvider {
/** Returns the set of configuration fragments provided by this module. */
- ImmutableList<ConfigurationFragmentFactory> getConfigurationFragments();
+ ImmutableList<Class<? extends Fragment>> getConfigurationFragments();
}
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/test/TestConfiguration.java b/src/main/java/com/google/devtools/build/lib/analysis/test/TestConfiguration.java
index 367c664..f24cde3 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/test/TestConfiguration.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/test/TestConfiguration.java
@@ -19,7 +19,6 @@
import com.google.common.collect.Lists;
import com.google.devtools.build.lib.analysis.OptionsDiffPredicate;
import com.google.devtools.build.lib.analysis.config.BuildOptions;
-import com.google.devtools.build.lib.analysis.config.ConfigurationFragmentFactory;
import com.google.devtools.build.lib.analysis.config.CoreOptionConverters.LabelConverter;
import com.google.devtools.build.lib.analysis.config.Fragment;
import com.google.devtools.build.lib.analysis.config.FragmentOptions;
@@ -295,14 +294,6 @@
}
}
- /** Configuration loader for test options */
- public static class Loader implements ConfigurationFragmentFactory {
- @Override
- public Class<? extends Fragment> creates() {
- return TestConfiguration.class;
- }
- }
-
private final TestOptions options;
private final ImmutableMap<TestTimeout, Duration> testTimeout;
private final boolean shouldInclude;
diff --git a/src/main/java/com/google/devtools/build/lib/bazel/rules/BazelRuleClassProvider.java b/src/main/java/com/google/devtools/build/lib/bazel/rules/BazelRuleClassProvider.java
index cbb39ad..5647310 100644
--- a/src/main/java/com/google/devtools/build/lib/bazel/rules/BazelRuleClassProvider.java
+++ b/src/main/java/com/google/devtools/build/lib/bazel/rules/BazelRuleClassProvider.java
@@ -28,7 +28,6 @@
import com.google.devtools.build.lib.analysis.config.BuildConfiguration;
import com.google.devtools.build.lib.analysis.config.BuildConfiguration.ActionEnvironmentProvider;
import com.google.devtools.build.lib.analysis.config.BuildOptions;
-import com.google.devtools.build.lib.analysis.config.ConfigurationFragmentFactory;
import com.google.devtools.build.lib.analysis.config.CoreOptions;
import com.google.devtools.build.lib.analysis.config.Fragment;
import com.google.devtools.build.lib.analysis.config.FragmentOptions;
@@ -111,7 +110,7 @@
import com.google.devtools.build.lib.rules.python.PyRuntimeInfo;
import com.google.devtools.build.lib.rules.python.PyRuntimeRule;
import com.google.devtools.build.lib.rules.python.PyStarlarkTransitions;
-import com.google.devtools.build.lib.rules.python.PythonConfigurationLoader;
+import com.google.devtools.build.lib.rules.python.PythonConfiguration;
import com.google.devtools.build.lib.rules.repository.CoreWorkspaceRules;
import com.google.devtools.build.lib.rules.repository.NewLocalRepositoryRule;
import com.google.devtools.build.lib.rules.test.TestingSupportRules;
@@ -179,14 +178,6 @@
@RequiresOptions(options = {StrictActionEnvOptions.class})
public static class StrictActionEnvConfiguration extends Fragment {
public StrictActionEnvConfiguration(BuildOptions buildOptions) {}
-
- /** Loader. */
- public static class Loader implements ConfigurationFragmentFactory {
- @Override
- public Class<? extends Fragment> creates() {
- return StrictActionEnvConfiguration.class;
- }
- }
}
public static final ActionEnvironmentProvider SHELL_ACTION_ENV =
@@ -265,10 +256,10 @@
.setPrerequisiteValidator(new BazelPrerequisiteValidator())
.setActionEnvironmentProvider(SHELL_ACTION_ENV)
.addConfigurationOptions(ShellConfiguration.Options.class)
- .addConfigurationFragment(new ShellConfiguration.Loader())
+ .addConfigurationFragment(ShellConfiguration.class)
.addUniversalConfigurationFragment(ShellConfiguration.class)
.addUniversalConfigurationFragment(PlatformConfiguration.class)
- .addConfigurationFragment(new StrictActionEnvConfiguration.Loader())
+ .addConfigurationFragment(StrictActionEnvConfiguration.class)
.addUniversalConfigurationFragment(StrictActionEnvConfiguration.class)
.addConfigurationOptions(CoreOptions.class);
}
@@ -284,7 +275,7 @@
@Override
public void init(ConfiguredRuleClassProvider.Builder builder) {
builder.addConfigurationOptions(ProtoConfiguration.Options.class);
- builder.addConfigurationFragment(new ProtoConfiguration.Loader());
+ builder.addConfigurationFragment(ProtoConfiguration.class);
builder.addRuleDefinition(new BazelProtoLibraryRule());
builder.addRuleDefinition(new ProtoLangToolchainRule());
@@ -342,8 +333,8 @@
public void init(ConfiguredRuleClassProvider.Builder builder) {
String toolsRepository = checkNotNull(builder.getToolsRepository());
- builder.addConfigurationFragment(new AndroidConfiguration.Loader());
- builder.addConfigurationFragment(new AndroidLocalTestConfiguration.Loader());
+ builder.addConfigurationFragment(AndroidConfiguration.class);
+ builder.addConfigurationFragment(AndroidLocalTestConfiguration.class);
AndroidNeverlinkAspect androidNeverlinkAspect = new AndroidNeverlinkAspect();
DexArchiveAspect dexArchiveAspect = new DexArchiveAspect(toolsRepository);
@@ -423,8 +414,8 @@
new RuleSet() {
@Override
public void init(ConfiguredRuleClassProvider.Builder builder) {
- builder.addConfigurationFragment(new PythonConfigurationLoader());
- builder.addConfigurationFragment(new BazelPythonConfiguration.Loader());
+ builder.addConfigurationFragment(PythonConfiguration.class);
+ builder.addConfigurationFragment(BazelPythonConfiguration.class);
builder.addRuleDefinition(new BazelPyRuleClasses.PyBaseRule());
builder.addRuleDefinition(new BazelPyRuleClasses.PyBinaryBaseRule());
diff --git a/src/main/java/com/google/devtools/build/lib/bazel/rules/CcRules.java b/src/main/java/com/google/devtools/build/lib/bazel/rules/CcRules.java
index e2a50c1..9e57c63 100644
--- a/src/main/java/com/google/devtools/build/lib/bazel/rules/CcRules.java
+++ b/src/main/java/com/google/devtools/build/lib/bazel/rules/CcRules.java
@@ -33,7 +33,7 @@
import com.google.devtools.build.lib.rules.cpp.CcToolchainRule;
import com.google.devtools.build.lib.rules.cpp.CcToolchainSuiteRule;
import com.google.devtools.build.lib.rules.cpp.CppBuildInfo;
-import com.google.devtools.build.lib.rules.cpp.CppConfigurationLoader;
+import com.google.devtools.build.lib.rules.cpp.CppConfiguration;
import com.google.devtools.build.lib.rules.cpp.CppRuleClasses.CcIncludeScanningRule;
import com.google.devtools.build.lib.rules.cpp.CppRuleClasses.CcLinkingRule;
import com.google.devtools.build.lib.rules.cpp.DebugPackageProvider;
@@ -60,7 +60,7 @@
@Override
public void init(ConfiguredRuleClassProvider.Builder builder) {
GraphNodeAspect graphNodeAspect = new GraphNodeAspect();
- builder.addConfigurationFragment(new CppConfigurationLoader());
+ builder.addConfigurationFragment(CppConfiguration.class);
builder.addBuildInfoFactory(new CppBuildInfo());
builder.addNativeAspectClass(graphNodeAspect);
diff --git a/src/main/java/com/google/devtools/build/lib/bazel/rules/JavaRules.java b/src/main/java/com/google/devtools/build/lib/bazel/rules/JavaRules.java
index f7b68f5..3c8627f 100644
--- a/src/main/java/com/google/devtools/build/lib/bazel/rules/JavaRules.java
+++ b/src/main/java/com/google/devtools/build/lib/bazel/rules/JavaRules.java
@@ -29,7 +29,7 @@
import com.google.devtools.build.lib.rules.extra.ActionListenerRule;
import com.google.devtools.build.lib.rules.extra.ExtraActionRule;
import com.google.devtools.build.lib.rules.java.JavaCcLinkParamsProvider;
-import com.google.devtools.build.lib.rules.java.JavaConfigurationLoader;
+import com.google.devtools.build.lib.rules.java.JavaConfiguration;
import com.google.devtools.build.lib.rules.java.JavaImportBaseRule;
import com.google.devtools.build.lib.rules.java.JavaInfo;
import com.google.devtools.build.lib.rules.java.JavaOptions;
@@ -62,7 +62,7 @@
@Override
public void init(ConfiguredRuleClassProvider.Builder builder) {
builder.addConfigurationOptions(JavaOptions.class);
- builder.addConfigurationFragment(new JavaConfigurationLoader());
+ builder.addConfigurationFragment(JavaConfiguration.class);
builder.addBuildInfoFactory(new BazelJavaBuildInfoFactory());
diff --git a/src/main/java/com/google/devtools/build/lib/bazel/rules/python/BazelPythonConfiguration.java b/src/main/java/com/google/devtools/build/lib/bazel/rules/python/BazelPythonConfiguration.java
index d5138c1..d4e5d2a 100644
--- a/src/main/java/com/google/devtools/build/lib/bazel/rules/python/BazelPythonConfiguration.java
+++ b/src/main/java/com/google/devtools/build/lib/bazel/rules/python/BazelPythonConfiguration.java
@@ -15,7 +15,6 @@
package com.google.devtools.build.lib.bazel.rules.python;
import com.google.devtools.build.lib.analysis.config.BuildOptions;
-import com.google.devtools.build.lib.analysis.config.ConfigurationFragmentFactory;
import com.google.devtools.build.lib.analysis.config.CoreOptionConverters.LabelConverter;
import com.google.devtools.build.lib.analysis.config.Fragment;
import com.google.devtools.build.lib.analysis.config.FragmentOptions;
@@ -102,16 +101,6 @@
}
}
- /**
- * Loader for the Bazel-specific Python configuration.
- */
- public static final class Loader implements ConfigurationFragmentFactory {
- @Override
- public Class<? extends Fragment> creates() {
- return BazelPythonConfiguration.class;
- }
- }
-
private final Options options;
public BazelPythonConfiguration(BuildOptions buildOptions) throws InvalidConfigurationException {
diff --git a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidConfiguration.java b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidConfiguration.java
index 8b1bce1..619cf1b 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidConfiguration.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidConfiguration.java
@@ -18,7 +18,6 @@
import com.google.devtools.build.lib.analysis.Allowlist;
import com.google.devtools.build.lib.analysis.RuleContext;
import com.google.devtools.build.lib.analysis.config.BuildOptions;
-import com.google.devtools.build.lib.analysis.config.ConfigurationFragmentFactory;
import com.google.devtools.build.lib.analysis.config.CoreOptionConverters.EmptyToNullLabelConverter;
import com.google.devtools.build.lib.analysis.config.CoreOptionConverters.LabelConverter;
import com.google.devtools.build.lib.analysis.config.Fragment;
@@ -951,14 +950,6 @@
}
}
- /** Configuration loader for the Android fragment. */
- public static class Loader implements ConfigurationFragmentFactory {
- @Override
- public Class<? extends Fragment> creates() {
- return AndroidConfiguration.class;
- }
- }
-
private final Label sdk;
private final String cpu;
private final ConfigurationDistinguisher configurationDistinguisher;
diff --git a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidLocalTestConfiguration.java b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidLocalTestConfiguration.java
index 1b72a0e..6e67b93 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidLocalTestConfiguration.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidLocalTestConfiguration.java
@@ -15,7 +15,6 @@
package com.google.devtools.build.lib.rules.android;
import com.google.devtools.build.lib.analysis.config.BuildOptions;
-import com.google.devtools.build.lib.analysis.config.ConfigurationFragmentFactory;
import com.google.devtools.build.lib.analysis.config.Fragment;
import com.google.devtools.build.lib.analysis.config.FragmentOptions;
import com.google.devtools.build.lib.analysis.config.RequiresOptions;
@@ -43,17 +42,6 @@
public boolean androidLocalTestBinaryResources;
}
- /**
- * Loader class for {@link
- * com.google.devtools.build.lib.rules.android.AndroidLocalTestConfiguration}.
- */
- public static final class Loader implements ConfigurationFragmentFactory {
- @Override
- public Class<? extends Fragment> creates() {
- return AndroidLocalTestConfiguration.class;
- }
- }
-
private final boolean androidLocalTestBinaryResources;
public AndroidLocalTestConfiguration(BuildOptions buildOptions) {
diff --git a/src/main/java/com/google/devtools/build/lib/rules/apple/AppleConfiguration.java b/src/main/java/com/google/devtools/build/lib/rules/apple/AppleConfiguration.java
index 94f0cd8..771aefb 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/apple/AppleConfiguration.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/apple/AppleConfiguration.java
@@ -21,7 +21,6 @@
import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableMap;
import com.google.devtools.build.lib.analysis.config.BuildOptions;
-import com.google.devtools.build.lib.analysis.config.ConfigurationFragmentFactory;
import com.google.devtools.build.lib.analysis.config.CoreOptions;
import com.google.devtools.build.lib.analysis.config.Fragment;
import com.google.devtools.build.lib.analysis.config.RequiresOptions;
@@ -465,16 +464,6 @@
}
/**
- * Loads {@link AppleConfiguration} from build options.
- */
- public static class Loader implements ConfigurationFragmentFactory {
- @Override
- public Class<? extends Fragment> creates() {
- return AppleConfiguration.class;
- }
- }
-
- /**
* Value used to avoid multiple configurations from conflicting. No two instances of this
* transition may exist with the same value in a single Bazel invocation.
*/
diff --git a/src/main/java/com/google/devtools/build/lib/rules/apple/swift/SwiftConfiguration.java b/src/main/java/com/google/devtools/build/lib/rules/apple/swift/SwiftConfiguration.java
index 9516e7a..cb70312 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/apple/swift/SwiftConfiguration.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/apple/swift/SwiftConfiguration.java
@@ -16,7 +16,6 @@
import com.google.common.collect.ImmutableList;
import com.google.devtools.build.lib.analysis.config.BuildOptions;
-import com.google.devtools.build.lib.analysis.config.ConfigurationFragmentFactory;
import com.google.devtools.build.lib.analysis.config.Fragment;
import com.google.devtools.build.lib.analysis.config.RequiresOptions;
import com.google.devtools.build.lib.concurrent.ThreadSafety.Immutable;
@@ -45,12 +44,4 @@
public ImmutableList<String> getCopts() {
return copts;
}
-
- /** Loads {@link SwiftConfiguration} from build options. */
- public static class Loader implements ConfigurationFragmentFactory {
- @Override
- public Class<? extends Fragment> creates() {
- return SwiftConfiguration.class;
- }
- }
}
diff --git a/src/main/java/com/google/devtools/build/lib/rules/config/ConfigFeatureFlagConfiguration.java b/src/main/java/com/google/devtools/build/lib/rules/config/ConfigFeatureFlagConfiguration.java
index 0e09701..c905c7e 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/config/ConfigFeatureFlagConfiguration.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/config/ConfigFeatureFlagConfiguration.java
@@ -20,7 +20,6 @@
import com.google.common.hash.Hashing;
import com.google.devtools.build.lib.actions.ArtifactOwner;
import com.google.devtools.build.lib.analysis.config.BuildOptions;
-import com.google.devtools.build.lib.analysis.config.ConfigurationFragmentFactory;
import com.google.devtools.build.lib.analysis.config.Fragment;
import com.google.devtools.build.lib.analysis.config.InvalidConfigurationException;
import com.google.devtools.build.lib.analysis.config.RequiresOptions;
@@ -36,17 +35,6 @@
*/
@RequiresOptions(options = {ConfigFeatureFlagOptions.class})
public final class ConfigFeatureFlagConfiguration extends Fragment {
- /**
- * A configuration fragment loader able to create instances of {@link
- * ConfigFeatureFlagConfiguration} from {@link ConfigFeatureFlagOptions}.
- */
- public static final class Loader implements ConfigurationFragmentFactory {
- @Override
- public Class<? extends Fragment> creates() {
- return ConfigFeatureFlagConfiguration.class;
- }
- }
-
private final ImmutableSortedMap<Label, String> flagValues;
@Nullable private final String flagHash;
diff --git a/src/main/java/com/google/devtools/build/lib/rules/config/ConfigRules.java b/src/main/java/com/google/devtools/build/lib/rules/config/ConfigRules.java
index 50ec64d..7989a2f 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/config/ConfigRules.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/config/ConfigRules.java
@@ -45,7 +45,7 @@
builder.addRuleDefinition(new ConfigRuleClasses.ConfigBaseRule());
builder.addRuleDefinition(new ConfigRuleClasses.ConfigSettingRule());
- builder.addConfigurationFragment(new ConfigFeatureFlagConfiguration.Loader());
+ builder.addConfigurationFragment(ConfigFeatureFlagConfiguration.class);
builder.addRuleDefinition(new ConfigRuleClasses.ConfigFeatureFlagRule());
builder.addStarlarkBootstrap(
diff --git a/src/main/java/com/google/devtools/build/lib/rules/core/CoreRules.java b/src/main/java/com/google/devtools/build/lib/rules/core/CoreRules.java
index 85ff748..8caec8f 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/core/CoreRules.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/core/CoreRules.java
@@ -32,7 +32,7 @@
public void init(ConfiguredRuleClassProvider.Builder builder) {
builder.setShouldInvalidateCacheForOptionDiff(
TestConfiguration.SHOULD_INVALIDATE_FOR_OPTION_DIFF);
- builder.addConfigurationFragment(new TestConfiguration.Loader());
+ builder.addConfigurationFragment(TestConfiguration.class);
builder.addTrimmingTransitionFactory(new TestTrimmingTransitionFactory());
builder.addRuleDefinition(new BaseRuleClasses.RootRule());
builder.addRuleDefinition(new BaseRuleClasses.BaseRule());
diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/CcToolchainSuite.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/CcToolchainSuite.java
index 5ddec98..4053977 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/cpp/CcToolchainSuite.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/CcToolchainSuite.java
@@ -34,8 +34,8 @@
* Implementation of the {@code cc_toolchain_suite} rule.
*
* <p>This is currently a no-op because the logic that transforms this rule into something that can
- * be understood by the {@code cc_*} rules is in
- * {@link com.google.devtools.build.lib.rules.cpp.CppConfigurationLoader}.
+ * be understood by the {@code cc_*} rules is in {@link
+ * com.google.devtools.build.lib.rules.cpp.CppConfiguration}.
*/
public class CcToolchainSuite implements RuleConfiguredTargetFactory {
diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/CppConfigurationLoader.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/CppConfigurationLoader.java
deleted file mode 100644
index 0c7782f..0000000
--- a/src/main/java/com/google/devtools/build/lib/rules/cpp/CppConfigurationLoader.java
+++ /dev/null
@@ -1,31 +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.rules.cpp;
-
-import com.google.devtools.build.lib.analysis.config.ConfigurationFragmentFactory;
-import com.google.devtools.build.lib.analysis.config.Fragment;
-
-/**
- * Loader for C++ configurations.
- */
-public class CppConfigurationLoader implements ConfigurationFragmentFactory {
- @Override
- public Class<? extends Fragment> creates() {
- return CppConfiguration.class;
- }
-
- /** Creates a new {@link CppConfigurationLoader} instance. */
- public CppConfigurationLoader() {}
-}
diff --git a/src/main/java/com/google/devtools/build/lib/rules/genquery/GenQueryConfiguration.java b/src/main/java/com/google/devtools/build/lib/rules/genquery/GenQueryConfiguration.java
index b4207c8..17c6781 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/genquery/GenQueryConfiguration.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/genquery/GenQueryConfiguration.java
@@ -15,7 +15,6 @@
package com.google.devtools.build.lib.rules.genquery;
import com.google.devtools.build.lib.analysis.config.BuildOptions;
-import com.google.devtools.build.lib.analysis.config.ConfigurationFragmentFactory;
import com.google.devtools.build.lib.analysis.config.Fragment;
import com.google.devtools.build.lib.analysis.config.FragmentOptions;
import com.google.devtools.build.lib.analysis.config.RequiresOptions;
@@ -40,13 +39,6 @@
public boolean compressInMemoryResults;
}
- static class Loader implements ConfigurationFragmentFactory {
- @Override
- public Class<? extends Fragment> creates() {
- return GenQueryConfiguration.class;
- }
- }
-
private final boolean inMemoryCompressionEnabled;
public GenQueryConfiguration(BuildOptions buildOptions) {
diff --git a/src/main/java/com/google/devtools/build/lib/rules/genquery/GenQueryRule.java b/src/main/java/com/google/devtools/build/lib/rules/genquery/GenQueryRule.java
index 590b049..0b84c68 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/genquery/GenQueryRule.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/genquery/GenQueryRule.java
@@ -33,7 +33,7 @@
/** Adds {@link GenQueryRule} and its dependencies to the provided builder. */
public static void register(ConfiguredRuleClassProvider.Builder builder) {
- builder.addConfigurationFragment(new GenQueryConfiguration.Loader());
+ builder.addConfigurationFragment(GenQueryConfiguration.class);
builder.addRuleDefinition(new GenQueryRule());
}
diff --git a/src/main/java/com/google/devtools/build/lib/rules/java/BUILD b/src/main/java/com/google/devtools/build/lib/rules/java/BUILD
index 93e2ba9..7835f00 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/java/BUILD
+++ b/src/main/java/com/google/devtools/build/lib/rules/java/BUILD
@@ -14,7 +14,6 @@
"GenericBuildInfoPropertiesTranslator.java",
"JavaBinary.java",
"JavaCcLinkParamsProvider.java",
- "JavaConfigurationLoader.java",
"JavaImport.java",
"JavaImportBaseRule.java",
"JavaInfo.java",
diff --git a/src/main/java/com/google/devtools/build/lib/rules/java/JavaConfigurationLoader.java b/src/main/java/com/google/devtools/build/lib/rules/java/JavaConfigurationLoader.java
deleted file mode 100644
index e256bbc..0000000
--- a/src/main/java/com/google/devtools/build/lib/rules/java/JavaConfigurationLoader.java
+++ /dev/null
@@ -1,28 +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.rules.java;
-
-import com.google.devtools.build.lib.analysis.config.ConfigurationFragmentFactory;
-import com.google.devtools.build.lib.analysis.config.Fragment;
-
-/**
- * A loader that creates JavaConfiguration instances based on JavaBuilder configurations and
- * command-line options.
- */
-public class JavaConfigurationLoader implements ConfigurationFragmentFactory {
- @Override
- public Class<? extends Fragment> creates() {
- return JavaConfiguration.class;
- }
-}
diff --git a/src/main/java/com/google/devtools/build/lib/rules/objc/AbstractObjcRuleSet.java b/src/main/java/com/google/devtools/build/lib/rules/objc/AbstractObjcRuleSet.java
index fb69429..bfa8da8 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/objc/AbstractObjcRuleSet.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/objc/AbstractObjcRuleSet.java
@@ -43,11 +43,11 @@
builder.addBuildInfoFactory(new ObjcBuildInfoFactory());
- builder.addConfigurationFragment(new ObjcConfigurationLoader());
- builder.addConfigurationFragment(new AppleConfiguration.Loader());
- builder.addConfigurationFragment(new SwiftConfiguration.Loader());
+ builder.addConfigurationFragment(ObjcConfiguration.class);
+ builder.addConfigurationFragment(AppleConfiguration.class);
+ builder.addConfigurationFragment(SwiftConfiguration.class);
// j2objc shouldn't be here!
- builder.addConfigurationFragment(new J2ObjcConfiguration.Loader());
+ builder.addConfigurationFragment(J2ObjcConfiguration.class);
builder.addNativeAspectClass(objcProtoAspect);
builder.addRuleDefinition(new AppleBinaryRule(objcProtoAspect));
diff --git a/src/main/java/com/google/devtools/build/lib/rules/objc/J2ObjcConfiguration.java b/src/main/java/com/google/devtools/build/lib/rules/objc/J2ObjcConfiguration.java
index 5cb50c4..12b7016 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/objc/J2ObjcConfiguration.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/objc/J2ObjcConfiguration.java
@@ -17,7 +17,6 @@
import com.google.common.base.Joiner;
import com.google.common.collect.ImmutableList;
import com.google.devtools.build.lib.analysis.config.BuildOptions;
-import com.google.devtools.build.lib.analysis.config.ConfigurationFragmentFactory;
import com.google.devtools.build.lib.analysis.config.Fragment;
import com.google.devtools.build.lib.analysis.config.RequiresOptions;
import com.google.devtools.build.lib.analysis.starlark.annotations.StarlarkConfigurationField;
@@ -66,16 +65,6 @@
static final String INVALID_TRANSLATION_FLAGS_MSG_TEMPLATE =
"J2Objc translation flags: %s not supported. Unsupported flags are: %s";
- /**
- * Configuration loader for {@link J2ObjcConfiguration}.
- */
- public static class Loader implements ConfigurationFragmentFactory {
- @Override
- public Class<? extends Fragment> creates() {
- return J2ObjcConfiguration.class;
- }
- }
-
private final ImmutableList<String> translationFlags;
private final boolean removeDeadCode;
private final boolean experimentalJ2ObjcHeaderMap;
diff --git a/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcConfigurationLoader.java b/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcConfigurationLoader.java
deleted file mode 100644
index ca4b691..0000000
--- a/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcConfigurationLoader.java
+++ /dev/null
@@ -1,29 +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.rules.objc;
-
-import com.google.devtools.build.lib.analysis.config.ConfigurationFragmentFactory;
-import com.google.devtools.build.lib.analysis.config.Fragment;
-
-/**
- * A loader that creates ObjcConfiguration instances based on Objective-C configurations and
- * command-line options.
- */
-public class ObjcConfigurationLoader implements ConfigurationFragmentFactory {
- @Override
- public Class<? extends Fragment> creates() {
- return ObjcConfiguration.class;
- }
-}
diff --git a/src/main/java/com/google/devtools/build/lib/rules/platform/BUILD b/src/main/java/com/google/devtools/build/lib/rules/platform/BUILD
index 45f58bc..a759841 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/platform/BUILD
+++ b/src/main/java/com/google/devtools/build/lib/rules/platform/BUILD
@@ -22,7 +22,6 @@
"//src/main/java/com/google/devtools/build/lib/analysis:config/config_matching_provider",
"//src/main/java/com/google/devtools/build/lib/analysis:configured_target",
"//src/main/java/com/google/devtools/build/lib/analysis:file_provider",
- "//src/main/java/com/google/devtools/build/lib/analysis:platform_configuration_loader",
"//src/main/java/com/google/devtools/build/lib/analysis:platform_options",
"//src/main/java/com/google/devtools/build/lib/analysis:rule_definition_environment",
"//src/main/java/com/google/devtools/build/lib/analysis:template_variable_info",
diff --git a/src/main/java/com/google/devtools/build/lib/rules/platform/PlatformRules.java b/src/main/java/com/google/devtools/build/lib/rules/platform/PlatformRules.java
index 427c1d0..d0f5b145 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/platform/PlatformRules.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/platform/PlatformRules.java
@@ -16,7 +16,7 @@
import com.google.common.collect.ImmutableList;
import com.google.devtools.build.lib.analysis.ConfiguredRuleClassProvider;
import com.google.devtools.build.lib.analysis.ConfiguredRuleClassProvider.RuleSet;
-import com.google.devtools.build.lib.analysis.PlatformConfigurationLoader;
+import com.google.devtools.build.lib.analysis.PlatformConfiguration;
import com.google.devtools.build.lib.analysis.PlatformOptions;
import com.google.devtools.build.lib.rules.core.CoreRules;
import com.google.devtools.build.lib.starlarkbuildapi.platform.PlatformBootstrap;
@@ -34,7 +34,7 @@
@Override
public void init(ConfiguredRuleClassProvider.Builder builder) {
builder.addConfigurationOptions(PlatformOptions.class);
- builder.addConfigurationFragment(new PlatformConfigurationLoader());
+ builder.addConfigurationFragment(PlatformConfiguration.class);
builder.addRuleDefinition(new PlatformBaseRule());
builder.addRuleDefinition(new ConstraintSettingRule());
diff --git a/src/main/java/com/google/devtools/build/lib/rules/proto/ProtoConfiguration.java b/src/main/java/com/google/devtools/build/lib/rules/proto/ProtoConfiguration.java
index 4da8c73..6965865 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/proto/ProtoConfiguration.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/proto/ProtoConfiguration.java
@@ -16,7 +16,6 @@
import com.google.common.collect.ImmutableList;
import com.google.devtools.build.lib.analysis.config.BuildOptions;
-import com.google.devtools.build.lib.analysis.config.ConfigurationFragmentFactory;
import com.google.devtools.build.lib.analysis.config.CoreOptionConverters;
import com.google.devtools.build.lib.analysis.config.CoreOptionConverters.StrictDepsMode;
import com.google.devtools.build.lib.analysis.config.Fragment;
@@ -192,16 +191,6 @@
}
}
- /**
- * Loader class for proto.
- */
- public static class Loader implements ConfigurationFragmentFactory {
- @Override
- public Class<? extends Fragment> creates() {
- return ProtoConfiguration.class;
- }
- }
-
private final ImmutableList<String> protocOpts;
private final ImmutableList<String> ccProtoLibraryHeaderSuffixes;
private final ImmutableList<String> ccProtoLibrarySourceSuffixes;
diff --git a/src/main/java/com/google/devtools/build/lib/rules/python/PythonConfigurationLoader.java b/src/main/java/com/google/devtools/build/lib/rules/python/PythonConfigurationLoader.java
deleted file mode 100644
index f1a3f33..0000000
--- a/src/main/java/com/google/devtools/build/lib/rules/python/PythonConfigurationLoader.java
+++ /dev/null
@@ -1,28 +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.rules.python;
-
-import com.google.devtools.build.lib.analysis.config.ConfigurationFragmentFactory;
-import com.google.devtools.build.lib.analysis.config.Fragment;
-
-/**
- * A factory implementation for {@link PythonConfiguration} objects.
- */
-public class PythonConfigurationLoader implements ConfigurationFragmentFactory {
- @Override
- public Class<? extends Fragment> creates() {
- return PythonConfiguration.class;
- }
-}
-
diff --git a/src/main/java/com/google/devtools/build/lib/runtime/commands/ConfigCommand.java b/src/main/java/com/google/devtools/build/lib/runtime/commands/ConfigCommand.java
index c270e35..5d19254 100644
--- a/src/main/java/com/google/devtools/build/lib/runtime/commands/ConfigCommand.java
+++ b/src/main/java/com/google/devtools/build/lib/runtime/commands/ConfigCommand.java
@@ -31,7 +31,6 @@
import com.google.common.collect.Table;
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.ConfigurationFragmentFactory;
import com.google.devtools.build.lib.analysis.config.CoreOptions;
import com.google.devtools.build.lib.analysis.config.Fragment;
import com.google.devtools.build.lib.analysis.config.FragmentOptions;
@@ -379,12 +378,11 @@
ImmutableSortedMap.Builder<
Class<? extends Fragment>, ImmutableSortedSet<Class<? extends FragmentOptions>>>
fragments = ImmutableSortedMap.orderedBy((c1, c2) -> c1.getName().compareTo(c2.getName()));
- for (ConfigurationFragmentFactory fragmentFactory :
- ruleClassProvider.getConfigurationFragments()) {
+ for (Class<? extends Fragment> fragmentClass : ruleClassProvider.getConfigurationFragments()) {
fragments.put(
- fragmentFactory.creates(),
+ fragmentClass,
ImmutableSortedSet.copyOf(
- comparing(Class::getName), Fragment.requiredOptions(fragmentFactory.creates())));
+ comparing(Class::getName), Fragment.requiredOptions(fragmentClass)));
}
return fragments.build();
}
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/BuildConfigurationFunction.java b/src/main/java/com/google/devtools/build/lib/skyframe/BuildConfigurationFunction.java
index 9a8dde2..be80666 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/BuildConfigurationFunction.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/BuildConfigurationFunction.java
@@ -28,7 +28,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.BuildOptions;
-import com.google.devtools.build.lib.analysis.config.ConfigurationFragmentFactory;
import com.google.devtools.build.lib.analysis.config.Fragment;
import com.google.devtools.build.lib.analysis.config.InvalidConfigurationException;
import com.google.devtools.build.lib.analysis.config.OutputDirectories.InvalidMnemonicException;
@@ -168,7 +167,7 @@
private Fragment makeFragment(FragmentKey fragmentKey) throws InvalidConfigurationException {
BuildOptions buildOptions = fragmentKey.getBuildOptions();
- Class<? extends Fragment> fragmentClass = getFactory(fragmentKey.getFragmentClass()).creates();
+ Class<? extends Fragment> fragmentClass = fragmentKey.getFragmentClass();
String noConstructorPattern = "%s lacks constructor(BuildOptions)";
try {
Fragment fragment =
@@ -184,16 +183,6 @@
}
}
- private ConfigurationFragmentFactory getFactory(Class<? extends Fragment> fragmentType) {
- for (ConfigurationFragmentFactory factory : ruleClassProvider.getConfigurationFragments()) {
- if (factory.creates().equals(fragmentType)) {
- return factory;
- }
- }
- throw new IllegalStateException(
- "There is no factory for fragment: " + fragmentType.getSimpleName());
- }
-
@Override
public String extractTag(SkyKey skyKey) {
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 91f0ae3..2c08e91 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
@@ -1931,7 +1931,6 @@
// TODO(gregce): support trimmed configs.
ImmutableSortedSet<Class<? extends Fragment>> allFragments =
ruleClassProvider.getConfigurationFragments().stream()
- .map(factory -> factory.creates())
.collect(
ImmutableSortedSet.toImmutableSortedSet(BuildConfiguration.lexicalFragmentSorter));
@@ -2918,7 +2917,6 @@
FragmentClassSet allFragments =
FragmentClassSet.of(
ruleClassProvider.getConfigurationFragments().stream()
- .map(factory -> factory.creates())
.collect(
ImmutableSortedSet.toImmutableSortedSet(
BuildConfiguration.lexicalFragmentSorter)));
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/TransitiveTargetFunction.java b/src/main/java/com/google/devtools/build/lib/skyframe/TransitiveTargetFunction.java
index 8b393e5..871a41e 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/TransitiveTargetFunction.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/TransitiveTargetFunction.java
@@ -16,7 +16,6 @@
import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableSet;
import com.google.devtools.build.lib.analysis.ConfiguredRuleClassProvider;
-import com.google.devtools.build.lib.analysis.config.ConfigurationFragmentFactory;
import com.google.devtools.build.lib.analysis.config.Fragment;
import com.google.devtools.build.lib.cmdline.Label;
import com.google.devtools.build.lib.collect.nestedset.NestedSet;
@@ -138,8 +137,7 @@
// Declared by the rule class:
ConfigurationFragmentPolicy configurationFragmentPolicy =
rule.getRuleClassObject().getConfigurationFragmentPolicy();
- for (ConfigurationFragmentFactory factory : ruleClassProvider.getConfigurationFragments()) {
- Class<? extends Fragment> fragment = factory.creates();
+ for (Class<? extends Fragment> fragment : ruleClassProvider.getConfigurationFragments()) {
// isLegalConfigurationFragment considers both natively declared fragments and Starlark
// (named) fragments.
if (configurationFragmentPolicy.isLegalConfigurationFragment(fragment)) {
diff --git a/src/test/java/com/google/devtools/build/lib/analysis/AnalysisCachingTest.java b/src/test/java/com/google/devtools/build/lib/analysis/AnalysisCachingTest.java
index b24fee5..1df1997 100644
--- a/src/test/java/com/google/devtools/build/lib/analysis/AnalysisCachingTest.java
+++ b/src/test/java/com/google/devtools/build/lib/analysis/AnalysisCachingTest.java
@@ -24,7 +24,6 @@
import com.google.devtools.build.lib.actions.Action;
import com.google.devtools.build.lib.analysis.config.BuildOptions;
import com.google.devtools.build.lib.analysis.config.BuildOptionsView;
-import com.google.devtools.build.lib.analysis.config.ConfigurationFragmentFactory;
import com.google.devtools.build.lib.analysis.config.Fragment;
import com.google.devtools.build.lib.analysis.config.FragmentOptions;
import com.google.devtools.build.lib.analysis.config.RequiresOptions;
@@ -617,20 +616,13 @@
public DiffResetFragment(BuildOptions buildOptions) {}
}
- private static final class DiffResetFactory implements ConfigurationFragmentFactory {
- @Override
- public Class<? extends Fragment> creates() {
- return DiffResetFragment.class;
- }
- }
-
private void setupDiffResetTesting() throws Exception {
ImmutableSet<OptionDefinition> optionsThatCanChange =
ImmutableSet.of(
DiffResetOptions.PROBABLY_IRRELEVANT_OPTION, DiffResetOptions.ALSO_IRRELEVANT_OPTION);
ConfiguredRuleClassProvider.Builder builder = new ConfiguredRuleClassProvider.Builder();
TestRuleClassProvider.addStandardRules(builder);
- builder.addConfigurationFragment(new DiffResetFactory());
+ builder.addConfigurationFragment(DiffResetFragment.class);
builder.overrideShouldInvalidateCacheForOptionDiffForTesting(
(newOptions, changedOption, oldValue, newValue) -> {
return !optionsThatCanChange.contains(changedOption);
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 f3769e6..3dd8011 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
@@ -88,7 +88,7 @@
ConfiguredRuleClassProvider.Builder builder = new ConfiguredRuleClassProvider.Builder();
TestRuleClassProvider.addStandardRules(builder);
builder.addRuleDefinition(LateBoundSplitUtil.RULE_WITH_TEST_FRAGMENT);
- builder.addConfigurationFragment(new LateBoundSplitUtil.FragmentLoader());
+ builder.addConfigurationFragment(LateBoundSplitUtil.TestFragment.class);
builder.addConfigurationOptions(LateBoundSplitUtil.TestOptions.class);
builder.addRuleDefinition(LATE_BOUND_DEP_RULE);
useRuleClassProvider(builder.build());
diff --git a/src/test/java/com/google/devtools/build/lib/analysis/LateBoundSplitUtil.java b/src/test/java/com/google/devtools/build/lib/analysis/LateBoundSplitUtil.java
index 2886c3c..4422aeb 100644
--- a/src/test/java/com/google/devtools/build/lib/analysis/LateBoundSplitUtil.java
+++ b/src/test/java/com/google/devtools/build/lib/analysis/LateBoundSplitUtil.java
@@ -17,7 +17,6 @@
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.ConfigurationFragmentFactory;
import com.google.devtools.build.lib.analysis.config.Fragment;
import com.google.devtools.build.lib.analysis.config.FragmentOptions;
import com.google.devtools.build.lib.analysis.config.RequiresOptions;
@@ -59,16 +58,6 @@
}
/**
- * The fragment's loader.
- */
- static class FragmentLoader implements ConfigurationFragmentFactory {
- @Override
- public Class<? extends Fragment> creates() {
- return TestFragment.class;
- }
- }
-
- /**
* A custom rule that requires {@link TestFragment}.
*/
static final RuleDefinition RULE_WITH_TEST_FRAGMENT = (MockRule) () -> MockRule.define(
@@ -82,7 +71,7 @@
ConfiguredRuleClassProvider.Builder builder = new ConfiguredRuleClassProvider.Builder();
TestRuleClassProvider.addStandardRules(builder);
builder.addRuleDefinition(RULE_WITH_TEST_FRAGMENT);
- builder.addConfigurationFragment(new FragmentLoader());
+ builder.addConfigurationFragment(TestFragment.class);
builder.addConfigurationOptions(TestOptions.class);
return builder.build();
}
diff --git a/src/test/java/com/google/devtools/build/lib/analysis/StarlarkAttrTransitionProviderTest.java b/src/test/java/com/google/devtools/build/lib/analysis/StarlarkAttrTransitionProviderTest.java
index 70aa7e0..c0ee949 100644
--- a/src/test/java/com/google/devtools/build/lib/analysis/StarlarkAttrTransitionProviderTest.java
+++ b/src/test/java/com/google/devtools/build/lib/analysis/StarlarkAttrTransitionProviderTest.java
@@ -24,7 +24,7 @@
import com.google.common.collect.ListMultimap;
import com.google.common.collect.Maps;
import com.google.common.eventbus.EventBus;
-import com.google.devtools.build.lib.analysis.StarlarkRuleTransitionProviderTest.DummyTestLoader;
+import com.google.devtools.build.lib.analysis.StarlarkRuleTransitionProviderTest.DummyTestFragment;
import com.google.devtools.build.lib.analysis.config.CoreOptions;
import com.google.devtools.build.lib.analysis.config.transitions.ConfigurationTransition;
import com.google.devtools.build.lib.analysis.starlark.FunctionTransitionUtil;
@@ -60,7 +60,7 @@
protected ConfiguredRuleClassProvider createRuleClassProvider() {
ConfiguredRuleClassProvider.Builder builder = new ConfiguredRuleClassProvider.Builder();
TestRuleClassProvider.addStandardRules(builder);
- builder.addConfigurationFragment(new DummyTestLoader());
+ builder.addConfigurationFragment(DummyTestFragment.class);
return builder.build();
}
diff --git a/src/test/java/com/google/devtools/build/lib/analysis/StarlarkRuleTransitionProviderTest.java b/src/test/java/com/google/devtools/build/lib/analysis/StarlarkRuleTransitionProviderTest.java
index f34ff27..97cbb46 100644
--- a/src/test/java/com/google/devtools/build/lib/analysis/StarlarkRuleTransitionProviderTest.java
+++ b/src/test/java/com/google/devtools/build/lib/analysis/StarlarkRuleTransitionProviderTest.java
@@ -18,7 +18,6 @@
import com.google.common.collect.ImmutableMap;
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.ConfigurationFragmentFactory;
import com.google.devtools.build.lib.analysis.config.CoreOptionConverters.EmptyToNullLabelConverter;
import com.google.devtools.build.lib.analysis.config.Fragment;
import com.google.devtools.build.lib.analysis.config.FragmentOptions;
@@ -86,19 +85,11 @@
public boolean bool;
}
- /** Loads a new {link @DummyTestFragment} instance. */
- protected static class DummyTestLoader implements ConfigurationFragmentFactory {
- @Override
- public Class<? extends Fragment> creates() {
- return DummyTestFragment.class;
- }
- }
-
@Override
protected ConfiguredRuleClassProvider createRuleClassProvider() {
ConfiguredRuleClassProvider.Builder builder = new ConfiguredRuleClassProvider.Builder();
TestRuleClassProvider.addStandardRules(builder);
- builder.addConfigurationFragment(new DummyTestLoader());
+ builder.addConfigurationFragment(DummyTestFragment.class);
return builder.build();
}
diff --git a/src/test/java/com/google/devtools/build/lib/analysis/mock/BUILD b/src/test/java/com/google/devtools/build/lib/analysis/mock/BUILD
index df01d84..8e8bdc8 100644
--- a/src/test/java/com/google/devtools/build/lib/analysis/mock/BUILD
+++ b/src/test/java/com/google/devtools/build/lib/analysis/mock/BUILD
@@ -27,21 +27,9 @@
],
deps = [
"//src/main/java/com/google/devtools/build/lib/analysis:analysis_cluster",
- "//src/main/java/com/google/devtools/build/lib/analysis:config/fragment_provider",
- "//src/main/java/com/google/devtools/build/lib/analysis:platform_configuration_loader",
"//src/main/java/com/google/devtools/build/lib/bazel/repository",
"//src/main/java/com/google/devtools/build/lib/bazel/rules",
- "//src/main/java/com/google/devtools/build/lib/bazel/rules/python",
"//src/main/java/com/google/devtools/build/lib/rules:repository/repository_function",
- "//src/main/java/com/google/devtools/build/lib/rules/android",
- "//src/main/java/com/google/devtools/build/lib/rules/apple",
- "//src/main/java/com/google/devtools/build/lib/rules/apple/swift",
- "//src/main/java/com/google/devtools/build/lib/rules/config",
- "//src/main/java/com/google/devtools/build/lib/rules/cpp",
- "//src/main/java/com/google/devtools/build/lib/rules/java:java-rules",
- "//src/main/java/com/google/devtools/build/lib/rules/objc",
- "//src/main/java/com/google/devtools/build/lib/rules/proto",
- "//src/main/java/com/google/devtools/build/lib/rules/python",
"//src/main/java/com/google/devtools/build/lib/vfs",
"//src/test/java/com/google/devtools/build/lib/analysis/util:util_internal",
"//src/test/java/com/google/devtools/build/lib/packages:testutil",
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 64694ac..0d86709 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
@@ -20,30 +20,17 @@
import com.google.common.collect.Iterables;
import com.google.common.io.MoreFiles;
import com.google.devtools.build.lib.analysis.ConfiguredRuleClassProvider;
-import com.google.devtools.build.lib.analysis.PlatformConfigurationLoader;
import com.google.devtools.build.lib.analysis.ShellConfiguration;
-import com.google.devtools.build.lib.analysis.config.ConfigurationFragmentFactory;
import com.google.devtools.build.lib.analysis.util.AnalysisMock;
import com.google.devtools.build.lib.bazel.repository.LocalConfigPlatformFunction;
import com.google.devtools.build.lib.bazel.repository.LocalConfigPlatformRule;
import com.google.devtools.build.lib.bazel.rules.BazelRuleClassProvider;
-import com.google.devtools.build.lib.bazel.rules.python.BazelPythonConfiguration;
import com.google.devtools.build.lib.packages.util.BazelMockCcSupport;
import com.google.devtools.build.lib.packages.util.BazelMockPythonSupport;
import com.google.devtools.build.lib.packages.util.MockCcSupport;
import com.google.devtools.build.lib.packages.util.MockPlatformSupport;
import com.google.devtools.build.lib.packages.util.MockPythonSupport;
import com.google.devtools.build.lib.packages.util.MockToolsConfig;
-import com.google.devtools.build.lib.rules.android.AndroidConfiguration;
-import com.google.devtools.build.lib.rules.apple.AppleConfiguration;
-import com.google.devtools.build.lib.rules.apple.swift.SwiftConfiguration;
-import com.google.devtools.build.lib.rules.config.ConfigFeatureFlagConfiguration;
-import com.google.devtools.build.lib.rules.cpp.CppConfigurationLoader;
-import com.google.devtools.build.lib.rules.java.JavaConfigurationLoader;
-import com.google.devtools.build.lib.rules.objc.J2ObjcConfiguration;
-import com.google.devtools.build.lib.rules.objc.ObjcConfigurationLoader;
-import com.google.devtools.build.lib.rules.proto.ProtoConfiguration;
-import com.google.devtools.build.lib.rules.python.PythonConfigurationLoader;
import com.google.devtools.build.lib.rules.repository.RepositoryFunction;
import com.google.devtools.build.lib.testutil.TestRuleClassProvider;
import com.google.devtools.build.lib.vfs.FileSystemUtils;
@@ -451,24 +438,6 @@
}
@Override
- public List<ConfigurationFragmentFactory> getDefaultConfigurationFragmentFactories() {
- return ImmutableList.of(
- new CppConfigurationLoader(),
- new ShellConfiguration.Loader(),
- new PythonConfigurationLoader(),
- new BazelPythonConfiguration.Loader(),
- new JavaConfigurationLoader(),
- new ObjcConfigurationLoader(),
- new AppleConfiguration.Loader(),
- new SwiftConfiguration.Loader(),
- new J2ObjcConfiguration.Loader(),
- new ProtoConfiguration.Loader(),
- new ConfigFeatureFlagConfiguration.Loader(),
- new AndroidConfiguration.Loader(),
- new PlatformConfigurationLoader());
- }
-
- @Override
public ConfiguredRuleClassProvider createRuleClassProvider() {
return TestRuleClassProvider.getRuleClassProvider(true);
}
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 a386679..ed333f2 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.BlazeDirectories;
import com.google.devtools.build.lib.analysis.ConfiguredRuleClassProvider;
-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;
import com.google.devtools.build.lib.bazel.rules.android.AndroidSdkRepositoryFunction;
@@ -103,9 +102,6 @@
// Do nothing by default.
}
- /** Returns the default factories for configuration fragments used in tests. */
- public abstract List<ConfigurationFragmentFactory> getDefaultConfigurationFragmentFactories();
-
@Override
public abstract ConfiguredRuleClassProvider createRuleClassProvider();
@@ -179,11 +175,6 @@
}
@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 5b87ff9..ae61bb3 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
@@ -43,7 +43,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.ConfigurationFragmentFactory;
import com.google.devtools.build.lib.analysis.config.InvalidConfigurationException;
import com.google.devtools.build.lib.analysis.configuredtargets.InputFileConfiguredTarget;
import com.google.devtools.build.lib.analysis.starlark.StarlarkTransition;
@@ -655,17 +654,4 @@
useRuleClassProvider(builder.build());
update();
}
-
- /**
- * Makes custom configuration fragments available in tests.
- */
- protected final void setConfigFragmentsAvailableInTests(
- ConfigurationFragmentFactory... factories) throws Exception {
- ConfiguredRuleClassProvider.Builder builder = new ConfiguredRuleClassProvider.Builder();
- TestRuleClassProvider.addStandardRules(builder);
- for (ConfigurationFragmentFactory factory : factories) {
- builder.addConfigurationFragment(factory);
- }
- useRuleClassProvider(builder.build());
- }
}
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 36604f8..30448f1 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,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.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.clock.BlazeClock;
@@ -86,7 +85,6 @@
protected Path workspace;
protected AnalysisMock analysisMock;
protected SequencedSkyframeExecutor skyframeExecutor;
- protected List<ConfigurationFragmentFactory> configurationFragmentFactories;
protected ImmutableList<Class<? extends FragmentOptions>> buildOptionClasses;
protected final ActionKeyContext actionKeyContext = new ActionKeyContext();
@@ -179,7 +177,6 @@
mockToolsConfig = new MockToolsConfig(rootDirectory);
analysisMock.setupMockClient(mockToolsConfig);
analysisMock.setupMockWorkspaceFiles(directories.getEmbeddedBinariesRoot());
- configurationFragmentFactories = analysisMock.getDefaultConfigurationFragmentFactories();
buildOptionClasses = ruleClassProvider.getConfigurationOptions();
}
diff --git a/src/test/java/com/google/devtools/build/lib/bazel/rules/BazelRuleClassProviderTest.java b/src/test/java/com/google/devtools/build/lib/bazel/rules/BazelRuleClassProviderTest.java
index 366a09c..fc54f4b 100644
--- a/src/test/java/com/google/devtools/build/lib/bazel/rules/BazelRuleClassProviderTest.java
+++ b/src/test/java/com/google/devtools/build/lib/bazel/rules/BazelRuleClassProviderTest.java
@@ -25,7 +25,6 @@
import com.google.devtools.build.lib.analysis.ConfiguredRuleClassProvider.RuleSet;
import com.google.devtools.build.lib.analysis.ShellConfiguration;
import com.google.devtools.build.lib.analysis.config.BuildOptions;
-import com.google.devtools.build.lib.analysis.config.ConfigurationFragmentFactory;
import com.google.devtools.build.lib.analysis.config.CoreOptions;
import com.google.devtools.build.lib.analysis.config.Fragment;
import com.google.devtools.build.lib.analysis.config.FragmentOptions;
@@ -60,12 +59,11 @@
}
List<Class<? extends FragmentOptions>> configOptions = provider.getConfigurationOptions();
- for (ConfigurationFragmentFactory fragmentFactory : provider.getConfigurationFragments()) {
+ for (Class<? extends Fragment> fragmentClass : provider.getConfigurationFragments()) {
// Check that every created fragment is present.
- assertThat(configurationFragments).contains(fragmentFactory.creates());
+ assertThat(configurationFragments).contains(fragmentClass);
// Check that every options class required for fragment creation is provided.
- for (Class<? extends FragmentOptions> options :
- Fragment.requiredOptions(fragmentFactory.creates())) {
+ for (Class<? extends FragmentOptions> options : Fragment.requiredOptions(fragmentClass)) {
assertThat(configOptions).contains(options);
}
}
diff --git a/src/test/java/com/google/devtools/build/lib/rules/LateBoundAliasTest.java b/src/test/java/com/google/devtools/build/lib/rules/LateBoundAliasTest.java
index 9a32796..0436ac0 100644
--- a/src/test/java/com/google/devtools/build/lib/rules/LateBoundAliasTest.java
+++ b/src/test/java/com/google/devtools/build/lib/rules/LateBoundAliasTest.java
@@ -19,7 +19,6 @@
import com.google.devtools.build.lib.analysis.ConfiguredRuleClassProvider;
import com.google.devtools.build.lib.analysis.ConfiguredTarget;
import com.google.devtools.build.lib.analysis.config.BuildOptions;
-import com.google.devtools.build.lib.analysis.config.ConfigurationFragmentFactory;
import com.google.devtools.build.lib.analysis.config.Fragment;
import com.google.devtools.build.lib.analysis.util.BuildViewTestCase;
import com.google.devtools.build.lib.cmdline.Label;
@@ -43,14 +42,6 @@
public TestFragment(BuildOptions buildOptions) {}
}
- private static final class TestFragmentOptionFactory implements ConfigurationFragmentFactory {
-
- @Override
- public Class<? extends Fragment> creates() {
- return TestFragment.class;
- }
- }
-
private static final class TestLateBoundDefault extends LabelLateBoundDefault<TestFragment> {
private TestLateBoundDefault() {
@@ -73,7 +64,7 @@
protected ConfiguredRuleClassProvider createRuleClassProvider() {
ConfiguredRuleClassProvider.Builder builder = new ConfiguredRuleClassProvider.Builder();
TestRuleClassProvider.addStandardRules(builder);
- builder.addConfigurationFragment(new TestFragmentOptionFactory());
+ builder.addConfigurationFragment(TestFragment.class);
builder.addRuleDefinition(new MyTestRule());
return builder.build();
}
diff --git a/src/test/java/com/google/devtools/build/lib/rules/config/ConfigSettingTest.java b/src/test/java/com/google/devtools/build/lib/rules/config/ConfigSettingTest.java
index 6f2815e..176bc40 100644
--- a/src/test/java/com/google/devtools/build/lib/rules/config/ConfigSettingTest.java
+++ b/src/test/java/com/google/devtools/build/lib/rules/config/ConfigSettingTest.java
@@ -19,7 +19,6 @@
import com.google.devtools.build.lib.analysis.ConfiguredRuleClassProvider;
import com.google.devtools.build.lib.analysis.config.BuildOptions;
import com.google.devtools.build.lib.analysis.config.ConfigMatchingProvider;
-import com.google.devtools.build.lib.analysis.config.ConfigurationFragmentFactory;
import com.google.devtools.build.lib.analysis.config.Fragment;
import com.google.devtools.build.lib.analysis.config.FragmentOptions;
import com.google.devtools.build.lib.analysis.config.RequiresOptions;
@@ -124,20 +123,13 @@
}
}
- private static class DummyTestOptionsLoader implements ConfigurationFragmentFactory {
- @Override
- public Class<? extends Fragment> creates() {
- return DummyTestOptionsFragment.class;
- }
- }
-
@Override
protected ConfiguredRuleClassProvider createRuleClassProvider() {
ConfiguredRuleClassProvider.Builder builder = new ConfiguredRuleClassProvider.Builder();
TestRuleClassProvider.addStandardRules(builder);
builder.addRuleDefinition(new FeatureFlagSetterRule());
builder.addConfigurationOptions(DummyTestOptions.class);
- builder.addConfigurationFragment(new DummyTestOptionsLoader());
+ builder.addConfigurationFragment(DummyTestOptionsFragment.class);
return builder.build();
}
diff --git a/src/test/java/com/google/devtools/build/lib/skyframe/trimming/TrimmableTestConfigurationFragments.java b/src/test/java/com/google/devtools/build/lib/skyframe/trimming/TrimmableTestConfigurationFragments.java
index c3789a1..fe26755 100644
--- a/src/test/java/com/google/devtools/build/lib/skyframe/trimming/TrimmableTestConfigurationFragments.java
+++ b/src/test/java/com/google/devtools/build/lib/skyframe/trimming/TrimmableTestConfigurationFragments.java
@@ -35,7 +35,6 @@
import com.google.devtools.build.lib.analysis.actions.FileWriteAction;
import com.google.devtools.build.lib.analysis.config.BuildOptions;
import com.google.devtools.build.lib.analysis.config.BuildOptionsView;
-import com.google.devtools.build.lib.analysis.config.ConfigurationFragmentFactory;
import com.google.devtools.build.lib.analysis.config.CoreOptions;
import com.google.devtools.build.lib.analysis.config.Fragment;
import com.google.devtools.build.lib.analysis.config.FragmentOptions;
@@ -188,7 +187,7 @@
.setPrelude("//:prelude.bzl")
// must be part of BuildOptions for various reasons e.g. dynamic configs
.addConfigurationOptions(CoreOptions.class)
- .addConfigurationFragment(new TestConfiguration.Loader())
+ .addConfigurationFragment(TestConfiguration.class)
// needed for the default workspace
.addRuleDefinition(new WorkspaceBaseRule())
.addRuleDefinition(new BindRule())
@@ -367,11 +366,11 @@
});
builder
- .addConfigurationFragment(AConfig.FACTORY)
- .addConfigurationFragment(BConfig.FACTORY)
- .addConfigurationFragment(CConfig.FACTORY)
- .addConfigurationFragment(DConfig.FACTORY)
- .addConfigurationFragment(EConfig.FACTORY)
+ .addConfigurationFragment(AConfig.class)
+ .addConfigurationFragment(BConfig.class)
+ .addConfigurationFragment(CConfig.class)
+ .addConfigurationFragment(DConfig.class)
+ .addConfigurationFragment(EConfig.class)
.addRuleDefinition(transitionRule)
.addRuleDefinition(alphaRule)
.addRuleDefinition(bravoRule)
@@ -402,21 +401,6 @@
}
}
- /** General purpose fragment loader for the test fragments in this file. */
- private static final class FragmentLoader<FragmentT extends Fragment>
- implements ConfigurationFragmentFactory {
- private final Class<FragmentT> fragmentType;
-
- FragmentLoader(Class<FragmentT> fragmentType) {
- this.fragmentType = fragmentType;
- }
-
- @Override
- public Class<? extends Fragment> creates() {
- return fragmentType;
- }
- }
-
/** Set of test options. */
public static final class AOptions extends FragmentOptions {
@Option(
@@ -431,8 +415,6 @@
@StarlarkBuiltin(name = "alpha", doc = "Test config fragment.")
@RequiresOptions(options = {AOptions.class})
public static final class AConfig extends Fragment implements StarlarkValue {
- public static final ConfigurationFragmentFactory FACTORY = new FragmentLoader<>(AConfig.class);
-
private final String value;
public AConfig(BuildOptions buildOptions) {
@@ -459,8 +441,6 @@
@StarlarkBuiltin(name = "bravo", doc = "Test config fragment.")
@RequiresOptions(options = {BOptions.class})
public static final class BConfig extends Fragment implements StarlarkValue {
- public static final ConfigurationFragmentFactory FACTORY = new FragmentLoader<>(BConfig.class);
-
private final String value;
public BConfig(BuildOptions buildOptions) {
@@ -487,8 +467,6 @@
@StarlarkBuiltin(name = "charlie", doc = "Test config fragment.")
@RequiresOptions(options = {COptions.class})
public static final class CConfig extends Fragment implements StarlarkValue {
- public static final ConfigurationFragmentFactory FACTORY = new FragmentLoader<>(CConfig.class);
-
private final String value;
public CConfig(BuildOptions buildOptions) {
@@ -515,8 +493,6 @@
@StarlarkBuiltin(name = "delta", doc = "Test config fragment.")
@RequiresOptions(options = {DOptions.class})
public static final class DConfig extends Fragment implements StarlarkValue {
- public static final ConfigurationFragmentFactory FACTORY = new FragmentLoader<>(DConfig.class);
-
private final String value;
public DConfig(BuildOptions buildOptions) {
@@ -546,8 +522,6 @@
@StarlarkBuiltin(name = "echo", doc = "Test config fragment.")
@RequiresOptions(options = {EOptions.class})
public static final class EConfig extends Fragment implements StarlarkValue {
- public static final ConfigurationFragmentFactory FACTORY = new FragmentLoader<>(EConfig.class);
-
private final String value;
public EConfig(BuildOptions buildOptions) {