Clean up --strict_android_deps and --strict_java_deps

Consolitate the two flags now that --strict_android_deps is rolled out. Also
propagate --strict_java_deps into the host config.

Fixes #1896

--
MOS_MIGRATED_REVID=135679732
diff --git a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidCommon.java b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidCommon.java
index b99ee50..b13e8d6 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidCommon.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidCommon.java
@@ -13,10 +13,6 @@
 // limitations under the License.
 package com.google.devtools.build.lib.rules.android;
 
-import static com.google.devtools.build.lib.analysis.config.BuildConfiguration.StrictDepsMode.DEFAULT;
-import static com.google.devtools.build.lib.analysis.config.BuildConfiguration.StrictDepsMode.ERROR;
-import static com.google.devtools.build.lib.analysis.config.BuildConfiguration.StrictDepsMode.STRICT;
-
 import com.google.common.base.Optional;
 import com.google.common.collect.ImmutableList;
 import com.google.common.collect.ImmutableSet;
@@ -35,7 +31,6 @@
 import com.google.devtools.build.lib.analysis.TransitiveInfoProvider;
 import com.google.devtools.build.lib.analysis.actions.FileWriteAction;
 import com.google.devtools.build.lib.analysis.actions.SpawnAction;
-import com.google.devtools.build.lib.analysis.config.BuildConfiguration.StrictDepsMode;
 import com.google.devtools.build.lib.collect.IterablesChain;
 import com.google.devtools.build.lib.collect.nestedset.NestedSet;
 import com.google.devtools.build.lib.collect.nestedset.NestedSetBuilder;
@@ -605,7 +600,6 @@
         ruleContext, semantics, javaCommon.getJavacOpts(), attributes);
 
     helper.addLibrariesToAttributes(javaCommon.targetsTreatedAsDeps(ClasspathType.COMPILE_ONLY));
-    attributes.setStrictJavaDeps(getStrictAndroidDeps());
     attributes.setRuleKind(ruleContext.getRule().getRuleClass());
     attributes.setTargetLabel(ruleContext.getLabel());
 
@@ -615,13 +609,6 @@
     return helper;
   }
 
-  private StrictDepsMode getStrictAndroidDeps() {
-    // Get command line strict_android_deps option
-    StrictDepsMode strict = ruleContext.getFragment(AndroidConfiguration.class).getStrictDeps();
-    // Use option if anything but DEFAULT, which is now equivalent to ERROR.
-    return (strict != DEFAULT && strict != STRICT) ? strict : ERROR;
-  }
-
   JackCompilationHelper initJack(JavaTargetAttributes attributes) throws InterruptedException {
     AndroidSdkProvider sdk = AndroidSdkProvider.fromRuleContext(ruleContext);
     return new JackCompilationHelper.Builder()
diff --git a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidConfiguration.java b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidConfiguration.java
index 9aaced1..e718d82 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidConfiguration.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidConfiguration.java
@@ -22,8 +22,6 @@
 import com.google.devtools.build.lib.analysis.config.BuildConfiguration.EmptyToNullLabelConverter;
 import com.google.devtools.build.lib.analysis.config.BuildConfiguration.Fragment;
 import com.google.devtools.build.lib.analysis.config.BuildConfiguration.LabelConverter;
-import com.google.devtools.build.lib.analysis.config.BuildConfiguration.StrictDepsConverter;
-import com.google.devtools.build.lib.analysis.config.BuildConfiguration.StrictDepsMode;
 import com.google.devtools.build.lib.analysis.config.BuildOptions;
 import com.google.devtools.build.lib.analysis.config.ConfigurationEnvironment;
 import com.google.devtools.build.lib.analysis.config.ConfigurationFragmentFactory;
@@ -278,15 +276,6 @@
     )
     public DynamicModeFlag dynamicMode;
 
-    @Option(name = "strict_android_deps",
-        allowMultiple = false,
-        defaultValue = "default",
-        converter = StrictDepsConverter.class,
-        category = "semantics",
-        help = "If true, checks that an Android target explicitly declares all directly used "
-            + "targets as dependencies.")
-    public StrictDepsMode strictDeps;
-
     // Label of filegroup combining all Android tools used as implicit dependencies of
     // android_* rules
     @Option(name = "android_sdk",
@@ -500,7 +489,6 @@
   }
 
   private final Label sdk;
-  private final StrictDepsMode strictDeps;
   private final String cpu;
   private final boolean incrementalNativeLibs;
   private final ConfigurationDistinguisher configurationDistinguisher;
@@ -521,7 +509,6 @@
   AndroidConfiguration(Options options, Label androidSdk) {
     this.sdk = androidSdk;
     this.incrementalNativeLibs = options.incrementalNativeLibs;
-    this.strictDeps = options.strictDeps;
     this.cpu = options.cpu;
     this.configurationDistinguisher = options.configurationDistinguisher;
     this.useJackForDexing = options.useJackForDexing;
@@ -553,10 +540,6 @@
     return sdk;
   }
 
-  public StrictDepsMode getStrictDeps() {
-    return strictDeps;
-  }
-
   /**
    * Returns true if Jack should be used in place of javac/dx for Android compilation.
    */
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 ebbb548..212784b 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
@@ -208,13 +208,17 @@
       )
   public Void javaTestDebug;
 
-  @Option(name = "strict_java_deps",
-      allowMultiple = false,
-      defaultValue = "default",
-      converter = StrictDepsConverter.class,
-      category = "semantics",
-      help = "If true, checks that a Java target explicitly declares all directly used "
-          + "targets as dependencies.")
+  @Option(
+    name = "strict_java_deps",
+    allowMultiple = false,
+    defaultValue = "default",
+    converter = StrictDepsConverter.class,
+    category = "semantics",
+    help =
+        "If true, checks that a Java target explicitly declares all directly used "
+            + "targets as dependencies.",
+    oldName = "strict_android_deps"
+  )
   public StrictDepsMode strictJavaDeps;
 
   @Option(
@@ -382,6 +386,8 @@
     host.javaDeps = javaDeps;
     host.javaClasspath = javaClasspath;
 
+    host.strictJavaDeps = strictJavaDeps;
+
     return host;
   }