diff options
author | Andrew Pellegrini <apell@google.com> | 2015-10-26 20:58:07 +0000 |
---|---|---|
committer | Florian Weikert <fwe@google.com> | 2015-10-27 11:49:44 +0000 |
commit | 4835caa1138954eb5700a0055d636b405a8d1482 (patch) | |
tree | d4bbe26323b25546cea64837e6c1de95ef60eaad /src/main/java/com/google/devtools/build/lib/rules | |
parent | 6870e91fb40cc015c2af8ec136e991e7203d8fde (diff) |
Refactor instrumentation in JavaCommon to remove Android specific content.
--
MOS_MIGRATED_REVID=106333445
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/rules')
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/rules/android/AndroidCommon.java | 7 | ||||
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/rules/java/JavaCommon.java | 25 |
2 files changed, 24 insertions, 8 deletions
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 7516032def..77cb1b7a1c 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 @@ -61,6 +61,7 @@ import com.google.devtools.build.lib.rules.java.JavaSemantics; import com.google.devtools.build.lib.rules.java.JavaSourceJarsProvider; import com.google.devtools.build.lib.rules.java.JavaTargetAttributes; import com.google.devtools.build.lib.rules.java.JavaUtil; +import com.google.devtools.build.lib.rules.test.InstrumentedFilesCollector.InstrumentationSpec; import com.google.devtools.build.lib.syntax.Type; import com.google.devtools.build.lib.vfs.PathFragment; @@ -77,6 +78,10 @@ import javax.annotation.Nullable; * artifacts to the other rules. */ public class AndroidCommon { + + public static final InstrumentationSpec ANDROID_COLLECTION_SPEC = JavaCommon.JAVA_COLLECTION_SPEC + .withDependencyAttributes("deps", "data", "exports", "runtime_deps", "binary_under_test"); + private final RuleContext ruleContext; private final JavaCommon javaCommon; @@ -555,7 +560,7 @@ public class AndroidCommon { .addRunfiles(ruleContext, RunfilesProvider.DEFAULT_RUNFILES) .build(); - javaCommon.addTransitiveInfoProviders(builder, filesToBuild, classJar); + javaCommon.addTransitiveInfoProviders(builder, filesToBuild, classJar, ANDROID_COLLECTION_SPEC); javaCommon.addGenJarsProvider(builder, genClassJar, genSourceJar); idlHelper.addTransitiveInfoProviders(builder, classJar, manifestProtoOutput); diff --git a/src/main/java/com/google/devtools/build/lib/rules/java/JavaCommon.java b/src/main/java/com/google/devtools/build/lib/rules/java/JavaCommon.java index fd9825f32b..ca9ae07b96 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/java/JavaCommon.java +++ b/src/main/java/com/google/devtools/build/lib/rules/java/JavaCommon.java @@ -76,7 +76,7 @@ public class JavaCommon { public static final InstrumentationSpec JAVA_COLLECTION_SPEC = new InstrumentationSpec( FileTypeSet.of(JavaSemantics.JAVA_SOURCE)) .withSourceAttributes("srcs") - .withDependencyAttributes("deps", "data", "exports", "runtime_deps", "binary_under_test"); + .withDependencyAttributes("deps", "data", "exports", "runtime_deps"); /** * Collects all metadata files generated by Java compilation actions. @@ -352,9 +352,9 @@ public class JavaCommon { } return new JavaGenJarsProvider( usesAnnotationProcessing, - genClassJar, + genClassJar, genSourceJar, - classJarsBuilder.build(), + classJarsBuilder.build(), sourceJarsBuilder.build() ); } @@ -566,16 +566,27 @@ public class JavaCommon { public void addTransitiveInfoProviders(RuleConfiguredTargetBuilder builder, NestedSet<Artifact> filesToBuild, @Nullable Artifact classJar) { - InstrumentedFilesProvider instrumentedFilesProvider = InstrumentedFilesCollector.collect( - ruleContext, JAVA_COLLECTION_SPEC, JAVA_METADATA_COLLECTOR, - filesToBuild, /*withBaselineCoverage*/!TargetUtils.isTestRule(ruleContext.getTarget())); + addTransitiveInfoProviders(builder, filesToBuild, classJar, JAVA_COLLECTION_SPEC); + } + + public void addTransitiveInfoProviders(RuleConfiguredTargetBuilder builder, + NestedSet<Artifact> filesToBuild, @Nullable Artifact classJar, + InstrumentationSpec instrumentationSpec) { + addInstrumentationFilesProvider(builder, filesToBuild, instrumentationSpec); builder - .add(InstrumentedFilesProvider.class, instrumentedFilesProvider) .add(JavaExportsProvider.class, new JavaExportsProvider(collectTransitiveExports())) .addOutputGroup(OutputGroupProvider.FILES_TO_COMPILE, getFilesToCompile(classJar)); } + private void addInstrumentationFilesProvider(RuleConfiguredTargetBuilder builder, + NestedSet<Artifact> filesToBuild, InstrumentationSpec instrumentationSpec) { + InstrumentedFilesProvider instrumentedFilesProvider = InstrumentedFilesCollector.collect( + ruleContext, instrumentationSpec, JAVA_METADATA_COLLECTOR, + filesToBuild, /*withBaselineCoverage*/!TargetUtils.isTestRule(ruleContext.getTarget())); + builder.add(InstrumentedFilesProvider.class, instrumentedFilesProvider); + } + public void addGenJarsProvider(RuleConfiguredTargetBuilder builder, @Nullable Artifact genClassJar, @Nullable Artifact genSourceJar) { JavaGenJarsProvider genJarsProvider = collectTransitiveGenJars( |