Move the RuleModule interface to ConfiguredRCP and rename it to RuleSet.
--
MOS_MIGRATED_REVID=136463385
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 5f1d5e9..2773348 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
@@ -179,8 +179,18 @@
}
/**
- * Builder for {@link ConfiguredRuleClassProvider}.
+ * A coherent set of options, fragments, aspects and rules; each of these may declare a dependency
+ * on other such sets.
*/
+ public static interface RuleSet {
+ /** Add stuff to the configured rule class provider builder. */
+ void init(ConfiguredRuleClassProvider.Builder builder);
+
+ /** List of required modules. */
+ ImmutableList<RuleSet> requires();
+ }
+
+ /** Builder for {@link ConfiguredRuleClassProvider}. */
public static class Builder implements RuleDefinitionEnvironment {
private final StringBuilder defaultWorkspaceFilePrefix = new StringBuilder();
private final StringBuilder defaultWorkspaceFileSuffix = new StringBuilder();
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 44d194d..baafa05 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
@@ -23,6 +23,7 @@
import com.google.devtools.build.lib.analysis.ConfiguredRuleClassProvider.Builder;
import com.google.devtools.build.lib.analysis.ConfiguredRuleClassProvider.DeprecationValidator;
import com.google.devtools.build.lib.analysis.ConfiguredRuleClassProvider.PrerequisiteValidator;
+import com.google.devtools.build.lib.analysis.ConfiguredRuleClassProvider.RuleSet;
import com.google.devtools.build.lib.analysis.ConfiguredTarget;
import com.google.devtools.build.lib.analysis.RuleContext;
import com.google.devtools.build.lib.analysis.config.BuildConfiguration;
@@ -164,18 +165,6 @@
public class BazelRuleClassProvider {
public static final String TOOLS_REPOSITORY = "@bazel_tools";
- /**
- * A coherent set of options, fragments, aspects and rules; each of these may declare a dependency
- * on other such sets.
- */
- public static interface RuleModule {
- /** Add stuff to the configured rule class provider builder. */
- void init(ConfiguredRuleClassProvider.Builder builder);
-
- /** List of required modules. */
- ImmutableList<RuleModule> requires();
- }
-
/** Used by the build encyclopedia generator. */
public static ConfiguredRuleClassProvider create() {
ConfiguredRuleClassProvider.Builder builder =
@@ -282,8 +271,8 @@
VARIOUS_WORKSPACE_RULES.init(builder);
}
- public static final RuleModule BAZEL_SETUP =
- new RuleModule() {
+ public static final RuleSet BAZEL_SETUP =
+ new RuleSet() {
@Override
public void init(Builder builder) {
builder
@@ -298,13 +287,13 @@
}
@Override
- public ImmutableList<RuleModule> requires() {
+ public ImmutableList<RuleSet> requires() {
return ImmutableList.of();
}
};
- public static final RuleModule CORE_RULES =
- new RuleModule() {
+ public static final RuleSet CORE_RULES =
+ new RuleSet() {
@Override
public void init(Builder builder) {
builder.addRuleDefinition(new BaseRuleClasses.BaseRule());
@@ -315,13 +304,13 @@
}
@Override
- public ImmutableList<RuleModule> requires() {
+ public ImmutableList<RuleSet> requires() {
return ImmutableList.of();
}
};
- public static final RuleModule BASIC_RULES =
- new RuleModule() {
+ public static final RuleSet BASIC_RULES =
+ new RuleSet() {
@Override
public void init(Builder builder) {
builder.addRuleDefinition(new EnvironmentRule());
@@ -344,13 +333,13 @@
}
@Override
- public ImmutableList<RuleModule> requires() {
+ public ImmutableList<RuleSet> requires() {
return ImmutableList.of(CORE_RULES);
}
};
- public static final RuleModule CORE_WORKSPACE_RULES =
- new RuleModule() {
+ public static final RuleSet CORE_WORKSPACE_RULES =
+ new RuleSet() {
@Override
public void init(Builder builder) {
builder.addRuleDefinition(new BindRule());
@@ -359,13 +348,13 @@
}
@Override
- public ImmutableList<RuleModule> requires() {
+ public ImmutableList<RuleSet> requires() {
return ImmutableList.of(CORE_RULES);
}
};
- public static final RuleModule PROTO_RULES =
- new RuleModule() {
+ public static final RuleSet PROTO_RULES =
+ new RuleSet() {
@Override
public void init(Builder builder) {
builder.addConfigurationOptions(ProtoConfiguration.Options.class);
@@ -374,13 +363,13 @@
}
@Override
- public ImmutableList<RuleModule> requires() {
+ public ImmutableList<RuleSet> requires() {
return ImmutableList.of(CORE_RULES);
}
};
- public static final RuleModule SH_RULES =
- new RuleModule() {
+ public static final RuleSet SH_RULES =
+ new RuleSet() {
@Override
public void init(Builder builder) {
builder.addRuleDefinition(new BazelShRuleClasses.ShRule());
@@ -390,13 +379,13 @@
}
@Override
- public ImmutableList<RuleModule> requires() {
+ public ImmutableList<RuleSet> requires() {
return ImmutableList.of(CORE_RULES);
}
};
- public static final RuleModule CPP_RULES =
- new RuleModule() {
+ public static final RuleSet CPP_RULES =
+ new RuleSet() {
@Override
public void init(Builder builder) {
builder.addConfig(
@@ -420,13 +409,13 @@
}
@Override
- public ImmutableList<RuleModule> requires() {
+ public ImmutableList<RuleSet> requires() {
return ImmutableList.of(CORE_RULES);
}
};
- public static final RuleModule JAVA_RULES =
- new RuleModule() {
+ public static final RuleSet JAVA_RULES =
+ new RuleSet() {
@Override
public void init(Builder builder) {
builder.addConfigurationOptions(JavaOptions.class);
@@ -460,13 +449,13 @@
}
@Override
- public ImmutableList<RuleModule> requires() {
+ public ImmutableList<RuleSet> requires() {
return ImmutableList.of(CORE_RULES, CPP_RULES);
}
};
- public static final RuleModule JAVA_PROTO_RULES =
- new RuleModule() {
+ public static final RuleSet JAVA_PROTO_RULES =
+ new RuleSet() {
@Override
public void init(Builder builder) {
BazelJavaProtoAspect bazelJavaProtoAspect = new BazelJavaProtoAspect();
@@ -478,13 +467,13 @@
}
@Override
- public ImmutableList<RuleModule> requires() {
+ public ImmutableList<RuleSet> requires() {
return ImmutableList.of(CORE_RULES, JAVA_RULES);
}
};
- public static final RuleModule ANDROID_RULES =
- new RuleModule() {
+ public static final RuleSet ANDROID_RULES =
+ new RuleSet() {
@Override
public void init(Builder builder) {
String toolsRepository = checkNotNull(builder.getToolsRepository());
@@ -524,13 +513,13 @@
}
@Override
- public ImmutableList<RuleModule> requires() {
+ public ImmutableList<RuleSet> requires() {
return ImmutableList.of(CORE_RULES, CPP_RULES, JAVA_RULES);
}
};
- public static final RuleModule PYTHON_RULES =
- new RuleModule() {
+ public static final RuleSet PYTHON_RULES =
+ new RuleSet() {
@Override
public void init(Builder builder) {
builder.addConfig(PythonOptions.class, new PythonConfigurationLoader());
@@ -545,13 +534,13 @@
}
@Override
- public ImmutableList<RuleModule> requires() {
+ public ImmutableList<RuleSet> requires() {
return ImmutableList.of(CORE_RULES, CPP_RULES);
}
};
- public static final RuleModule OBJC_RULES =
- new RuleModule() {
+ public static final RuleSet OBJC_RULES =
+ new RuleSet() {
@Override
public void init(Builder builder) {
String toolsRepository = checkNotNull(builder.getToolsRepository());
@@ -566,7 +555,7 @@
// j2objc shouldn't be here!
builder.addConfig(J2ObjcCommandLineOptions.class, new J2ObjcConfiguration.Loader());
- // objc_proto_library should go into a separate RuleModule!
+ // objc_proto_library should go into a separate RuleSet!
// TODO(ulfjack): Depending on objcProtoAspect from here is a layering violation.
ObjcProtoAspect objcProtoAspect = new ObjcProtoAspect();
builder.addNativeAspectClass(objcProtoAspect);
@@ -620,13 +609,13 @@
}
@Override
- public ImmutableList<RuleModule> requires() {
+ public ImmutableList<RuleSet> requires() {
return ImmutableList.of(CORE_RULES, CPP_RULES);
}
};
- public static final RuleModule J2OBJC_RULES =
- new RuleModule() {
+ public static final RuleSet J2OBJC_RULES =
+ new RuleSet() {
@Override
public void init(Builder builder) {
String toolsRepository = checkNotNull(builder.getToolsRepository());
@@ -650,13 +639,13 @@
}
@Override
- public ImmutableList<RuleModule> requires() {
+ public ImmutableList<RuleSet> requires() {
return ImmutableList.of(CORE_RULES, CPP_RULES, JAVA_RULES, OBJC_RULES);
}
};
- public static final RuleModule ANDROID_STUDIO_ASPECT =
- new RuleModule() {
+ public static final RuleSet ANDROID_STUDIO_ASPECT =
+ new RuleSet() {
@Override
public void init(Builder builder) {
String toolsRepository = checkNotNull(builder.getToolsRepository());
@@ -666,13 +655,13 @@
}
@Override
- public ImmutableList<RuleModule> requires() {
+ public ImmutableList<RuleSet> requires() {
return ImmutableList.of(CORE_RULES);
}
};
- public static final RuleModule VARIOUS_WORKSPACE_RULES =
- new RuleModule() {
+ public static final RuleSet VARIOUS_WORKSPACE_RULES =
+ new RuleSet() {
@Override
public void init(Builder builder) {
// TODO(ulfjack): Split this up by conceptual units.
@@ -690,7 +679,7 @@
}
@Override
- public ImmutableList<RuleModule> requires() {
+ public ImmutableList<RuleSet> requires() {
return ImmutableList.of(CORE_RULES, CORE_WORKSPACE_RULES);
}
};
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 9b5345a..2cdcd09 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
@@ -18,10 +18,10 @@
import static com.google.common.truth.Truth.assertWithMessage;
import com.google.devtools.build.lib.analysis.ConfiguredRuleClassProvider;
+import com.google.devtools.build.lib.analysis.ConfiguredRuleClassProvider.RuleSet;
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.FragmentOptions;
-import com.google.devtools.build.lib.bazel.rules.BazelRuleClassProvider.RuleModule;
import com.google.devtools.build.lib.packages.RuleClass;
import java.util.HashSet;
import java.util.List;
@@ -57,13 +57,13 @@
}
}
- private void checkModule(RuleModule top) {
+ private void checkModule(RuleSet top) {
ConfiguredRuleClassProvider.Builder builder = new ConfiguredRuleClassProvider.Builder();
builder.setToolsRepository(BazelRuleClassProvider.TOOLS_REPOSITORY);
- Set<RuleModule> result = new HashSet<>();
+ Set<RuleSet> result = new HashSet<>();
result.add(BazelRuleClassProvider.BAZEL_SETUP);
collectTransitiveClosure(result, top);
- for (RuleModule module : result) {
+ for (RuleSet module : result) {
module.init(builder);
}
ConfiguredRuleClassProvider provider = builder.build();
@@ -71,9 +71,9 @@
checkConfigConsistency(provider);
}
- private void collectTransitiveClosure(Set<RuleModule> result, RuleModule module) {
+ private void collectTransitiveClosure(Set<RuleSet> result, RuleSet module) {
if (result.add(module)) {
- for (RuleModule dep : module.requires()) {
+ for (RuleSet dep : module.requires()) {
collectTransitiveClosure(result, dep);
}
}