aboutsummaryrefslogtreecommitdiffhomepage
path: root/src
diff options
context:
space:
mode:
authorGravatar Googler <noreply@google.com>2015-09-23 16:48:47 +0000
committerGravatar Philipp Wollermann <philwo@google.com>2015-09-24 14:17:32 +0000
commitde667c6ee28525d2ee2517b2d3c49fb0e5c5f548 (patch)
tree441f5446c6b658200312ce5a6c77babf9bdc7119 /src
parent590ba0abea8eff418978d4ef183110d4605a5008 (diff)
Remove gen jar info from JavaRuleOutputJarsProvider.
-- MOS_MIGRATED_REVID=103754313
Diffstat (limited to 'src')
-rw-r--r--src/main/java/com/google/devtools/build/lib/ideinfo/AndroidStudioInfoAspect.java33
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/android/AndroidCommon.java4
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/android/AndroidLibrary.java8
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/java/JavaBinary.java5
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/java/JavaLibrary.java5
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/java/JavaRuleOutputJarsProvider.java14
-rw-r--r--src/test/java/com/google/devtools/build/lib/ideinfo/AndroidStudioInfoAspectTest.java3
7 files changed, 28 insertions, 44 deletions
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<Artifact> 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.<Artifact, Artifact>of(),
helper, filesBuilder, builder);
- builder.add(
- JavaRuleOutputJarsProvider.class,
- new JavaRuleOutputJarsProvider(classJar, srcJar, genClassJar, genSourceJar));
-
NestedSet<Artifact> 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.<Artifact, Artifact>of(),
helper, filesBuilder, builder);
- builder.add(
- JavaRuleOutputJarsProvider.class,
- new JavaRuleOutputJarsProvider(classJar, srcJar, genClassJar, genSourceJar));
-
NestedSet<Artifact> 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("<jar:com/google/example/libl.jar>");
+ .containsExactly(
+ "<jar:com/google/example/libl.jar><source:com/google/example/libl-src.jar>");
assertThat(
transform(
ruleInfo.getAndroidRuleIdeInfo().getResourcesList(), ARTIFACT_TO_RELATIVE_PATH))