Rename Command.inherits to Command.inheritsOptionsFrom This is to avoid confusion that it inherits other metadata. PiperOrigin-RevId: 644947040 Change-Id: I2911d81bb7cca40ea9bdca4855a02a403d18c6a1
diff --git a/src/main/java/com/google/devtools/build/lib/bazel/commands/FetchCommand.java b/src/main/java/com/google/devtools/build/lib/bazel/commands/FetchCommand.java index 1dc3be1..fc46116 100644 --- a/src/main/java/com/google/devtools/build/lib/bazel/commands/FetchCommand.java +++ b/src/main/java/com/google/devtools/build/lib/bazel/commands/FetchCommand.java
@@ -58,7 +58,7 @@ @Command( name = FetchCommand.NAME, builds = true, - inherits = {TestCommand.class}, + inheritsOptionsFrom = {TestCommand.class}, options = { FetchOptions.class, PackageOptions.class,
diff --git a/src/main/java/com/google/devtools/build/lib/bazel/commands/VendorCommand.java b/src/main/java/com/google/devtools/build/lib/bazel/commands/VendorCommand.java index 0df6a9a..e8becaa 100644 --- a/src/main/java/com/google/devtools/build/lib/bazel/commands/VendorCommand.java +++ b/src/main/java/com/google/devtools/build/lib/bazel/commands/VendorCommand.java
@@ -93,7 +93,7 @@ @Command( name = VendorCommand.NAME, builds = true, - inherits = {TestCommand.class}, + inheritsOptionsFrom = {TestCommand.class}, options = { VendorOptions.class, PackageOptions.class,
diff --git a/src/main/java/com/google/devtools/build/lib/runtime/BlazeCommandUtils.java b/src/main/java/com/google/devtools/build/lib/runtime/BlazeCommandUtils.java index 6ff5076..2227b32 100644 --- a/src/main/java/com/google/devtools/build/lib/runtime/BlazeCommandUtils.java +++ b/src/main/java/com/google/devtools/build/lib/runtime/BlazeCommandUtils.java
@@ -97,7 +97,7 @@ Iterables.addAll(options, blazeModule.getCommandOptions(commandAnnotation)); } - for (Class<? extends BlazeCommand> base : commandAnnotation.inherits()) { + for (Class<? extends BlazeCommand> base : commandAnnotation.inheritsOptionsFrom()) { options.addAll(getOptions(base, modules, ruleClassProvider)); } return ImmutableList.copyOf(options);
diff --git a/src/main/java/com/google/devtools/build/lib/runtime/BlazeOptionHandler.java b/src/main/java/com/google/devtools/build/lib/runtime/BlazeOptionHandler.java index 2a45c3a..97e4dfe 100644 --- a/src/main/java/com/google/devtools/build/lib/runtime/BlazeOptionHandler.java +++ b/src/main/java/com/google/devtools/build/lib/runtime/BlazeOptionHandler.java
@@ -557,7 +557,7 @@ private static void getCommandNamesToParseHelper( Command commandAnnotation, List<String> accumulator) { - for (Class<? extends BlazeCommand> base : commandAnnotation.inherits()) { + for (Class<? extends BlazeCommand> base : commandAnnotation.inheritsOptionsFrom()) { getCommandNamesToParseHelper(base.getAnnotation(Command.class), accumulator); } accumulator.add(commandAnnotation.name());
diff --git a/src/main/java/com/google/devtools/build/lib/runtime/Command.java b/src/main/java/com/google/devtools/build/lib/runtime/Command.java index 4fc9228..71cfb68 100644 --- a/src/main/java/com/google/devtools/build/lib/runtime/Command.java +++ b/src/main/java/com/google/devtools/build/lib/runtime/Command.java
@@ -38,10 +38,10 @@ Class<? extends OptionsBase>[] options() default {}; /** - * The set of other Blaze commands that this annotation's command "inherits" - * options from. These classes must be annotated with {@link Command}. + * The set of other Blaze commands that this annotation's command "inherits" options from. These + * classes must be annotated with {@link Command}. */ - Class<? extends BlazeCommand>[] inherits() default {}; + Class<? extends BlazeCommand>[] inheritsOptionsFrom() default {}; /** * A short description, which appears in 'blaze help'.
diff --git a/src/main/java/com/google/devtools/build/lib/runtime/CommandNameCacheImpl.java b/src/main/java/com/google/devtools/build/lib/runtime/CommandNameCacheImpl.java index 6621309..3987932 100644 --- a/src/main/java/com/google/devtools/build/lib/runtime/CommandNameCacheImpl.java +++ b/src/main/java/com/google/devtools/build/lib/runtime/CommandNameCacheImpl.java
@@ -52,7 +52,7 @@ while (!queue.isEmpty()) { Command cur = queue.remove(); builder.add(cur.name()); - for (Class<? extends BlazeCommand> clazz : cur.inherits()) { + for (Class<? extends BlazeCommand> clazz : cur.inheritsOptionsFrom()) { Command parent = clazz.getAnnotation(Command.class); if (visited.add(parent)) { queue.add(parent);
diff --git a/src/main/java/com/google/devtools/build/lib/runtime/commands/AqueryCommand.java b/src/main/java/com/google/devtools/build/lib/runtime/commands/AqueryCommand.java index 1c28b51..c4fbefa 100644 --- a/src/main/java/com/google/devtools/build/lib/runtime/commands/AqueryCommand.java +++ b/src/main/java/com/google/devtools/build/lib/runtime/commands/AqueryCommand.java
@@ -53,7 +53,7 @@ @Command( name = "aquery", builds = true, - inherits = {BuildCommand.class}, + inheritsOptionsFrom = {BuildCommand.class}, options = {AqueryOptions.class}, usesConfigurationOptions = true, shortDescription = "Analyzes the given targets and queries the action graph.",
diff --git a/src/main/java/com/google/devtools/build/lib/runtime/commands/CanonicalizeCommand.java b/src/main/java/com/google/devtools/build/lib/runtime/commands/CanonicalizeCommand.java index dcd6b9d..8e93db3 100644 --- a/src/main/java/com/google/devtools/build/lib/runtime/commands/CanonicalizeCommand.java +++ b/src/main/java/com/google/devtools/build/lib/runtime/commands/CanonicalizeCommand.java
@@ -57,7 +57,7 @@ name = "canonicalize-flags", options = {CanonicalizeCommand.Options.class, PackageOptions.class}, // inherits from build to get proper package loading options and rc flag aliases. - inherits = {BuildCommand.class}, + inheritsOptionsFrom = {BuildCommand.class}, allowResidue = true, mustRunInWorkspace = false, shortDescription = "Canonicalizes a list of %{product} options.",
diff --git a/src/main/java/com/google/devtools/build/lib/runtime/commands/CleanCommand.java b/src/main/java/com/google/devtools/build/lib/runtime/commands/CleanCommand.java index 97ea419..b426633 100644 --- a/src/main/java/com/google/devtools/build/lib/runtime/commands/CleanCommand.java +++ b/src/main/java/com/google/devtools/build/lib/runtime/commands/CleanCommand.java
@@ -60,7 +60,7 @@ help = "resource:clean.txt", shortDescription = "Removes output files and optionally stops the server.", // TODO(bazel-team): Remove this - we inherit a huge number of unused options. - inherits = {BuildCommand.class}) + inheritsOptionsFrom = {BuildCommand.class}) public final class CleanCommand implements BlazeCommand { /** An interface for special options for the clean command. */ public static class Options extends OptionsBase {
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 0b00d75..7fbe627 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
@@ -72,7 +72,7 @@ @Command( name = "config", builds = true, - inherits = {BuildCommand.class}, + inheritsOptionsFrom = {BuildCommand.class}, options = {ConfigOptions.class}, usesConfigurationOptions = true, shortDescription = "Displays details of configurations.",
diff --git a/src/main/java/com/google/devtools/build/lib/runtime/commands/CoverageCommand.java b/src/main/java/com/google/devtools/build/lib/runtime/commands/CoverageCommand.java index 4694d92..34a620a 100644 --- a/src/main/java/com/google/devtools/build/lib/runtime/commands/CoverageCommand.java +++ b/src/main/java/com/google/devtools/build/lib/runtime/commands/CoverageCommand.java
@@ -105,7 +105,7 @@ @Command( name = "coverage", builds = true, - inherits = {TestCommand.class}, + inheritsOptionsFrom = {TestCommand.class}, shortDescription = "Generates code coverage report for specified test targets.", completion = "label-test", help = "resource:coverage.txt",
diff --git a/src/main/java/com/google/devtools/build/lib/runtime/commands/CqueryCommand.java b/src/main/java/com/google/devtools/build/lib/runtime/commands/CqueryCommand.java index adcd91e..d8f8853 100644 --- a/src/main/java/com/google/devtools/build/lib/runtime/commands/CqueryCommand.java +++ b/src/main/java/com/google/devtools/build/lib/runtime/commands/CqueryCommand.java
@@ -62,7 +62,7 @@ // Without doing this, there is no easy way to use the output of cquery to determine whether a // test has changed between two invocations, because the testrunner action is not easily // introspectable. - inherits = {TestCommand.class}, + inheritsOptionsFrom = {TestCommand.class}, options = {CqueryOptions.class}, usesConfigurationOptions = true, shortDescription = "Loads, analyzes, and queries the specified targets w/ configurations.",
diff --git a/src/main/java/com/google/devtools/build/lib/runtime/commands/HelpCommand.java b/src/main/java/com/google/devtools/build/lib/runtime/commands/HelpCommand.java index 194074e..3266e26 100644 --- a/src/main/java/com/google/devtools/build/lib/runtime/commands/HelpCommand.java +++ b/src/main/java/com/google/devtools/build/lib/runtime/commands/HelpCommand.java
@@ -424,7 +424,7 @@ continue; } List<String> inheritedCmdNames = new ArrayList<>(); - for (Class<? extends BlazeCommand> base : annotation.inherits()) { + for (Class<? extends BlazeCommand> base : annotation.inheritsOptionsFrom()) { String name = base.getAnnotation(Command.class).name(); inheritedCmdNames.add(String.format("<a href=\"#%s\">%s</a>", name, name)); }
diff --git a/src/main/java/com/google/devtools/build/lib/runtime/commands/InfoCommand.java b/src/main/java/com/google/devtools/build/lib/runtime/commands/InfoCommand.java index 9342dfd..d597368 100644 --- a/src/main/java/com/google/devtools/build/lib/runtime/commands/InfoCommand.java +++ b/src/main/java/com/google/devtools/build/lib/runtime/commands/InfoCommand.java
@@ -98,7 +98,7 @@ // (Ideally there would be a way to make {@code info} inherit just the bare // minimum of relevant options from {@code build}, i.e. those that affect the // values it prints. But there's no such mechanism.) - inherits = {BuildCommand.class}) + inheritsOptionsFrom = {BuildCommand.class}) public class InfoCommand implements BlazeCommand { /** Options for the info command. */
diff --git a/src/main/java/com/google/devtools/build/lib/runtime/commands/PrintActionCommand.java b/src/main/java/com/google/devtools/build/lib/runtime/commands/PrintActionCommand.java index f0d29c9..0b57522 100644 --- a/src/main/java/com/google/devtools/build/lib/runtime/commands/PrintActionCommand.java +++ b/src/main/java/com/google/devtools/build/lib/runtime/commands/PrintActionCommand.java
@@ -69,7 +69,7 @@ @Command( name = "print_action", builds = true, - inherits = {BuildCommand.class}, + inheritsOptionsFrom = {BuildCommand.class}, options = {PrintActionCommand.PrintActionOptions.class}, help = "resource:print_action.txt", shortDescription = "Prints the command line args for compiling a file.",
diff --git a/src/main/java/com/google/devtools/build/lib/runtime/commands/RunCommand.java b/src/main/java/com/google/devtools/build/lib/runtime/commands/RunCommand.java index 042406abe7..d8669d2 100644 --- a/src/main/java/com/google/devtools/build/lib/runtime/commands/RunCommand.java +++ b/src/main/java/com/google/devtools/build/lib/runtime/commands/RunCommand.java
@@ -111,7 +111,7 @@ name = "run", builds = true, options = {RunCommand.RunOptions.class}, - inherits = {BuildCommand.class}, + inheritsOptionsFrom = {BuildCommand.class}, shortDescription = "Runs the specified target.", help = "resource:run.txt", allowResidue = true,
diff --git a/src/main/java/com/google/devtools/build/lib/runtime/commands/TestCommand.java b/src/main/java/com/google/devtools/build/lib/runtime/commands/TestCommand.java index 079f4c3..7e1db23 100644 --- a/src/main/java/com/google/devtools/build/lib/runtime/commands/TestCommand.java +++ b/src/main/java/com/google/devtools/build/lib/runtime/commands/TestCommand.java
@@ -59,17 +59,16 @@ import java.util.Collection; import java.util.List; -/** - * Handles the 'test' command on the Blaze command line. - */ -@Command(name = "test", - builds = true, - inherits = { BuildCommand.class }, - options = { TestSummaryOptions.class }, - shortDescription = "Builds and runs the specified test targets.", - help = "resource:test.txt", - completion = "label-test", - allowResidue = true) +/** Handles the 'test' command on the Blaze command line. */ +@Command( + name = "test", + builds = true, + inheritsOptionsFrom = {BuildCommand.class}, + options = {TestSummaryOptions.class}, + shortDescription = "Builds and runs the specified test targets.", + help = "resource:test.txt", + completion = "label-test", + allowResidue = true) public class TestCommand implements BlazeCommand { /** Returns the name of the command to ask the project file for. */ // TODO(hdm): move into BlazeRuntime? It feels odd to duplicate the annotation here.
diff --git a/src/main/java/com/google/devtools/build/lib/runtime/mobileinstall/MobileInstallCommand.java b/src/main/java/com/google/devtools/build/lib/runtime/mobileinstall/MobileInstallCommand.java index f966cbd..86901d4 100644 --- a/src/main/java/com/google/devtools/build/lib/runtime/mobileinstall/MobileInstallCommand.java +++ b/src/main/java/com/google/devtools/build/lib/runtime/mobileinstall/MobileInstallCommand.java
@@ -66,15 +66,14 @@ /** Implementation of the 'mobile-install' command. */ @Command( - name = "mobile-install", - builds = true, - options = {MobileInstallCommand.Options.class, WriteAdbArgsAction.Options.class}, - inherits = {BuildCommand.class}, - shortDescription = "Installs targets to mobile devices.", - completion = "label", - allowResidue = true, - help = "resource:mobile-install.txt" -) + name = "mobile-install", + builds = true, + options = {MobileInstallCommand.Options.class, WriteAdbArgsAction.Options.class}, + inheritsOptionsFrom = {BuildCommand.class}, + shortDescription = "Installs targets to mobile devices.", + completion = "label", + allowResidue = true, + help = "resource:mobile-install.txt") public class MobileInstallCommand implements BlazeCommand { /** An enumeration of all the modes that mobile-install supports. */
diff --git a/src/test/java/com/google/devtools/build/lib/runtime/AbstractCommandTest.java b/src/test/java/com/google/devtools/build/lib/runtime/AbstractCommandTest.java index d1dea1b..867d0df 100644 --- a/src/test/java/com/google/devtools/build/lib/runtime/AbstractCommandTest.java +++ b/src/test/java/com/google/devtools/build/lib/runtime/AbstractCommandTest.java
@@ -110,8 +110,12 @@ @Command(name = "a", options = {FooOptions.class}, shortDescription = "", help = "") private static class CommandA extends ConcreteCommand {} - @Command(name = "b", options = {BarOptions.class}, inherits = {CommandA.class}, - shortDescription = "", help = "") + @Command( + name = "b", + options = {BarOptions.class}, + inheritsOptionsFrom = {CommandA.class}, + shortDescription = "", + help = "") private static class CommandB extends ConcreteCommand {} @Test
diff --git a/src/test/java/com/google/devtools/build/lib/runtime/BlazeCommandDispatcherRcoptionsTest.java b/src/test/java/com/google/devtools/build/lib/runtime/BlazeCommandDispatcherRcoptionsTest.java index 77e8e9f..024bff2 100644 --- a/src/test/java/com/google/devtools/build/lib/runtime/BlazeCommandDispatcherRcoptionsTest.java +++ b/src/test/java/com/google/devtools/build/lib/runtime/BlazeCommandDispatcherRcoptionsTest.java
@@ -101,7 +101,7 @@ options = {FooOptions.class}, shortDescription = "", help = "", - inherits = ReportAllCommand.class) + inheritsOptionsFrom = ReportAllCommand.class) private static class ReportAllInheritedCommand extends ReportAllCommand {} private final Scratch scratch = new Scratch();
diff --git a/src/test/java/com/google/devtools/build/lib/runtime/BlazeCommandDispatcherTest.java b/src/test/java/com/google/devtools/build/lib/runtime/BlazeCommandDispatcherTest.java index a8eb0a3..addf2d6 100644 --- a/src/test/java/com/google/devtools/build/lib/runtime/BlazeCommandDispatcherTest.java +++ b/src/test/java/com/google/devtools/build/lib/runtime/BlazeCommandDispatcherTest.java
@@ -578,7 +578,11 @@ assertThat(result.getExitCode()).isEqualTo(ExitCode.COMMAND_LINE_ERROR); } - @Command(name = "wiz", inherits = {FooCommand.class}, shortDescription = "", help = "") + @Command( + name = "wiz", + inheritsOptionsFrom = {FooCommand.class}, + shortDescription = "", + help = "") private static class WizCommand extends FooCommand {} @Test