Delete @ExecutionStrategy.

This annotation was made superfluous in a previous CL but is only removed in this separate CL to keep changes small(er).

RELNOTES: None.
PiperOrigin-RevId: 289882670
diff --git a/src/main/java/com/google/devtools/build/lib/actions/ExecutionStrategy.java b/src/main/java/com/google/devtools/build/lib/actions/ExecutionStrategy.java
deleted file mode 100644
index 3bb86d3..0000000
--- a/src/main/java/com/google/devtools/build/lib/actions/ExecutionStrategy.java
+++ /dev/null
@@ -1,34 +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.actions;
-
-import java.lang.annotation.ElementType;
-import java.lang.annotation.Retention;
-import java.lang.annotation.RetentionPolicy;
-import java.lang.annotation.Target;
-
-/** Annotation that marks strategies that extend the execution phase behavior of Blaze. */
-@Target(ElementType.TYPE)
-@Retention(RetentionPolicy.RUNTIME)
-public @interface ExecutionStrategy {
-  /**
-   * The names this strategy is available under on the command line.
-   */
-  String[] name() default {};
-
-  /**
-   * Returns the action context this strategy implements.
-   */
-  Class<? extends ActionContext> contextType();
-}
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/actions/LocalTemplateExpansionStrategy.java b/src/main/java/com/google/devtools/build/lib/analysis/actions/LocalTemplateExpansionStrategy.java
index faa379f..258d1a1 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/actions/LocalTemplateExpansionStrategy.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/actions/LocalTemplateExpansionStrategy.java
@@ -17,7 +17,6 @@
 import com.google.devtools.build.lib.actions.ActionExecutionContext;
 import com.google.devtools.build.lib.actions.ArtifactPathResolver;
 import com.google.devtools.build.lib.actions.EnvironmentalExecException;
-import com.google.devtools.build.lib.actions.ExecutionStrategy;
 import com.google.devtools.build.lib.actions.SpawnContinuation;
 import com.google.devtools.build.lib.analysis.actions.AbstractFileWriteAction.DeterministicWriter;
 import com.google.devtools.build.lib.util.StringUtilities;
@@ -26,9 +25,6 @@
 import java.nio.charset.StandardCharsets;
 
 /** Strategy to perform tempate expansion locally */
-@ExecutionStrategy(
-    name = {"local"},
-    contextType = TemplateExpansionContext.class)
 public class LocalTemplateExpansionStrategy implements TemplateExpansionContext {
   public static final Class<LocalTemplateExpansionStrategy> TYPE =
       LocalTemplateExpansionStrategy.class;
diff --git a/src/main/java/com/google/devtools/build/lib/bazel/BazelWorkspaceStatusModule.java b/src/main/java/com/google/devtools/build/lib/bazel/BazelWorkspaceStatusModule.java
index 46f4fa1..71a150e 100644
--- a/src/main/java/com/google/devtools/build/lib/bazel/BazelWorkspaceStatusModule.java
+++ b/src/main/java/com/google/devtools/build/lib/bazel/BazelWorkspaceStatusModule.java
@@ -26,7 +26,6 @@
 import com.google.devtools.build.lib.actions.ActionOwner;
 import com.google.devtools.build.lib.actions.ActionResult;
 import com.google.devtools.build.lib.actions.Artifact;
-import com.google.devtools.build.lib.actions.ExecutionStrategy;
 import com.google.devtools.build.lib.analysis.BlazeDirectories;
 import com.google.devtools.build.lib.analysis.BuildInfo;
 import com.google.devtools.build.lib.analysis.BuildInfoEvent;
@@ -280,7 +279,6 @@
     }
   }
 
-  @ExecutionStrategy(contextType = WorkspaceStatusAction.Context.class)
   private static final class BazelWorkspaceStatusActionContext
       implements WorkspaceStatusAction.Context {
     private final CommandEnvironment env;
diff --git a/src/main/java/com/google/devtools/build/lib/dynamic/DynamicSpawnStrategy.java b/src/main/java/com/google/devtools/build/lib/dynamic/DynamicSpawnStrategy.java
index 06b938e..9521724 100644
--- a/src/main/java/com/google/devtools/build/lib/dynamic/DynamicSpawnStrategy.java
+++ b/src/main/java/com/google/devtools/build/lib/dynamic/DynamicSpawnStrategy.java
@@ -26,7 +26,6 @@
 import com.google.devtools.build.lib.actions.ActionExecutionContext;
 import com.google.devtools.build.lib.actions.DynamicStrategyRegistry;
 import com.google.devtools.build.lib.actions.ExecException;
-import com.google.devtools.build.lib.actions.ExecutionStrategy;
 import com.google.devtools.build.lib.actions.SandboxedSpawnActionContext;
 import com.google.devtools.build.lib.actions.SandboxedSpawnActionContext.StopConcurrentSpawns;
 import com.google.devtools.build.lib.actions.Spawn;
@@ -63,10 +62,8 @@
  * save 0.5s of time, when it then takes us 5 seconds to upload the results to remote executors for
  * another action that's scheduled to run there.
  */
-@ExecutionStrategy(
-    name = {"dynamic", "dynamic_worker"},
-    contextType = SpawnActionContext.class)
 public class DynamicSpawnStrategy implements SpawnActionContext {
+
   private static final Logger logger = Logger.getLogger(DynamicSpawnStrategy.class.getName());
 
   private final ListeningExecutorService executorService;
diff --git a/src/main/java/com/google/devtools/build/lib/dynamic/LegacyDynamicSpawnStrategy.java b/src/main/java/com/google/devtools/build/lib/dynamic/LegacyDynamicSpawnStrategy.java
index 88648d7..e7b9bb9 100644
--- a/src/main/java/com/google/devtools/build/lib/dynamic/LegacyDynamicSpawnStrategy.java
+++ b/src/main/java/com/google/devtools/build/lib/dynamic/LegacyDynamicSpawnStrategy.java
@@ -25,7 +25,6 @@
 import com.google.devtools.build.lib.actions.EnvironmentalExecException;
 import com.google.devtools.build.lib.actions.ExecException;
 import com.google.devtools.build.lib.actions.ExecutionRequirements;
-import com.google.devtools.build.lib.actions.ExecutionStrategy;
 import com.google.devtools.build.lib.actions.SandboxedSpawnActionContext;
 import com.google.devtools.build.lib.actions.SandboxedSpawnActionContext.StopConcurrentSpawns;
 import com.google.devtools.build.lib.actions.Spawn;
@@ -63,9 +62,6 @@
  * save 0.5s of time, when it then takes us 5 seconds to upload the results to remote executors for
  * another action that's scheduled to run there.
  */
-@ExecutionStrategy(
-    name = {"dynamic", "dynamic_worker"},
-    contextType = SpawnActionContext.class)
 public class LegacyDynamicSpawnStrategy implements SpawnActionContext {
   private static final Logger logger = Logger.getLogger(DynamicSpawnStrategy.class.getName());
 
diff --git a/src/main/java/com/google/devtools/build/lib/exec/FileWriteStrategy.java b/src/main/java/com/google/devtools/build/lib/exec/FileWriteStrategy.java
index 4a0c156..b9394fa 100644
--- a/src/main/java/com/google/devtools/build/lib/exec/FileWriteStrategy.java
+++ b/src/main/java/com/google/devtools/build/lib/exec/FileWriteStrategy.java
@@ -18,7 +18,6 @@
 import com.google.devtools.build.lib.actions.AbstractAction;
 import com.google.devtools.build.lib.actions.ActionExecutionContext;
 import com.google.devtools.build.lib.actions.EnvironmentalExecException;
-import com.google.devtools.build.lib.actions.ExecutionStrategy;
 import com.google.devtools.build.lib.actions.RunningActionEvent;
 import com.google.devtools.build.lib.actions.SpawnContinuation;
 import com.google.devtools.build.lib.analysis.actions.AbstractFileWriteAction;
@@ -34,14 +33,10 @@
 /**
  * A strategy for executing an {@link AbstractFileWriteAction}.
  */
-@ExecutionStrategy(name = { "local" }, contextType = FileWriteActionContext.class)
 public final class FileWriteStrategy implements FileWriteActionContext {
   private static final Logger logger = Logger.getLogger(FileWriteStrategy.class.getName());
   public static final Class<FileWriteStrategy> TYPE = FileWriteStrategy.class;
 
-  public FileWriteStrategy() {
-  }
-
   @Override
   public SpawnContinuation beginWriteOutputToFile(
       AbstractAction action,
diff --git a/src/main/java/com/google/devtools/build/lib/exec/SpawnCache.java b/src/main/java/com/google/devtools/build/lib/exec/SpawnCache.java
index b9220e7..af64f4b 100644
--- a/src/main/java/com/google/devtools/build/lib/exec/SpawnCache.java
+++ b/src/main/java/com/google/devtools/build/lib/exec/SpawnCache.java
@@ -15,7 +15,6 @@
 
 import com.google.devtools.build.lib.actions.ActionContext;
 import com.google.devtools.build.lib.actions.ExecException;
-import com.google.devtools.build.lib.actions.ExecutionStrategy;
 import com.google.devtools.build.lib.actions.Spawn;
 import com.google.devtools.build.lib.actions.SpawnResult;
 import com.google.devtools.build.lib.exec.SpawnRunner.SpawnExecutionContext;
@@ -88,10 +87,6 @@
   }
 
   /** A no-op spawn cache. */
-  @ExecutionStrategy(
-      name = {"no-cache"},
-      contextType = SpawnCache.class
-  )
   public static class NoSpawnCache implements SpawnCache {
     @Override
     public CacheHandle lookup(Spawn spawn, SpawnExecutionContext context) {
diff --git a/src/main/java/com/google/devtools/build/lib/exec/SpawnLogContext.java b/src/main/java/com/google/devtools/build/lib/exec/SpawnLogContext.java
index fa6bb5e..38bf09b 100644
--- a/src/main/java/com/google/devtools/build/lib/exec/SpawnLogContext.java
+++ b/src/main/java/com/google/devtools/build/lib/exec/SpawnLogContext.java
@@ -19,7 +19,6 @@
 import com.google.devtools.build.lib.actions.ActionContext;
 import com.google.devtools.build.lib.actions.ActionInput;
 import com.google.devtools.build.lib.actions.ExecException;
-import com.google.devtools.build.lib.actions.ExecutionStrategy;
 import com.google.devtools.build.lib.actions.FileArtifactValue;
 import com.google.devtools.build.lib.actions.MetadataProvider;
 import com.google.devtools.build.lib.actions.Spawn;
@@ -56,10 +55,6 @@
 /**
  * A logging utility for spawns.
  */
-@ExecutionStrategy(
-    name = {"spawn-log"},
-    contextType = SpawnLogContext.class
-)
 public class SpawnLogContext implements ActionContext {
 
   private static final Logger logger = Logger.getLogger(SpawnLogContext.class.getName());
diff --git a/src/main/java/com/google/devtools/build/lib/exec/StandaloneTestStrategy.java b/src/main/java/com/google/devtools/build/lib/exec/StandaloneTestStrategy.java
index fc914ed..99cf4d3 100644
--- a/src/main/java/com/google/devtools/build/lib/exec/StandaloneTestStrategy.java
+++ b/src/main/java/com/google/devtools/build/lib/exec/StandaloneTestStrategy.java
@@ -26,7 +26,6 @@
 import com.google.devtools.build.lib.actions.EnvironmentalExecException;
 import com.google.devtools.build.lib.actions.ExecException;
 import com.google.devtools.build.lib.actions.ExecutionRequirements;
-import com.google.devtools.build.lib.actions.ExecutionStrategy;
 import com.google.devtools.build.lib.actions.ResourceSet;
 import com.google.devtools.build.lib.actions.SimpleSpawn;
 import com.google.devtools.build.lib.actions.Spawn;
@@ -35,7 +34,6 @@
 import com.google.devtools.build.lib.actions.SpawnResult;
 import com.google.devtools.build.lib.actions.TestExecException;
 import com.google.devtools.build.lib.analysis.actions.SpawnAction;
-import com.google.devtools.build.lib.analysis.test.TestActionContext;
 import com.google.devtools.build.lib.analysis.test.TestConfiguration;
 import com.google.devtools.build.lib.analysis.test.TestResult;
 import com.google.devtools.build.lib.analysis.test.TestRunnerAction;
@@ -68,10 +66,6 @@
 
 /** Runs TestRunnerAction actions. */
 // TODO(bazel-team): add tests for this strategy.
-@ExecutionStrategy(
-  contextType = TestActionContext.class,
-  name = {"standalone"}
-)
 public class StandaloneTestStrategy extends TestStrategy {
   private static final ImmutableMap<String, String> ENV_VARS =
       ImmutableMap.<String, String>builder()
diff --git a/src/main/java/com/google/devtools/build/lib/exec/SymlinkTreeStrategy.java b/src/main/java/com/google/devtools/build/lib/exec/SymlinkTreeStrategy.java
index fd37c68..2cdcc24 100644
--- a/src/main/java/com/google/devtools/build/lib/exec/SymlinkTreeStrategy.java
+++ b/src/main/java/com/google/devtools/build/lib/exec/SymlinkTreeStrategy.java
@@ -22,7 +22,6 @@
 import com.google.devtools.build.lib.actions.Artifact;
 import com.google.devtools.build.lib.actions.EnvironmentalExecException;
 import com.google.devtools.build.lib.actions.ExecException;
-import com.google.devtools.build.lib.actions.ExecutionStrategy;
 import com.google.devtools.build.lib.actions.RunningActionEvent;
 import com.google.devtools.build.lib.analysis.actions.SymlinkTreeAction;
 import com.google.devtools.build.lib.analysis.actions.SymlinkTreeActionContext;
@@ -41,7 +40,6 @@
  * Implements SymlinkTreeAction by using the output service or by running an embedded script to
  * create the symlink tree.
  */
-@ExecutionStrategy(contextType = SymlinkTreeActionContext.class)
 public final class SymlinkTreeStrategy implements SymlinkTreeActionContext {
   private static final Logger logger = Logger.getLogger(SymlinkTreeStrategy.class.getName());
 
diff --git a/src/main/java/com/google/devtools/build/lib/includescanning/CppIncludeScanningContextImpl.java b/src/main/java/com/google/devtools/build/lib/includescanning/CppIncludeScanningContextImpl.java
index d0415c1..8c90610 100644
--- a/src/main/java/com/google/devtools/build/lib/includescanning/CppIncludeScanningContextImpl.java
+++ b/src/main/java/com/google/devtools/build/lib/includescanning/CppIncludeScanningContextImpl.java
@@ -18,7 +18,6 @@
 import com.google.devtools.build.lib.actions.ActionExecutionContext;
 import com.google.devtools.build.lib.actions.Artifact;
 import com.google.devtools.build.lib.actions.ExecException;
-import com.google.devtools.build.lib.actions.ExecutionStrategy;
 import com.google.devtools.build.lib.rules.cpp.CppCompileAction;
 import com.google.devtools.build.lib.rules.cpp.CppIncludeScanningContext;
 import com.google.devtools.build.lib.rules.cpp.IncludeProcessing;
@@ -29,7 +28,6 @@
 /**
  * Include scanning context implementation.
  */
-@ExecutionStrategy(contextType = CppIncludeScanningContext.class)
 public class CppIncludeScanningContextImpl implements CppIncludeScanningContext {
 
   private final Supplier<? extends IncludeScannerSupplier> includeScannerSupplier;
diff --git a/src/main/java/com/google/devtools/build/lib/includescanning/IncludeScanningModule.java b/src/main/java/com/google/devtools/build/lib/includescanning/IncludeScanningModule.java
index 9fd44dd..61f9173 100644
--- a/src/main/java/com/google/devtools/build/lib/includescanning/IncludeScanningModule.java
+++ b/src/main/java/com/google/devtools/build/lib/includescanning/IncludeScanningModule.java
@@ -29,7 +29,6 @@
 import com.google.devtools.build.lib.actions.ArtifactFactory;
 import com.google.devtools.build.lib.actions.ArtifactResolver;
 import com.google.devtools.build.lib.actions.ExecException;
-import com.google.devtools.build.lib.actions.ExecutionStrategy;
 import com.google.devtools.build.lib.actions.ExecutorInitException;
 import com.google.devtools.build.lib.analysis.ArtifactsToOwnerLabels;
 import com.google.devtools.build.lib.analysis.BlazeDirectories;
@@ -127,7 +126,6 @@
   /**
    * Implementation of {@link CppIncludeExtractionContext}.
    */
-  @ExecutionStrategy(contextType = CppIncludeExtractionContext.class)
   public static final class CppIncludeExtractionContextImpl implements CppIncludeExtractionContext {
     private final CommandEnvironment env;
 
@@ -144,7 +142,6 @@
   /**
    * SwigIncludeScanningContextImpl implements SwigIncludeScanningContext.
    */
-  @ExecutionStrategy(contextType = SwigIncludeScanningContext.class)
   public static final class SwigIncludeScanningContextImpl implements SwigIncludeScanningContext {
     private final CommandEnvironment env;
     private final Supplier<SpawnIncludeScanner> spawnScannerSupplier;
diff --git a/src/main/java/com/google/devtools/build/lib/remote/RemoteSpawnCache.java b/src/main/java/com/google/devtools/build/lib/remote/RemoteSpawnCache.java
index 689c024..8ce8f1d 100644
--- a/src/main/java/com/google/devtools/build/lib/remote/RemoteSpawnCache.java
+++ b/src/main/java/com/google/devtools/build/lib/remote/RemoteSpawnCache.java
@@ -28,7 +28,6 @@
 import com.google.common.collect.ImmutableSet;
 import com.google.devtools.build.lib.actions.ActionInput;
 import com.google.devtools.build.lib.actions.ExecException;
-import com.google.devtools.build.lib.actions.ExecutionStrategy;
 import com.google.devtools.build.lib.actions.FileArtifactValue;
 import com.google.devtools.build.lib.actions.Spawn;
 import com.google.devtools.build.lib.actions.SpawnResult;
@@ -67,9 +66,6 @@
 
 /** A remote {@link SpawnCache} implementation. */
 @ThreadSafe // If the RemoteActionCache implementation is thread-safe.
-@ExecutionStrategy(
-    name = {"remote-cache"},
-    contextType = SpawnCache.class)
 final class RemoteSpawnCache implements SpawnCache {
 
   private final Path execRoot;
diff --git a/src/main/java/com/google/devtools/build/lib/remote/RemoteSpawnStrategy.java b/src/main/java/com/google/devtools/build/lib/remote/RemoteSpawnStrategy.java
index 9265147..77ec364 100644
--- a/src/main/java/com/google/devtools/build/lib/remote/RemoteSpawnStrategy.java
+++ b/src/main/java/com/google/devtools/build/lib/remote/RemoteSpawnStrategy.java
@@ -13,8 +13,6 @@
 // limitations under the License.
 package com.google.devtools.build.lib.remote;
 
-import com.google.devtools.build.lib.actions.ExecutionStrategy;
-import com.google.devtools.build.lib.actions.SpawnActionContext;
 import com.google.devtools.build.lib.exec.AbstractSpawnStrategy;
 import com.google.devtools.build.lib.exec.SpawnRunner;
 import com.google.devtools.build.lib.vfs.Path;
@@ -23,10 +21,6 @@
  * Strategy that uses a distributed cache for sharing action input and output files. Optionally this
  * strategy also support offloading the work to a remote worker.
  */
-@ExecutionStrategy(
-  name = {"remote"},
-  contextType = SpawnActionContext.class
-)
 final class RemoteSpawnStrategy extends AbstractSpawnStrategy {
   RemoteSpawnStrategy(Path execRoot, SpawnRunner spawnRunner) {
     super(execRoot, spawnRunner);
diff --git a/src/main/java/com/google/devtools/build/lib/rules/android/WriteAdbArgsActionContext.java b/src/main/java/com/google/devtools/build/lib/rules/android/WriteAdbArgsActionContext.java
index 9c0f355..d3bd939 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/android/WriteAdbArgsActionContext.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/android/WriteAdbArgsActionContext.java
@@ -14,11 +14,9 @@
 package com.google.devtools.build.lib.rules.android;
 
 import com.google.devtools.build.lib.actions.ActionContext;
-import com.google.devtools.build.lib.actions.ExecutionStrategy;
 import javax.annotation.Nullable;
 
 /** {@link ActionContext} for {@link WriteAdbArgsAction}. */
-@ExecutionStrategy(contextType = WriteAdbArgsActionContext.class)
 public final class WriteAdbArgsActionContext implements ActionContext {
 
   private final String userHomeDirectory;
diff --git a/src/main/java/com/google/devtools/build/lib/rules/java/JavaCompileActionContext.java b/src/main/java/com/google/devtools/build/lib/rules/java/JavaCompileActionContext.java
index 5e437ce..a1e552f 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/java/JavaCompileActionContext.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/java/JavaCompileActionContext.java
@@ -18,7 +18,6 @@
 import com.google.devtools.build.lib.actions.ActionContext;
 import com.google.devtools.build.lib.actions.ActionExecutionContext;
 import com.google.devtools.build.lib.actions.Artifact;
-import com.google.devtools.build.lib.actions.ExecutionStrategy;
 import com.google.devtools.build.lib.view.proto.Deps;
 import java.io.IOException;
 import java.io.InputStream;
@@ -26,7 +25,6 @@
 import java.util.concurrent.ConcurrentHashMap;
 
 /** Context for compiling Java files. */
-@ExecutionStrategy(contextType = JavaCompileActionContext.class)
 public class JavaCompileActionContext implements ActionContext {
   private final ConcurrentHashMap<Artifact, Deps.Dependencies> cache = new ConcurrentHashMap<>();
 
diff --git a/src/main/java/com/google/devtools/build/lib/rules/test/ExclusiveTestStrategy.java b/src/main/java/com/google/devtools/build/lib/rules/test/ExclusiveTestStrategy.java
index 204caaf..7c2d963 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/test/ExclusiveTestStrategy.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/test/ExclusiveTestStrategy.java
@@ -17,7 +17,6 @@
 import com.google.devtools.build.lib.actions.ActionExecutionContext;
 import com.google.devtools.build.lib.actions.ActionOwner;
 import com.google.devtools.build.lib.actions.ExecException;
-import com.google.devtools.build.lib.actions.ExecutionStrategy;
 import com.google.devtools.build.lib.analysis.test.TestActionContext;
 import com.google.devtools.build.lib.analysis.test.TestResult;
 import com.google.devtools.build.lib.analysis.test.TestRunnerAction;
@@ -33,9 +32,6 @@
  * trigger behavior in SkyframeExecutor to schedule test execution sequentially after non-test
  * actions. This ensures streamed test output is not polluted by other action output.
  */
-@ExecutionStrategy(
-    contextType = TestActionContext.class,
-    name = {"exclusive"})
 public class ExclusiveTestStrategy implements TestActionContext {
   private TestActionContext parent;
 
diff --git a/src/main/java/com/google/devtools/build/lib/sandbox/DarwinSandboxedSpawnRunner.java b/src/main/java/com/google/devtools/build/lib/sandbox/DarwinSandboxedSpawnRunner.java
index bbc25b9..685e6ff 100644
--- a/src/main/java/com/google/devtools/build/lib/sandbox/DarwinSandboxedSpawnRunner.java
+++ b/src/main/java/com/google/devtools/build/lib/sandbox/DarwinSandboxedSpawnRunner.java
@@ -22,9 +22,7 @@
 import com.google.common.collect.ImmutableSet;
 import com.google.common.io.ByteStreams;
 import com.google.devtools.build.lib.actions.ExecException;
-import com.google.devtools.build.lib.actions.ExecutionStrategy;
 import com.google.devtools.build.lib.actions.Spawn;
-import com.google.devtools.build.lib.actions.SpawnActionContext;
 import com.google.devtools.build.lib.actions.Spawns;
 import com.google.devtools.build.lib.exec.TreeDeleter;
 import com.google.devtools.build.lib.exec.local.LocalEnvProvider;
@@ -51,10 +49,6 @@
 import javax.annotation.Nullable;
 
 /** Spawn runner that uses Darwin (macOS) sandboxing to execute a process. */
-@ExecutionStrategy(
-  name = {"sandboxed", "darwin-sandbox"},
-  contextType = SpawnActionContext.class
-)
 final class DarwinSandboxedSpawnRunner extends AbstractSandboxSpawnRunner {
 
   /** Path to the {@code getconf} system tool to use. */
diff --git a/src/main/java/com/google/devtools/build/lib/sandbox/DarwinSandboxedStrategy.java b/src/main/java/com/google/devtools/build/lib/sandbox/DarwinSandboxedStrategy.java
index a4c05ea..597175b 100644
--- a/src/main/java/com/google/devtools/build/lib/sandbox/DarwinSandboxedStrategy.java
+++ b/src/main/java/com/google/devtools/build/lib/sandbox/DarwinSandboxedStrategy.java
@@ -14,18 +14,11 @@
 
 package com.google.devtools.build.lib.sandbox;
 
-import com.google.devtools.build.lib.actions.ExecutionStrategy;
-import com.google.devtools.build.lib.actions.SpawnActionContext;
 import com.google.devtools.build.lib.exec.AbstractSpawnStrategy;
 import com.google.devtools.build.lib.exec.SpawnRunner;
 import com.google.devtools.build.lib.vfs.Path;
 
 /** Strategy that uses sandboxing to execute a process, for Darwin */
-//TODO(ulfjack): This class only exists for this annotation. Find a better way to handle this!
-@ExecutionStrategy(
-  name = {"sandboxed", "darwin-sandbox"},
-  contextType = SpawnActionContext.class
-)
 final class DarwinSandboxedStrategy extends AbstractSpawnStrategy {
   DarwinSandboxedStrategy(Path execRoot, SpawnRunner spawnRunner) {
     super(execRoot, spawnRunner);
diff --git a/src/main/java/com/google/devtools/build/lib/sandbox/DockerSandboxedStrategy.java b/src/main/java/com/google/devtools/build/lib/sandbox/DockerSandboxedStrategy.java
index ba38fe6..a2e2284 100644
--- a/src/main/java/com/google/devtools/build/lib/sandbox/DockerSandboxedStrategy.java
+++ b/src/main/java/com/google/devtools/build/lib/sandbox/DockerSandboxedStrategy.java
@@ -14,17 +14,11 @@
 
 package com.google.devtools.build.lib.sandbox;
 
-import com.google.devtools.build.lib.actions.ExecutionStrategy;
-import com.google.devtools.build.lib.actions.SpawnActionContext;
 import com.google.devtools.build.lib.exec.AbstractSpawnStrategy;
 import com.google.devtools.build.lib.exec.SpawnRunner;
 import com.google.devtools.build.lib.vfs.Path;
 
 /** Strategy that uses Docker to execute a process. */
-// TODO(ulfjack): This class only exists for this annotation. Find a better way to handle this!
-@ExecutionStrategy(
-    name = {"docker"},
-    contextType = SpawnActionContext.class)
 public final class DockerSandboxedStrategy extends AbstractSpawnStrategy {
   DockerSandboxedStrategy(Path execRoot, SpawnRunner spawnRunner) {
     super(execRoot, spawnRunner);
diff --git a/src/main/java/com/google/devtools/build/lib/sandbox/LinuxSandboxedStrategy.java b/src/main/java/com/google/devtools/build/lib/sandbox/LinuxSandboxedStrategy.java
index 3a80e38..a31938b 100644
--- a/src/main/java/com/google/devtools/build/lib/sandbox/LinuxSandboxedStrategy.java
+++ b/src/main/java/com/google/devtools/build/lib/sandbox/LinuxSandboxedStrategy.java
@@ -14,8 +14,6 @@
 
 package com.google.devtools.build.lib.sandbox;
 
-import com.google.devtools.build.lib.actions.ExecutionStrategy;
-import com.google.devtools.build.lib.actions.SpawnActionContext;
 import com.google.devtools.build.lib.exec.AbstractSpawnStrategy;
 import com.google.devtools.build.lib.exec.SpawnRunner;
 import com.google.devtools.build.lib.exec.TreeDeleter;
@@ -27,11 +25,6 @@
 import javax.annotation.Nullable;
 
 /** Strategy that uses sandboxing to execute a process. */
-// TODO(ulfjack): This class only exists for this annotation. Find a better way to handle this!
-@ExecutionStrategy(
-  name = {"sandboxed", "linux-sandbox"},
-  contextType = SpawnActionContext.class
-)
 public final class LinuxSandboxedStrategy extends AbstractSpawnStrategy {
   LinuxSandboxedStrategy(Path execRoot, SpawnRunner spawnRunner) {
     super(execRoot, spawnRunner);
diff --git a/src/main/java/com/google/devtools/build/lib/sandbox/ProcessWrapperSandboxedStrategy.java b/src/main/java/com/google/devtools/build/lib/sandbox/ProcessWrapperSandboxedStrategy.java
index 096f564..38e596d 100644
--- a/src/main/java/com/google/devtools/build/lib/sandbox/ProcessWrapperSandboxedStrategy.java
+++ b/src/main/java/com/google/devtools/build/lib/sandbox/ProcessWrapperSandboxedStrategy.java
@@ -14,18 +14,11 @@
 
 package com.google.devtools.build.lib.sandbox;
 
-import com.google.devtools.build.lib.actions.ExecutionStrategy;
-import com.google.devtools.build.lib.actions.SpawnActionContext;
 import com.google.devtools.build.lib.exec.AbstractSpawnStrategy;
 import com.google.devtools.build.lib.exec.SpawnRunner;
 import com.google.devtools.build.lib.vfs.Path;
 
 /** Strategy that uses sandboxing to execute a process. */
-//TODO(ulfjack): This class only exists for this annotation. Find a better way to handle this!
-@ExecutionStrategy(
-  name = {"sandboxed", "processwrapper-sandbox"},
-  contextType = SpawnActionContext.class
-)
 final class ProcessWrapperSandboxedStrategy extends AbstractSpawnStrategy {
   ProcessWrapperSandboxedStrategy(Path execRoot, SpawnRunner spawnRunner) {
     super(execRoot, spawnRunner);
diff --git a/src/main/java/com/google/devtools/build/lib/sandbox/WindowsSandboxedStrategy.java b/src/main/java/com/google/devtools/build/lib/sandbox/WindowsSandboxedStrategy.java
index 9588a38..6644984 100644
--- a/src/main/java/com/google/devtools/build/lib/sandbox/WindowsSandboxedStrategy.java
+++ b/src/main/java/com/google/devtools/build/lib/sandbox/WindowsSandboxedStrategy.java
@@ -14,17 +14,11 @@
 
 package com.google.devtools.build.lib.sandbox;
 
-import com.google.devtools.build.lib.actions.ExecutionStrategy;
-import com.google.devtools.build.lib.actions.SpawnActionContext;
 import com.google.devtools.build.lib.exec.AbstractSpawnStrategy;
 import com.google.devtools.build.lib.exec.SpawnRunner;
 import com.google.devtools.build.lib.vfs.Path;
 
 /** Strategy that uses sandboxing to execute a process. */
-// TODO(ulfjack): This class only exists for this annotation. Find a better way to handle this!
-@ExecutionStrategy(
-    name = {"sandboxed", "windows-sandbox"},
-    contextType = SpawnActionContext.class)
 public final class WindowsSandboxedStrategy extends AbstractSpawnStrategy {
   WindowsSandboxedStrategy(Path execRoot, SpawnRunner spawnRunner) {
     super(execRoot, spawnRunner);
diff --git a/src/main/java/com/google/devtools/build/lib/standalone/DummyCppIncludeExtractionContext.java b/src/main/java/com/google/devtools/build/lib/standalone/DummyCppIncludeExtractionContext.java
index 31d931b..b656df2 100644
--- a/src/main/java/com/google/devtools/build/lib/standalone/DummyCppIncludeExtractionContext.java
+++ b/src/main/java/com/google/devtools/build/lib/standalone/DummyCppIncludeExtractionContext.java
@@ -14,7 +14,6 @@
 package com.google.devtools.build.lib.standalone;
 
 import com.google.devtools.build.lib.actions.ArtifactResolver;
-import com.google.devtools.build.lib.actions.ExecutionStrategy;
 import com.google.devtools.build.lib.rules.cpp.CppIncludeExtractionContext;
 import com.google.devtools.build.lib.runtime.CommandEnvironment;
 
@@ -22,7 +21,6 @@
  * An IncludeExtractionContext that does nothing. Since local execution does not need to discover
  * inclusion in advance, we do not need include scanning.
  */
-@ExecutionStrategy(contextType = CppIncludeExtractionContext.class)
 class DummyCppIncludeExtractionContext implements CppIncludeExtractionContext {
   private final CommandEnvironment env;
 
diff --git a/src/main/java/com/google/devtools/build/lib/standalone/DummyCppIncludeScanningContext.java b/src/main/java/com/google/devtools/build/lib/standalone/DummyCppIncludeScanningContext.java
index de27436..7dbf632 100644
--- a/src/main/java/com/google/devtools/build/lib/standalone/DummyCppIncludeScanningContext.java
+++ b/src/main/java/com/google/devtools/build/lib/standalone/DummyCppIncludeScanningContext.java
@@ -16,7 +16,6 @@
 import com.google.common.util.concurrent.ListenableFuture;
 import com.google.devtools.build.lib.actions.ActionExecutionContext;
 import com.google.devtools.build.lib.actions.Artifact;
-import com.google.devtools.build.lib.actions.ExecutionStrategy;
 import com.google.devtools.build.lib.rules.cpp.CppCompileAction;
 import com.google.devtools.build.lib.rules.cpp.CppIncludeScanningContext;
 import com.google.devtools.build.lib.rules.cpp.IncludeProcessing;
@@ -25,7 +24,6 @@
 import javax.annotation.Nullable;
 
 /** A CppIncludeScanningContext that does nothing. */
-@ExecutionStrategy(contextType = CppIncludeScanningContext.class)
 class DummyCppIncludeScanningContext implements CppIncludeScanningContext {
   @Override
   @Nullable
diff --git a/src/main/java/com/google/devtools/build/lib/standalone/StandaloneSpawnStrategy.java b/src/main/java/com/google/devtools/build/lib/standalone/StandaloneSpawnStrategy.java
index e08c962..914342a 100644
--- a/src/main/java/com/google/devtools/build/lib/standalone/StandaloneSpawnStrategy.java
+++ b/src/main/java/com/google/devtools/build/lib/standalone/StandaloneSpawnStrategy.java
@@ -13,8 +13,6 @@
 // limitations under the License.
 package com.google.devtools.build.lib.standalone;
 
-import com.google.devtools.build.lib.actions.ExecutionStrategy;
-import com.google.devtools.build.lib.actions.SpawnActionContext;
 import com.google.devtools.build.lib.exec.AbstractSpawnStrategy;
 import com.google.devtools.build.lib.exec.SpawnRunner;
 import com.google.devtools.build.lib.vfs.Path;
@@ -22,7 +20,6 @@
 /**
  * Strategy that uses subprocessing to execute a process.
  */
-@ExecutionStrategy(name = { "standalone", "local" }, contextType = SpawnActionContext.class)
 public class StandaloneSpawnStrategy extends AbstractSpawnStrategy {
   public StandaloneSpawnStrategy(Path execRoot, SpawnRunner spawnRunner) {
     super(execRoot, spawnRunner);
diff --git a/src/main/java/com/google/devtools/build/lib/worker/WorkerSpawnStrategy.java b/src/main/java/com/google/devtools/build/lib/worker/WorkerSpawnStrategy.java
index 462b12f..7d955d3 100644
--- a/src/main/java/com/google/devtools/build/lib/worker/WorkerSpawnStrategy.java
+++ b/src/main/java/com/google/devtools/build/lib/worker/WorkerSpawnStrategy.java
@@ -13,8 +13,6 @@
 // limitations under the License.
 package com.google.devtools.build.lib.worker;
 
-import com.google.devtools.build.lib.actions.ExecutionStrategy;
-import com.google.devtools.build.lib.actions.SpawnActionContext;
 import com.google.devtools.build.lib.exec.AbstractSpawnStrategy;
 import com.google.devtools.build.lib.vfs.Path;
 
@@ -22,10 +20,6 @@
  * A spawn action context that launches Spawns the first time they are used in a persistent mode and
  * then shards work over all the processes.
  */
-@ExecutionStrategy(
-  name = {"worker"},
-  contextType = SpawnActionContext.class
-)
 public final class WorkerSpawnStrategy extends AbstractSpawnStrategy {
 
   public WorkerSpawnStrategy(Path execRoot, WorkerSpawnRunner spawnRunner) {
diff --git a/src/test/java/com/google/devtools/build/lib/analysis/util/AnalysisTestUtil.java b/src/test/java/com/google/devtools/build/lib/analysis/util/AnalysisTestUtil.java
index 04a2356..da62d1f 100644
--- a/src/test/java/com/google/devtools/build/lib/analysis/util/AnalysisTestUtil.java
+++ b/src/test/java/com/google/devtools/build/lib/analysis/util/AnalysisTestUtil.java
@@ -29,7 +29,6 @@
 import com.google.devtools.build.lib.actions.Artifact;
 import com.google.devtools.build.lib.actions.Artifact.SpecialArtifact;
 import com.google.devtools.build.lib.actions.ArtifactRoot;
-import com.google.devtools.build.lib.actions.ExecutionStrategy;
 import com.google.devtools.build.lib.actions.MiddlemanFactory;
 import com.google.devtools.build.lib.actions.MutableActionGraph;
 import com.google.devtools.build.lib.actions.MutableActionGraph.ActionConflictException;
@@ -263,7 +262,6 @@
   }
 
   /** A WorkspaceStatusAction.Context that has no stable keys and no volatile keys. */
-  @ExecutionStrategy(contextType = WorkspaceStatusAction.Context.class)
   public static class DummyWorkspaceStatusActionContext implements WorkspaceStatusAction.Context {
     @Override
     public ImmutableMap<String, Key> getStableKeys() {
diff --git a/src/test/java/com/google/devtools/build/lib/exec/SpawnActionContextMapsTest.java b/src/test/java/com/google/devtools/build/lib/exec/SpawnActionContextMapsTest.java
index 24613d4..e79b95b 100644
--- a/src/test/java/com/google/devtools/build/lib/exec/SpawnActionContextMapsTest.java
+++ b/src/test/java/com/google/devtools/build/lib/exec/SpawnActionContextMapsTest.java
@@ -21,7 +21,6 @@
 import com.google.devtools.build.lib.actions.ActionExecutionContext;
 import com.google.devtools.build.lib.actions.ActionExecutionMetadata;
 import com.google.devtools.build.lib.actions.ExecException;
-import com.google.devtools.build.lib.actions.ExecutionStrategy;
 import com.google.devtools.build.lib.actions.Spawn;
 import com.google.devtools.build.lib.actions.SpawnActionContext;
 import com.google.devtools.build.lib.actions.SpawnResult;
@@ -127,7 +126,6 @@
     return mockSpawn;
   }
 
-  @ExecutionStrategy(contextType = SpawnActionContext.class, name = "ac1")
   private static class AC1 implements SpawnActionContext {
     @Override
     public ImmutableList<SpawnResult> exec(
@@ -142,7 +140,6 @@
     }
   }
 
-  @ExecutionStrategy(contextType = SpawnActionContext.class, name = "ac2")
   private static class AC2 implements SpawnActionContext {
     @Override
     public ImmutableList<SpawnResult> exec(