Support java_test and java_binary in AndroidStudioInfoAspect.

--
MOS_MIGRATED_REVID=103089400
diff --git a/src/main/java/com/google/devtools/build/lib/ideinfo/AndroidStudioInfoAspect.java b/src/main/java/com/google/devtools/build/lib/ideinfo/AndroidStudioInfoAspect.java
index 80fb82c..c2fe68c 100644
--- a/src/main/java/com/google/devtools/build/lib/ideinfo/AndroidStudioInfoAspect.java
+++ b/src/main/java/com/google/devtools/build/lib/ideinfo/AndroidStudioInfoAspect.java
@@ -189,7 +189,10 @@
     outputBuilder.addAllDependencies(transform(directDependencies, LABEL_TO_STRING));
     outputBuilder.addAllTransitiveDependencies(transform(transitiveDependencies, LABEL_TO_STRING));
 
-    if (ruleKind == Kind.JAVA_LIBRARY || ruleKind == Kind.JAVA_IMPORT) {
+    if (ruleKind == Kind.JAVA_LIBRARY
+        || ruleKind == Kind.JAVA_IMPORT
+        || ruleKind == Kind.JAVA_TEST
+        || ruleKind == Kind.JAVA_BINARY) {
       outputBuilder.setJavaRuleIdeInfo(makeJavaRuleIdeInfo(base));
     } else if (ruleKind == Kind.ANDROID_SDK) {
       outputBuilder.setAndroidSdkRuleInfo(
@@ -323,10 +326,15 @@
 
   private RuleIdeInfo.Kind getRuleKind(Rule rule, ConfiguredTarget base) {
     RuleIdeInfo.Kind kind;
-    if ("java_library".equals(rule.getRuleClassObject().getName())) {
+    String ruleClassName = rule.getRuleClassObject().getName();
+    if ("java_library".equals(ruleClassName)) {
       kind = RuleIdeInfo.Kind.JAVA_LIBRARY;
-    } else if ("java_import".equals(rule.getRuleClassObject().getName())) {
+    } else if ("java_import".equals(ruleClassName)) {
       kind = Kind.JAVA_IMPORT;
+    } else if ("java_test".equals(ruleClassName)) {
+      kind = Kind.JAVA_TEST;
+    } else if ("java_binary".equals(ruleClassName)) {
+      kind = Kind.JAVA_BINARY;
     } else if (base.getProvider(AndroidSdkProvider.class) != null) {
       kind = RuleIdeInfo.Kind.ANDROID_SDK;
     } else {
diff --git a/src/main/java/com/google/devtools/build/lib/rules/java/JavaBinary.java b/src/main/java/com/google/devtools/build/lib/rules/java/JavaBinary.java
index 48423fc..f6d7b51 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/java/JavaBinary.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/java/JavaBinary.java
@@ -210,6 +210,10 @@
     semantics.addProviders(ruleContext, common, jvmFlags, classJar, srcJar, genClassJar, gensrcJar,
         ImmutableMap.<Artifact, Artifact>of(), helper, filesBuilder, builder);
 
+    builder.add(
+        JavaRuleOutputJarsProvider.class,
+        new JavaRuleOutputJarsProvider(classJar, srcJar, genClassJar, gensrcJar));
+
     NestedSet<Artifact> filesToBuild = filesBuilder.build();
 
     collectDefaultRunfiles(runfilesBuilder, ruleContext, common, filesToBuild, launcher,
@@ -276,10 +280,14 @@
         .setFilesToBuild(filesToBuild)
         .add(RunfilesProvider.class, runfilesProvider)
         .setRunfilesSupport(runfilesSupport, executable)
-        .add(JavaRuntimeClasspathProvider.class,
+        .add(
+            JavaRuntimeClasspathProvider.class,
             new JavaRuntimeClasspathProvider(common.getRuntimeClasspath()))
-        .add(JavaSourceJarsProvider.class,
-            new JavaSourceJarsProvider(transitiveSourceJars, srcJars))
+        .add(
+            JavaSourceInfoProvider.class,
+            JavaSourceInfoProvider.fromJavaTargetAttributes(attributes, semantics))
+        .add(
+            JavaSourceJarsProvider.class, new JavaSourceJarsProvider(transitiveSourceJars, srcJars))
         .addOutputGroup(JavaSemantics.SOURCE_JARS_OUTPUT_GROUP, transitiveSourceJars)
         .addOutputGroup(JavaSemantics.GENERATED_JARS_OUTPUT_GROUP, genClassJar)
         .build();
diff --git a/src/main/protobuf/android_studio_ide_info.proto b/src/main/protobuf/android_studio_ide_info.proto
index b7dcda2..e81db55 100644
--- a/src/main/protobuf/android_studio_ide_info.proto
+++ b/src/main/protobuf/android_studio_ide_info.proto
@@ -52,8 +52,9 @@
     JAVA_LIBRARY = 4;
     JAVA_TEST = 5;
     JAVA_IMPORT = 6;
-    PROTO_LIBRARY = 7;
-    ANDROID_SDK = 8;
+    JAVA_BINARY = 7;
+    PROTO_LIBRARY = 8;
+    ANDROID_SDK = 9;
   }
 
   string label = 1;