aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools
diff options
context:
space:
mode:
authorGravatar elenairina <elenairina@google.com>2017-03-29 08:37:24 +0000
committerGravatar Philipp Wollermann <philwo@google.com>2017-03-29 14:22:48 +0200
commitceb0d88ad95e5f636f687cffa6c157293455b37e (patch)
treeeb82c8de14cd5429818eed448ad8983332da3737 /src/main/java/com/google/devtools
parenta4b37d096125e2e30c98713a4168ece040840a1b (diff)
Stop returning JavaSourceJarsProvider from java_library
since it's already returned via JavaProvider. PiperOrigin-RevId: 151550286
Diffstat (limited to 'src/main/java/com/google/devtools')
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/java/JavaCommon.java13
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/java/JavaImport.java4
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/java/JavaLibrary.java1
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/java/JavaProvider.java15
4 files changed, 19 insertions, 14 deletions
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 b6f0f2b448..b5ab681d1f 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
@@ -391,16 +391,9 @@ public class JavaCommon {
NestedSetBuilder<Artifact> builder = NestedSetBuilder.<Artifact>stableOrder()
.addAll(targetSrcJars);
- for (TransitiveInfoCollection dep : getDependencies()) {
- JavaSourceJarsProvider sourceJarsProvider = dep.getProvider(JavaSourceJarsProvider.class);
- if (sourceJarsProvider == null) {
- // A target can either have both JavaSourceJarsProvider and JavaProvider that
- // encapsulates the same information, or just one of them.
- sourceJarsProvider = JavaProvider.getProvider(JavaSourceJarsProvider.class, dep);
- }
- if (sourceJarsProvider != null) {
- builder.addTransitive(sourceJarsProvider.getTransitiveSourceJars());
- }
+ for (JavaSourceJarsProvider sourceJarsProvider : JavaProvider.getProvidersFromListOfTargets(
+ JavaSourceJarsProvider.class, getDependencies())) {
+ builder.addTransitive(sourceJarsProvider.getTransitiveSourceJars());
}
return builder.build();
diff --git a/src/main/java/com/google/devtools/build/lib/rules/java/JavaImport.java b/src/main/java/com/google/devtools/build/lib/rules/java/JavaImport.java
index 20b6eba8ca..efd0721b34 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/java/JavaImport.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/java/JavaImport.java
@@ -191,8 +191,8 @@ public class JavaImport implements RuleConfiguredTargetFactory {
if (srcJar != null) {
transitiveJavaSourceJarBuilder.add(srcJar);
}
- for (JavaSourceJarsProvider other :
- ruleContext.getPrerequisites("exports", Mode.TARGET, JavaSourceJarsProvider.class)) {
+ for (JavaSourceJarsProvider other : JavaProvider.getProvidersFromListOfTargets(
+ JavaSourceJarsProvider.class, ruleContext.getPrerequisites("exports", Mode.TARGET))) {
transitiveJavaSourceJarBuilder.addTransitive(other.getTransitiveSourceJars());
}
return transitiveJavaSourceJarBuilder.build();
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 bf9bce941a..403abd7aff 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
@@ -227,7 +227,6 @@ public class JavaLibrary implements RuleConfiguredTargetFactory {
.add(
JavaSourceInfoProvider.class,
JavaSourceInfoProvider.fromJavaTargetAttributes(attributes, semantics))
- .add(JavaSourceJarsProvider.class, sourceJarsProvider)
// TODO(bazel-team): this should only happen for java_plugin
.add(JavaPluginInfoProvider.class, JavaCommon.getTransitivePlugins(ruleContext))
.add(ProguardSpecProvider.class, new ProguardSpecProvider(proguardSpecs))
diff --git a/src/main/java/com/google/devtools/build/lib/rules/java/JavaProvider.java b/src/main/java/com/google/devtools/build/lib/rules/java/JavaProvider.java
index 4d1a967ed9..ff419be5e4 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/java/JavaProvider.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/java/JavaProvider.java
@@ -27,6 +27,7 @@ import com.google.devtools.build.lib.packages.ClassObjectConstructor;
import com.google.devtools.build.lib.packages.NativeClassObjectConstructor;
import com.google.devtools.build.lib.packages.SkylarkClassObject;
import com.google.devtools.build.lib.syntax.SkylarkNestedSet;
+import java.util.ArrayList;
import java.util.LinkedList;
import java.util.List;
import javax.annotation.Nullable;
@@ -104,7 +105,7 @@ public final class JavaProvider extends SkylarkClassObject implements Transitive
* JavaCompilationArgsProvider.
*/
public static <C extends TransitiveInfoProvider> List<C> fetchProvidersFromList(
- List<JavaProvider> javaProviders, Class<C> providersClass) {
+ Iterable<JavaProvider> javaProviders, Class<C> providersClass) {
List<C> fetchedProviders = new LinkedList<>();
for (JavaProvider javaProvider : javaProviders) {
C provider = javaProvider.getProvider(providersClass);
@@ -143,6 +144,18 @@ public final class JavaProvider extends SkylarkClassObject implements Transitive
return javaProvider.getProvider(providerClass);
}
+ public static <T extends TransitiveInfoProvider> List<T> getProvidersFromListOfTargets(
+ Class<T> providerClass, Iterable<? extends TransitiveInfoCollection> targets) {
+ List<T> providersList = new ArrayList<>();
+ for (TransitiveInfoCollection target : targets) {
+ T provider = getProvider(providerClass, target);
+ if (provider != null) {
+ providersList.add(provider);
+ }
+ }
+ return providersList;
+ }
+
private JavaProvider(TransitiveInfoProviderMap providers) {
super(JAVA_PROVIDER, ImmutableMap.<String, Object>of(
"transitive_runtime_jars", SkylarkNestedSet.of(