aboutsummaryrefslogtreecommitdiffhomepage
path: root/src
diff options
context:
space:
mode:
authorGravatar Andrew Pellegrini <apell@google.com>2015-10-26 20:58:07 +0000
committerGravatar Florian Weikert <fwe@google.com>2015-10-27 11:49:44 +0000
commit4835caa1138954eb5700a0055d636b405a8d1482 (patch)
treed4bbe26323b25546cea64837e6c1de95ef60eaad /src
parent6870e91fb40cc015c2af8ec136e991e7203d8fde (diff)
Refactor instrumentation in JavaCommon to remove Android specific content.
-- MOS_MIGRATED_REVID=106333445
Diffstat (limited to 'src')
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/android/AndroidCommon.java7
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/java/JavaCommon.java25
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(