From de667c6ee28525d2ee2517b2d3c49fb0e5c5f548 Mon Sep 17 00:00:00 2001 From: Googler Date: Wed, 23 Sep 2015 16:48:47 +0000 Subject: Remove gen jar info from JavaRuleOutputJarsProvider. -- MOS_MIGRATED_REVID=103754313 --- .../build/lib/ideinfo/AndroidStudioInfoAspect.java | 33 ++++++++++++++-------- .../build/lib/rules/android/AndroidCommon.java | 4 +-- .../build/lib/rules/android/AndroidLibrary.java | 8 ------ .../devtools/build/lib/rules/java/JavaBinary.java | 5 +--- .../devtools/build/lib/rules/java/JavaLibrary.java | 5 +--- .../lib/rules/java/JavaRuleOutputJarsProvider.java | 14 +-------- .../lib/ideinfo/AndroidStudioInfoAspectTest.java | 3 +- 7 files changed, 28 insertions(+), 44 deletions(-) (limited to 'src') 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 7237be676f..54f8449970 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 @@ -49,6 +49,7 @@ import com.google.devtools.build.lib.rules.android.AndroidIdeInfoProvider; import com.google.devtools.build.lib.rules.android.AndroidIdeInfoProvider.SourceDirectory; import com.google.devtools.build.lib.rules.android.AndroidSdkProvider; import com.google.devtools.build.lib.rules.java.JavaExportsProvider; +import com.google.devtools.build.lib.rules.java.JavaGenJarsProvider; import com.google.devtools.build.lib.rules.java.JavaRuleOutputJarsProvider; import com.google.devtools.build.lib.rules.java.JavaSourceInfoProvider; import com.google.devtools.build.lib.vfs.Path; @@ -305,6 +306,12 @@ public class AndroidStudioInfoAspect implements ConfiguredAspectFactory { } } + JavaGenJarsProvider genJarsProvider = + base.getProvider(JavaGenJarsProvider.class); + if (genJarsProvider != null) { + collectGenJars(builder, genJarsProvider); + } + Collection sourceFiles = getSources(base); for (Artifact sourceFile : sourceFiles) { @@ -354,20 +361,24 @@ public class AndroidStudioInfoAspect implements ConfiguredAspectFactory { if (jarsBuilder.hasJar() || jarsBuilder.hasSourceJar()) { builder.addJars(jarsBuilder.build()); } + } - + private static void collectGenJars(JavaRuleIdeInfo.Builder builder, + JavaGenJarsProvider genJarsProvider) { LibraryArtifact.Builder genjarsBuilder = LibraryArtifact.newBuilder(); - Artifact genClassJar = outputJarsProvider.getGenClassJar(); - if (genClassJar != null) { - genjarsBuilder.setJar(makeArtifactLocation(genClassJar)); - } - Artifact gensrcJar = outputJarsProvider.getGensrcJar(); - if (gensrcJar != null) { - genjarsBuilder.setSourceJar(makeArtifactLocation(gensrcJar)); - } - if (genjarsBuilder.hasJar() || genjarsBuilder.hasSourceJar()) { - builder.addGeneratedJars(genjarsBuilder.build()); + if (genJarsProvider.usesAnnotationProcessing()) { + Artifact genClassJar = genJarsProvider.getGenClassJar(); + if (genClassJar != null) { + genjarsBuilder.setJar(makeArtifactLocation(genClassJar)); + } + Artifact gensrcJar = genJarsProvider.getGenSourceJar(); + if (gensrcJar != null) { + genjarsBuilder.setSourceJar(makeArtifactLocation(gensrcJar)); + } + if (genjarsBuilder.hasJar() || genjarsBuilder.hasSourceJar()) { + builder.addGeneratedJars(genjarsBuilder.build()); + } } } 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 0ec0aa0fe5..a881ca827f 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 @@ -611,12 +611,10 @@ public class AndroidCommon { javaCommon.addTransitiveInfoProviders(builder, filesToBuild, classJar); javaCommon.addGenJarsProvider(builder, genClassJar, genSourceJar); - builder.add( - JavaRuleOutputJarsProvider.class, - new JavaRuleOutputJarsProvider(classJar, srcJar, genClassJar, genSourceJar)); return builder .setFilesToBuild(filesToBuild) + .add(JavaRuleOutputJarsProvider.class, new JavaRuleOutputJarsProvider(classJar, srcJar)) .add( JavaRuntimeJarProvider.class, new JavaRuntimeJarProvider(javaCommon.getJavaCompilationArtifacts().getRuntimeJars())) diff --git a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidLibrary.java b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidLibrary.java index d01895b0f7..30112f796c 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidLibrary.java +++ b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidLibrary.java @@ -34,7 +34,6 @@ import com.google.devtools.build.lib.rules.android.AndroidResourcesProvider.Reso import com.google.devtools.build.lib.rules.cpp.LinkerInput; import com.google.devtools.build.lib.rules.java.JavaCommon; import com.google.devtools.build.lib.rules.java.JavaNeverlinkInfoProvider; -import com.google.devtools.build.lib.rules.java.JavaRuleOutputJarsProvider; import com.google.devtools.build.lib.rules.java.JavaSemantics; import com.google.devtools.build.lib.rules.java.JavaSkylarkApiProvider; import com.google.devtools.build.lib.rules.java.JavaSourceInfoProvider; @@ -193,13 +192,6 @@ public abstract class AndroidLibrary implements RuleConfiguredTargetFactory { .addSkylarkTransitiveInfo(JavaSkylarkApiProvider.NAME, new JavaSkylarkApiProvider()) .add(JavaNeverlinkInfoProvider.class, new JavaNeverlinkInfoProvider(androidCommon.isNeverLink())) - // TODO(ahumesky): The gensrcJar is passed in for the srcJar -- is this a mistake? - .add(JavaRuleOutputJarsProvider.class, - new JavaRuleOutputJarsProvider( - classesJar, - androidCommon.getGenSourceJar(), - androidCommon.getGenClassJar(), - androidCommon.getGenSourceJar())) .add(JavaSourceInfoProvider.class, JavaSourceInfoProvider.fromJavaTargetAttributes(javaTargetAttributes, javaSemantics)) .add(JavaSourceJarsProvider.class, androidCommon.getJavaSourceJarsProvider()) 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 4ec774494e..bc1aed908d 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 @@ -212,10 +212,6 @@ public class JavaBinary implements RuleConfiguredTargetFactory { genClassJar, genSourceJar, ImmutableMap.of(), helper, filesBuilder, builder); - builder.add( - JavaRuleOutputJarsProvider.class, - new JavaRuleOutputJarsProvider(classJar, srcJar, genClassJar, genSourceJar)); - NestedSet filesToBuild = filesBuilder.build(); collectDefaultRunfiles(runfilesBuilder, ruleContext, common, filesToBuild, launcher, @@ -281,6 +277,7 @@ public class JavaBinary implements RuleConfiguredTargetFactory { return builder .setFilesToBuild(filesToBuild) + .add(JavaRuleOutputJarsProvider.class, new JavaRuleOutputJarsProvider(classJar, srcJar)) .add(RunfilesProvider.class, runfilesProvider) .setRunfilesSupport(runfilesSupport, executable) .add( diff --git a/src/main/java/com/google/devtools/build/lib/rules/java/JavaLibrary.java b/src/main/java/com/google/devtools/build/lib/rules/java/JavaLibrary.java index 11f9ebbf46..ac8c157632 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/java/JavaLibrary.java +++ b/src/main/java/com/google/devtools/build/lib/rules/java/JavaLibrary.java @@ -217,15 +217,12 @@ public class JavaLibrary implements RuleConfiguredTargetFactory { genClassJar, genSourceJar, ImmutableMap.of(), helper, filesBuilder, builder); - builder.add( - JavaRuleOutputJarsProvider.class, - new JavaRuleOutputJarsProvider(classJar, srcJar, genClassJar, genSourceJar)); - NestedSet filesToBuild = filesBuilder.build(); common.addTransitiveInfoProviders(builder, filesToBuild, classJar); common.addGenJarsProvider(builder, genClassJar, genSourceJar); builder + .add(JavaRuleOutputJarsProvider.class, new JavaRuleOutputJarsProvider(classJar, srcJar)) .add(JavaRuntimeJarProvider.class, new JavaRuntimeJarProvider(common.getJavaCompilationArtifacts().getRuntimeJars())) .add(RunfilesProvider.class, RunfilesProvider.simple(runfiles)) diff --git a/src/main/java/com/google/devtools/build/lib/rules/java/JavaRuleOutputJarsProvider.java b/src/main/java/com/google/devtools/build/lib/rules/java/JavaRuleOutputJarsProvider.java index e553010f96..092d0c82eb 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/java/JavaRuleOutputJarsProvider.java +++ b/src/main/java/com/google/devtools/build/lib/rules/java/JavaRuleOutputJarsProvider.java @@ -27,15 +27,11 @@ import javax.annotation.Nullable; public final class JavaRuleOutputJarsProvider implements TransitiveInfoProvider { @Nullable private final Artifact classJar; private final Artifact srcJar; - private final Artifact genClassJar; - private final Artifact gensrcJar; public JavaRuleOutputJarsProvider( - Artifact classJar, Artifact srcJar, Artifact genClassJar, Artifact gensrcJar) { + Artifact classJar, Artifact srcJar) { this.classJar = classJar; this.srcJar = srcJar; - this.genClassJar = genClassJar; - this.gensrcJar = gensrcJar; } @Nullable @@ -46,12 +42,4 @@ public final class JavaRuleOutputJarsProvider implements TransitiveInfoProvider public Artifact getSrcJar() { return srcJar; } - - public Artifact getGenClassJar() { - return genClassJar; - } - - public Artifact getGensrcJar() { - return gensrcJar; - } } diff --git a/src/test/java/com/google/devtools/build/lib/ideinfo/AndroidStudioInfoAspectTest.java b/src/test/java/com/google/devtools/build/lib/ideinfo/AndroidStudioInfoAspectTest.java index 309f58d2de..a45f7e1879 100644 --- a/src/test/java/com/google/devtools/build/lib/ideinfo/AndroidStudioInfoAspectTest.java +++ b/src/test/java/com/google/devtools/build/lib/ideinfo/AndroidStudioInfoAspectTest.java @@ -439,7 +439,8 @@ public class AndroidStudioInfoAspectTest extends BuildViewTestCase { assertThat(ruleInfo.getKind()).isEqualTo(Kind.ANDROID_LIBRARY); assertThat(relativePathsForSourcesOf(ruleInfo)).containsExactly("com/google/example/Main.java"); assertThat(transform(ruleInfo.getJavaRuleIdeInfo().getJarsList(), LIBRARY_ARTIFACT_TO_STRING)) - .containsExactly(""); + .containsExactly( + ""); assertThat( transform( ruleInfo.getAndroidRuleIdeInfo().getResourcesList(), ARTIFACT_TO_RELATIVE_PATH)) -- cgit v1.2.3