diff options
author | 2017-06-06 09:32:18 -0400 | |
---|---|---|
committer | 2017-06-06 09:51:28 -0400 | |
commit | 95aa487c02e20c6e0e137fca1670fc72ec9bd588 (patch) | |
tree | a16afba1b593ee011673f1aaadb9aafd641e3730 /src/main/java/com/google/devtools/build/lib/runtime | |
parent | 75b58db8bc94f591f64d83ff532128e1c672818a (diff) |
Remove the CommandEnvironment from BlazeCommand.editOptions
BlazeCommand.editOptions is currently called fairly late in the startup
process, so it must be restrictive in what it does, as any change to the
options can potentially introduce inconsistencies between different parts of
Bazel. Removing the CommandEnvironment reduces the amount of damage it can do,
and may allow us to move the call earlier in the startup process (maybe even
to a point where the CommandEnvironment does not exist yet).
PiperOrigin-RevId: 158133862
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/runtime')
17 files changed, 25 insertions, 24 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/runtime/BlazeCommand.java b/src/main/java/com/google/devtools/build/lib/runtime/BlazeCommand.java index c1f3fd094e..b5759edf77 100644 --- a/src/main/java/com/google/devtools/build/lib/runtime/BlazeCommand.java +++ b/src/main/java/com/google/devtools/build/lib/runtime/BlazeCommand.java @@ -49,8 +49,7 @@ public interface BlazeCommand { * requirements. This method is called after all command-line and rc file options have been * parsed. * - * @param env the command environment of the currently running command * @param optionsParser the options parser for the current command */ - void editOptions(CommandEnvironment env, OptionsParser optionsParser); + void editOptions(OptionsParser optionsParser); } diff --git a/src/main/java/com/google/devtools/build/lib/runtime/BlazeCommandDispatcher.java b/src/main/java/com/google/devtools/build/lib/runtime/BlazeCommandDispatcher.java index 3b230a2e54..d2b05f32ff 100644 --- a/src/main/java/com/google/devtools/build/lib/runtime/BlazeCommandDispatcher.java +++ b/src/main/java/com/google/devtools/build/lib/runtime/BlazeCommandDispatcher.java @@ -518,7 +518,7 @@ public class BlazeCommandDispatcher { waitTimeInMs, invocationPolicy); // Allow the command to edit options after parsing: - command.editOptions(env, optionsParser); + command.editOptions(optionsParser); } catch (AbruptExitException e) { reporter.handle(Event.error(e.getMessage())); return e.getExitCode().getNumericExitCode(); diff --git a/src/main/java/com/google/devtools/build/lib/runtime/commands/BuildCommand.java b/src/main/java/com/google/devtools/build/lib/runtime/commands/BuildCommand.java index 9227ddd2a7..cf487bb5c7 100644 --- a/src/main/java/com/google/devtools/build/lib/runtime/commands/BuildCommand.java +++ b/src/main/java/com/google/devtools/build/lib/runtime/commands/BuildCommand.java @@ -51,7 +51,7 @@ import java.util.List; public final class BuildCommand implements BlazeCommand { @Override - public void editOptions(CommandEnvironment env, OptionsParser optionsParser) { + public void editOptions(OptionsParser optionsParser) { } @Override 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 8033509309..5bb1b31794 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 @@ -169,5 +169,5 @@ public final class CanonicalizeCommand implements BlazeCommand { } @Override - public void editOptions(CommandEnvironment env, OptionsParser optionsParser) {} + public void editOptions(OptionsParser optionsParser) {} } 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 c007e5f61d..93952a1825 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 @@ -267,5 +267,5 @@ public final class CleanCommand implements BlazeCommand { } @Override - public void editOptions(CommandEnvironment env, OptionsParser optionsParser) {} + public void editOptions(OptionsParser optionsParser) {} } 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 aa9e703fd4..b31bb240c6 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 @@ -16,7 +16,6 @@ package com.google.devtools.build.lib.runtime.commands; import com.google.common.collect.ImmutableList; import com.google.devtools.build.lib.packages.TestTimeout; import com.google.devtools.build.lib.runtime.Command; -import com.google.devtools.build.lib.runtime.CommandEnvironment; import com.google.devtools.common.options.OptionPriority; import com.google.devtools.common.options.OptionsParser; import com.google.devtools.common.options.OptionsParsingException; @@ -120,8 +119,8 @@ public class CoverageCommand extends TestCommand { } @Override - public void editOptions(CommandEnvironment env, OptionsParser optionsParser) { - super.editOptions(env, optionsParser); + public void editOptions(OptionsParser optionsParser) { + super.editOptions(optionsParser); try { optionsParser.parse(OptionPriority.SOFTWARE_REQUIREMENT, "Options required by the coverage command", diff --git a/src/main/java/com/google/devtools/build/lib/runtime/commands/DumpCommand.java b/src/main/java/com/google/devtools/build/lib/runtime/commands/DumpCommand.java index 03adf0570a..0e7965ea2d 100644 --- a/src/main/java/com/google/devtools/build/lib/runtime/commands/DumpCommand.java +++ b/src/main/java/com/google/devtools/build/lib/runtime/commands/DumpCommand.java @@ -112,7 +112,7 @@ public class DumpCommand implements BlazeCommand { } @Override - public void editOptions(CommandEnvironment env, OptionsParser optionsParser) {} + public void editOptions(OptionsParser optionsParser) {} @Override public ExitCode exec(CommandEnvironment env, OptionsProvider options) { 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 702fefebd9..9790984923 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 @@ -139,7 +139,7 @@ public final class HelpCommand implements BlazeCommand { } @Override - public void editOptions(CommandEnvironment env, OptionsParser optionsParser) {} + public void editOptions(OptionsParser optionsParser) {} @Override public ExitCode exec(CommandEnvironment env, OptionsProvider options) { 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 c43367d636..e62d65a6f6 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 @@ -91,7 +91,7 @@ public class InfoCommand implements BlazeCommand { } @Override - public void editOptions(CommandEnvironment env, OptionsParser optionsParser) { } + public void editOptions(OptionsParser optionsParser) { } @Override public ExitCode exec(final CommandEnvironment env, final OptionsProvider optionsProvider) { diff --git a/src/main/java/com/google/devtools/build/lib/runtime/commands/LicenseCommand.java b/src/main/java/com/google/devtools/build/lib/runtime/commands/LicenseCommand.java index 8902b07a68..b735107e79 100644 --- a/src/main/java/com/google/devtools/build/lib/runtime/commands/LicenseCommand.java +++ b/src/main/java/com/google/devtools/build/lib/runtime/commands/LicenseCommand.java @@ -101,5 +101,5 @@ public class LicenseCommand implements BlazeCommand { } @Override - public void editOptions(CommandEnvironment env, OptionsParser optionsParser) {} + public void editOptions(OptionsParser optionsParser) {} } diff --git a/src/main/java/com/google/devtools/build/lib/runtime/commands/ProfileCommand.java b/src/main/java/com/google/devtools/build/lib/runtime/commands/ProfileCommand.java index bbc7a02c4d..91c4c99d77 100644 --- a/src/main/java/com/google/devtools/build/lib/runtime/commands/ProfileCommand.java +++ b/src/main/java/com/google/devtools/build/lib/runtime/commands/ProfileCommand.java @@ -173,7 +173,7 @@ public final class ProfileCommand implements BlazeCommand { } @Override - public void editOptions(CommandEnvironment env, OptionsParser optionsParser) {} + public void editOptions(OptionsParser optionsParser) {} @Override public ExitCode exec(final CommandEnvironment env, OptionsProvider options) { diff --git a/src/main/java/com/google/devtools/build/lib/runtime/commands/QueryCommand.java b/src/main/java/com/google/devtools/build/lib/runtime/commands/QueryCommand.java index aab627028a..b8bc7426c8 100644 --- a/src/main/java/com/google/devtools/build/lib/runtime/commands/QueryCommand.java +++ b/src/main/java/com/google/devtools/build/lib/runtime/commands/QueryCommand.java @@ -68,7 +68,7 @@ import java.util.Set; public final class QueryCommand implements BlazeCommand { @Override - public void editOptions(CommandEnvironment env, OptionsParser optionsParser) { } + public void editOptions(OptionsParser optionsParser) { } /** * Exit codes: 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 cf98f997e7..6f29578dd8 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 @@ -128,7 +128,7 @@ public class RunCommand implements BlazeCommand { } @Override - public void editOptions(CommandEnvironment env, OptionsParser optionsParser) { } + public void editOptions(OptionsParser optionsParser) { } @Override public ExitCode exec(CommandEnvironment env, OptionsProvider options) { diff --git a/src/main/java/com/google/devtools/build/lib/runtime/commands/ShutdownCommand.java b/src/main/java/com/google/devtools/build/lib/runtime/commands/ShutdownCommand.java index 640602d168..13a5d8df9d 100644 --- a/src/main/java/com/google/devtools/build/lib/runtime/commands/ShutdownCommand.java +++ b/src/main/java/com/google/devtools/build/lib/runtime/commands/ShutdownCommand.java @@ -47,7 +47,7 @@ public final class ShutdownCommand implements BlazeCommand { } @Override - public void editOptions(CommandEnvironment env, OptionsParser optionsParser) {} + public void editOptions(OptionsParser optionsParser) {} @Override public ExitCode exec(CommandEnvironment env, OptionsProvider options) 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 1900517604..de5f75feeb 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 @@ -66,14 +66,10 @@ public class TestCommand implements BlazeCommand { } @Override - public void editOptions(CommandEnvironment env, OptionsParser optionsParser) { + public void editOptions(OptionsParser optionsParser) { TestOutputFormat testOutput = optionsParser.getOptions(ExecutionOptions.class).testOutput; - try { if (testOutput == TestStrategy.TestOutputFormat.STREAMED) { - env.getReporter().handle(Event.warn( - "Streamed test output requested. All tests will be run locally, without sharding, " - + "one at a time")); optionsParser.parse(OptionPriority.SOFTWARE_REQUIREMENT, "streamed output requires locally run tests, without sharding", ImmutableList.of("--test_sharding_strategy=disabled", "--test_strategy=exclusive")); @@ -85,6 +81,13 @@ public class TestCommand implements BlazeCommand { @Override public ExitCode exec(CommandEnvironment env, OptionsProvider options) { + TestOutputFormat testOutput = options.getOptions(ExecutionOptions.class).testOutput; + if (testOutput == TestStrategy.TestOutputFormat.STREAMED) { + env.getReporter().handle(Event.warn( + "Streamed test output requested. All tests will be run locally, without sharding, " + + "one at a time")); + } + TestResultAnalyzer resultAnalyzer = new TestResultAnalyzer( options.getOptions(TestSummaryOptions.class), options.getOptions(ExecutionOptions.class), diff --git a/src/main/java/com/google/devtools/build/lib/runtime/commands/VersionCommand.java b/src/main/java/com/google/devtools/build/lib/runtime/commands/VersionCommand.java index 97f3cc1358..eff8700248 100644 --- a/src/main/java/com/google/devtools/build/lib/runtime/commands/VersionCommand.java +++ b/src/main/java/com/google/devtools/build/lib/runtime/commands/VersionCommand.java @@ -35,7 +35,7 @@ import com.google.devtools.common.options.OptionsProvider; shortDescription = "Prints version information for %{product}.") public final class VersionCommand implements BlazeCommand { @Override - public void editOptions(CommandEnvironment env, OptionsParser optionsParser) {} + public void editOptions(OptionsParser optionsParser) {} @Override public ExitCode exec(CommandEnvironment env, OptionsProvider options) { 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 f4cd3a39fc..15102ee80c 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 @@ -110,7 +110,7 @@ public class MobileInstallCommand implements BlazeCommand { } @Override - public void editOptions(CommandEnvironment env, OptionsParser optionsParser) { + public void editOptions(OptionsParser optionsParser) { try { if (optionsParser.getOptions(Options.class).v2) { optionsParser.parse( |