Add a flag to stop adding the testrunner to java_test.deps

PiperOrigin-RevId: 210843901
diff --git a/src/main/java/com/google/devtools/build/lib/rules/java/JavaConfiguration.java b/src/main/java/com/google/devtools/build/lib/rules/java/JavaConfiguration.java
index b774719..ff5b8d1 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/java/JavaConfiguration.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/java/JavaConfiguration.java
@@ -174,6 +174,7 @@
   private final boolean explicitJavaTestDeps;
   private final boolean experimentalTestRunner;
   private final boolean jplPropagateCcLinkParamsStore;
+  private final boolean addTestSupportToCompileTimeDeps;
   private final ImmutableList<Label> pluginList;
 
   // TODO(dmarting): remove once we have a proper solution for #2539
@@ -211,6 +212,7 @@
     this.explicitJavaTestDeps = javaOptions.explicitJavaTestDeps;
     this.experimentalTestRunner = javaOptions.experimentalTestRunner;
     this.jplPropagateCcLinkParamsStore = javaOptions.jplPropagateCcLinkParamsStore;
+    this.addTestSupportToCompileTimeDeps = javaOptions.addTestSupportToCompileTimeDeps;
 
     ImmutableList.Builder<Label> translationsBuilder = ImmutableList.builder();
     for (String s : javaOptions.translationTargets) {
@@ -266,6 +268,7 @@
       boolean explicitJavaTestDeps,
       boolean experimentalTestRunner,
       boolean jplPropagateCcLinkParamsStore,
+      boolean addTestSupportToCompileTimeDeps,
       ImmutableList<Label> pluginList,
       boolean useLegacyBazelJavaTest) {
     this.commandLineJavacFlags = commandLineJavacFlags;
@@ -296,6 +299,7 @@
     this.explicitJavaTestDeps = explicitJavaTestDeps;
     this.experimentalTestRunner = experimentalTestRunner;
     this.jplPropagateCcLinkParamsStore = jplPropagateCcLinkParamsStore;
+    this.addTestSupportToCompileTimeDeps = addTestSupportToCompileTimeDeps;
     this.pluginList = pluginList;
     this.useLegacyBazelJavaTest = useLegacyBazelJavaTest;
   }
@@ -512,6 +516,10 @@
     return jplPropagateCcLinkParamsStore;
   }
 
+  public boolean addTestSupportToCompileTimeDeps() {
+    return addTestSupportToCompileTimeDeps;
+  }
+
   public List<Label> getPlugins() {
     return pluginList;
   }
diff --git a/src/main/java/com/google/devtools/build/lib/rules/java/JavaOptions.java b/src/main/java/com/google/devtools/build/lib/rules/java/JavaOptions.java
index 0d3472c..fc236f9 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/java/JavaOptions.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/java/JavaOptions.java
@@ -538,6 +538,16 @@
   public boolean allowRuntimeDepsOnNeverLink;
 
   @Option(
+      name = "experimental_add_test_support_to_compile_time_deps",
+      defaultValue = "true",
+      documentationCategory = OptionDocumentationCategory.UNDOCUMENTED,
+      effectTags = {OptionEffectTag.UNKNOWN},
+      help =
+          "Flag to help transition away from adding test support libraries to the compile-time"
+              + " deps of Java test rules.")
+  public boolean addTestSupportToCompileTimeDeps;
+
+  @Option(
     name = "jplPropagateCcLinkParamsStore",
     defaultValue = "false",
     documentationCategory = OptionDocumentationCategory.UNDOCUMENTED,
@@ -590,6 +600,7 @@
     // java_test targets can be used as a host tool, Ex: as a validating tool on a genrule.
     host.enforceOneVersionOnJavaTests = enforceOneVersionOnJavaTests;
     host.allowRuntimeDepsOnNeverLink = allowRuntimeDepsOnNeverLink;
+    host.addTestSupportToCompileTimeDeps = addTestSupportToCompileTimeDeps;
 
     host.jplPropagateCcLinkParamsStore = jplPropagateCcLinkParamsStore;