diff options
author | 2016-02-03 12:57:04 +0000 | |
---|---|---|
committer | 2016-02-03 22:06:21 +0000 | |
commit | 0d1a53cf5614d621518914682ec44c6f20a27ab7 (patch) | |
tree | 6c8e68a984761ed7d3f5f082d2f38e4b52584ce9 /src/main/java/com | |
parent | cc3e6e3cf6fb55700607ebdadc70b804f5861c53 (diff) |
Remove the MAIN_RULE_CLASS_PROVIDER constant and turn it into a command line parameter.
--
MOS_MIGRATED_REVID=113730588
Diffstat (limited to 'src/main/java/com')
4 files changed, 19 insertions, 17 deletions
diff --git a/src/main/java/com/google/devtools/build/docgen/BuildEncyclopediaGenerator.java b/src/main/java/com/google/devtools/build/docgen/BuildEncyclopediaGenerator.java index d7983a1600..f16f70384e 100644 --- a/src/main/java/com/google/devtools/build/docgen/BuildEncyclopediaGenerator.java +++ b/src/main/java/com/google/devtools/build/docgen/BuildEncyclopediaGenerator.java @@ -13,7 +13,6 @@ // limitations under the License. package com.google.devtools.build.docgen; -import com.google.devtools.build.lib.Constants; import com.google.devtools.build.lib.analysis.ConfiguredRuleClassProvider; import java.lang.reflect.InvocationTargetException; @@ -26,10 +25,12 @@ import java.lang.reflect.Method; public class BuildEncyclopediaGenerator { private static boolean checkArgs(String[] args) { - if (args.length < 1) { - System.err.println("There has to be one or two input parameters\n" + if (args.length < 2) { + System.err.println("There has to be two to four input parameters\n" + " - a comma separated list for input directories\n" - + " - an output directory (optional)."); + + " - the name of the rule class provider\n" + + " - an output directory (optional)." + + " - a path to a file listing rules to not document (optional)"); return false; } return true; @@ -43,10 +44,10 @@ public class BuildEncyclopediaGenerator { Runtime.getRuntime().exit(1); } - private static ConfiguredRuleClassProvider createRuleClassProvider() + private static ConfiguredRuleClassProvider createRuleClassProvider(String classProvider) throws ClassNotFoundException, NoSuchMethodException, InvocationTargetException, IllegalAccessException { - Class<?> providerClass = Class.forName(Constants.MAIN_RULE_CLASS_PROVIDER); + Class<?> providerClass = Class.forName(classProvider); Method createMethod = providerClass.getMethod("create"); return (ConfiguredRuleClassProvider) createMethod.invoke(null); } @@ -56,9 +57,9 @@ public class BuildEncyclopediaGenerator { // TODO(bazel-team): use flags try { BuildEncyclopediaProcessor processor = new BuildEncyclopediaProcessor( - createRuleClassProvider()); + createRuleClassProvider(args[1])); processor.generateDocumentation( - args[0].split(","), getArgsOrNull(args, 1), getArgsOrNull(args, 2)); + args[0].split(","), getArgsOrNull(args, 2), getArgsOrNull(args, 3)); } catch (BuildEncyclopediaDocException e) { fail(e, false); } catch (Throwable e) { diff --git a/src/main/java/com/google/devtools/build/docgen/ListRuleMain.java b/src/main/java/com/google/devtools/build/docgen/ListRuleMain.java index 5ef09649e6..b2e0bb223a 100644 --- a/src/main/java/com/google/devtools/build/docgen/ListRuleMain.java +++ b/src/main/java/com/google/devtools/build/docgen/ListRuleMain.java @@ -13,7 +13,6 @@ // limitations under the License. package com.google.devtools.build.docgen; -import com.google.devtools.build.lib.Constants; import com.google.devtools.build.lib.analysis.ConfiguredRuleClassProvider; import com.google.devtools.build.lib.packages.RuleClass; import com.google.devtools.build.lib.packages.RuleClassProvider; @@ -27,16 +26,21 @@ import java.util.Map; */ public class ListRuleMain { - private static ConfiguredRuleClassProvider createRuleClassProvider() + private static ConfiguredRuleClassProvider createRuleClassProvider(String classProvider) throws ClassNotFoundException, NoSuchMethodException, InvocationTargetException, IllegalAccessException { - Class<?> providerClass = Class.forName(Constants.MAIN_RULE_CLASS_PROVIDER); + Class<?> providerClass = Class.forName(classProvider); Method createMethod = providerClass.getMethod("create"); return (ConfiguredRuleClassProvider) createMethod.invoke(null); } public static void main(String[] args) throws Exception { - RuleClassProvider provider = createRuleClassProvider(); + if (args.length == 0) { + System.err.println( + "Expected one input parameter, please provide the name of the rule class provider"); + } + + RuleClassProvider provider = createRuleClassProvider(args[0]); Map<String, RuleClass> rcMap = provider.getRuleClassMap(); for (String name : rcMap.keySet()) { System.out.println(name); diff --git a/src/main/java/com/google/devtools/build/lib/BUILD b/src/main/java/com/google/devtools/build/lib/BUILD index aa7450c143..f965839321 100644 --- a/src/main/java/com/google/devtools/build/lib/BUILD +++ b/src/main/java/com/google/devtools/build/lib/BUILD @@ -898,7 +898,8 @@ genrule( cmd = ( "mkdir -p $(@D)/be && " + "$(location //src/main/java/com/google/devtools/build/docgen:docgen_bin)" + - " $$PWD/src/main/java/com/google/devtools/build/lib" + + " $$PWD/src/main/java/com/google/devtools/build/lib " + + "com.google.devtools.build.lib.bazel.rules.BazelRuleClassProvider" + " $(@D)/be &&" + "zip -qj $@ $(@D)/be/*" ), diff --git a/src/main/java/com/google/devtools/build/lib/Constants.java b/src/main/java/com/google/devtools/build/lib/Constants.java index edf6be59ab..cdf54dba83 100644 --- a/src/main/java/com/google/devtools/build/lib/Constants.java +++ b/src/main/java/com/google/devtools/build/lib/Constants.java @@ -34,10 +34,6 @@ public final class Constants { // Default value for the --package_path flag if not otherwise set. public static final ImmutableList<String> DEFAULT_PACKAGE_PATH = ImmutableList.of("%workspace%"); - // The rule documentation generator iterates over all rules in the class by this name. - public static final String MAIN_RULE_CLASS_PROVIDER = - "com.google.devtools.build.lib.bazel.rules.BazelRuleClassProvider"; - // Native Java deps are all linked into a single file, which is named with this value + ".so". public static final String NATIVE_DEPS_LIB_SUFFIX = "_nativedeps"; |