aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main
diff options
context:
space:
mode:
authorGravatar dbabkin <dbabkin@google.com>2017-12-05 07:12:12 -0800
committerGravatar Copybara-Service <copybara-piper@google.com>2017-12-05 07:15:32 -0800
commita1c3231f3b48f22638529960257c59c71c38b668 (patch)
tree6f28de948273c9aebfb99b1dbd389d49cdf25278 /src/main
parent1fa2dfb28c5318cfa8190f47297f75e155d88e11 (diff)
Expose getGenJarsProvider methods from JavaSkylarkApiProvider in JavaInfo
JavaSkylarkApiProvider will be deprecated soon and replaced by JavaInfo. Methods exposed: getGenJarsProvider() Made changed in all relevant Java family rules, to build JavaGenJarsProvider provider and assign to JavaInfo RELNOTES:none PiperOrigin-RevId: 177950965
Diffstat (limited to 'src/main')
-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/android/AndroidLocalTestBase.java7
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/java/JavaBinary.java6
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/java/JavaCommon.java20
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/java/JavaInfo.java13
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/java/JavaLibrary.java6
6 files changed, 45 insertions, 14 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 0c6d526f7d..24a1de620d 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.JavaCompilationArgs.ClasspathTyp
import com.google.devtools.build.lib.rules.java.JavaCompilationArgsProvider;
import com.google.devtools.build.lib.rules.java.JavaCompilationArtifacts;
import com.google.devtools.build.lib.rules.java.JavaCompilationHelper;
+import com.google.devtools.build.lib.rules.java.JavaGenJarsProvider;
import com.google.devtools.build.lib.rules.java.JavaInfo;
import com.google.devtools.build.lib.rules.java.JavaRuleOutputJarsProvider;
import com.google.devtools.build.lib.rules.java.JavaRuleOutputJarsProvider.OutputJar;
@@ -790,13 +791,17 @@ public class AndroidCommon {
compileTimeDependencyArtifacts,
NestedSetBuilder.<Artifact>emptySet(Order.STABLE_ORDER));
javaCommon.addTransitiveInfoProviders(builder, filesToBuild, classJar, ANDROID_COLLECTION_SPEC);
- javaCommon.addGenJarsProvider(builder, genClassJar, genSourceJar);
+
+ JavaGenJarsProvider javaGenJarsProvider =
+ javaCommon.createJavaGenJarsProvider(genClassJar, genSourceJar);
+ javaCommon.addJavaGenJarsProvider(builder, javaGenJarsProvider);
DataBinding.maybeAddProvider(builder, ruleContext);
JavaInfo javaInfo = JavaInfo.Builder.create()
.addProvider(JavaCompilationArgsProvider.class, compilationArgsProvider)
.addProvider(JavaRuleOutputJarsProvider.class, ruleOutputJarsProvider)
.addProvider(JavaSourceJarsProvider.class, sourceJarsProvider)
+ .addProvider(JavaGenJarsProvider.class, javaGenJarsProvider)
.build();
return builder
diff --git a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidLocalTestBase.java b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidLocalTestBase.java
index 0ddfa733e2..0842f68305 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidLocalTestBase.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidLocalTestBase.java
@@ -45,6 +45,7 @@ import com.google.devtools.build.lib.rules.java.JavaCompilationArtifacts;
import com.google.devtools.build.lib.rules.java.JavaCompilationHelper;
import com.google.devtools.build.lib.rules.java.JavaConfiguration;
import com.google.devtools.build.lib.rules.java.JavaConfiguration.OneVersionEnforcementLevel;
+import com.google.devtools.build.lib.rules.java.JavaGenJarsProvider;
import com.google.devtools.build.lib.rules.java.JavaHelper;
import com.google.devtools.build.lib.rules.java.JavaInfo;
import com.google.devtools.build.lib.rules.java.JavaPrimaryClassProvider;
@@ -301,7 +302,10 @@ public abstract class AndroidLocalTestBase implements RuleConfiguredTargetFactor
JavaRuleOutputJarsProvider ruleOutputJarsProvider = javaRuleOutputJarsProviderBuilder.build();
javaCommon.addTransitiveInfoProviders(builder, filesToBuild, classJar);
- javaCommon.addGenJarsProvider(builder, genClassJar, genSourceJar);
+
+ JavaGenJarsProvider javaGenJarsProvider =
+ javaCommon.createJavaGenJarsProvider(genClassJar, genSourceJar);
+ javaCommon.addJavaGenJarsProvider(builder, javaGenJarsProvider);
// Just confirming that there are no aliases being used here.
AndroidFeatureFlagSetProvider.getAndValidateFlagMapFromRuleContext(ruleContext);
@@ -317,6 +321,7 @@ public abstract class AndroidLocalTestBase implements RuleConfiguredTargetFactor
JavaInfo.Builder.create()
.addProvider(JavaSourceJarsProvider.class, sourceJarsProvider)
.addProvider(JavaRuleOutputJarsProvider.class, ruleOutputJarsProvider)
+ .addProvider(JavaGenJarsProvider.class, javaGenJarsProvider)
.build();
return builder
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 2e7f0c5bd0..73a9b356f6 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
@@ -428,11 +428,15 @@ public class JavaBinary implements RuleConfiguredTargetFactory {
JavaRuleOutputJarsProvider ruleOutputJarsProvider = ruleOutputJarsProviderBuilder.build();
common.addTransitiveInfoProviders(builder, filesToBuild, classJar);
- common.addGenJarsProvider(builder, genClassJar, genSourceJar);
+
+ JavaGenJarsProvider javaGenJarsProvider =
+ common.createJavaGenJarsProvider(genClassJar, genSourceJar);
+ common.addJavaGenJarsProvider(builder, javaGenJarsProvider);
JavaInfo javaInfo = JavaInfo.Builder.create()
.addProvider(JavaSourceJarsProvider.class, sourceJarsProvider)
.addProvider(JavaRuleOutputJarsProvider.class, ruleOutputJarsProvider)
+ .addProvider(JavaGenJarsProvider.class, javaGenJarsProvider)
.build();
return builder
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 f13287bf24..78d49c8015 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
@@ -737,20 +737,22 @@ public class JavaCommon {
/*withBaselineCoverage*/!TargetUtils.isTestRule(ruleContext.getTarget()));
}
- public void addGenJarsProvider(
+ public JavaGenJarsProvider createJavaGenJarsProvider(
+ @Nullable Artifact genClassJar, @Nullable Artifact genSourceJar) {
+ return collectTransitiveGenJars(
+ javaCompilationHelper.usesAnnotationProcessing(), genClassJar, genSourceJar);
+ }
+
+ public void addJavaGenJarsProvider(
RuleConfiguredTargetBuilder builder,
- @Nullable Artifact genClassJar,
- @Nullable Artifact genSourceJar) {
- JavaGenJarsProvider genJarsProvider = collectTransitiveGenJars(
- javaCompilationHelper.usesAnnotationProcessing(),
- genClassJar, genSourceJar);
+ JavaGenJarsProvider javaGenJarsProvider) {
NestedSetBuilder<Artifact> genJarsBuilder = NestedSetBuilder.stableOrder();
- genJarsBuilder.addTransitive(genJarsProvider.getTransitiveGenClassJars());
- genJarsBuilder.addTransitive(genJarsProvider.getTransitiveGenSourceJars());
+ genJarsBuilder.addTransitive(javaGenJarsProvider.getTransitiveGenClassJars());
+ genJarsBuilder.addTransitive(javaGenJarsProvider.getTransitiveGenSourceJars());
builder
- .add(JavaGenJarsProvider.class, genJarsProvider)
+ .addProvider(javaGenJarsProvider)
.addOutputGroup(JavaSemantics.GENERATED_JARS_OUTPUT_GROUP, genJarsBuilder.build());
}
diff --git a/src/main/java/com/google/devtools/build/lib/rules/java/JavaInfo.java b/src/main/java/com/google/devtools/build/lib/rules/java/JavaInfo.java
index 5f49493d8a..3bd850f07c 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/java/JavaInfo.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/java/JavaInfo.java
@@ -59,7 +59,8 @@ public final class JavaInfo extends NativeInfo {
ProtoJavaApiInfoAspectProvider.class,
JavaRuleOutputJarsProvider.class,
JavaRunfilesProvider.class,
- JavaPluginInfoProvider.class
+ JavaPluginInfoProvider.class,
+ JavaGenJarsProvider.class
);
private final TransitiveInfoProviderMap providers;
@@ -289,6 +290,16 @@ public final class JavaInfo extends NativeInfo {
@SkylarkCallable(
+ name = "annotation_processing",
+ structField = true,
+ allowReturnNones = true,
+ doc = "Returns information about annotation processing for this Java target."
+ )
+ public JavaGenJarsProvider getGenJarsProvider() {
+ return getProvider(JavaGenJarsProvider.class);
+ }
+
+ @SkylarkCallable(
name = "transitive_deps",
doc = "Returns the transitive set of Jars required to build the target.",
structField = true
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 3f710cc348..890b07bd8f 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
@@ -209,7 +209,10 @@ public class JavaLibrary implements RuleConfiguredTargetFactory {
NestedSet<Artifact> filesToBuild = filesBuilder.build();
common.addTransitiveInfoProviders(builder, filesToBuild, classJar);
- common.addGenJarsProvider(builder, genClassJar, genSourceJar);
+
+ JavaGenJarsProvider javaGenJarsProvider =
+ common.createJavaGenJarsProvider(genClassJar, genSourceJar);
+ common.addJavaGenJarsProvider(builder, javaGenJarsProvider);
NestedSet<Artifact> proguardSpecs = new ProguardLibrary(ruleContext).collectProguardSpecs();
@@ -228,6 +231,7 @@ public class JavaLibrary implements RuleConfiguredTargetFactory {
.addProvider(JavaRuleOutputJarsProvider.class, ruleOutputJarsProvider)
// TODO(bazel-team): this should only happen for java_plugin
.addProvider(JavaPluginInfoProvider.class, pluginInfoProvider)
+ .addProvider(JavaGenJarsProvider.class, javaGenJarsProvider)
.build();
builder