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;