From f7deff91dec0acba4a9199cb2f953be6b421d0bd Mon Sep 17 00:00:00 2001 From: Alex Humesky Date: Wed, 21 Oct 2015 21:35:46 +0000 Subject: Description redacted. -- MOS_MIGRATED_REVID=105999401 --- .../build/lib/rules/android/AndroidCommon.java | 13 +------------ .../devtools/build/lib/rules/java/JavaCommon.java | 2 +- .../devtools/build/lib/rules/java/JavaLibrary.java | 19 +++++++++++++++---- .../build/lib/rules/java/JavaPluginInfoProvider.java | 20 -------------------- 4 files changed, 17 insertions(+), 37 deletions(-) (limited to 'src/main/java/com') 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 b8e5a41000..2712eb298e 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 @@ -55,7 +55,6 @@ 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.JavaNativeLibraryProvider; -import com.google.devtools.build.lib.rules.java.JavaPluginInfoProvider; import com.google.devtools.build.lib.rules.java.JavaRuleOutputJarsProvider; import com.google.devtools.build.lib.rules.java.JavaRuntimeJarProvider; import com.google.devtools.build.lib.rules.java.JavaSemantics; @@ -89,7 +88,6 @@ public class AndroidCommon { private NestedSet transitiveSourceJars = NestedSetBuilder.emptySet(Order.STABLE_ORDER); private JavaCompilationArgs javaCompilationArgs = JavaCompilationArgs.EMPTY_ARGS; private JavaCompilationArgs recursiveJavaCompilationArgs = JavaCompilationArgs.EMPTY_ARGS; - private JavaPluginInfoProvider transitiveJavaPluginInfoProvider = JavaPluginInfoProvider.EMPTY; private JackCompilationHelper jackCompilationHelper; private Artifact classJar; private Artifact iJar; @@ -538,16 +536,8 @@ public class AndroidCommon { topLevelSourceJars = ImmutableList.of(srcJar); transitiveSourceJars = javaCommon.collectTransitiveSourceJars(srcJar); - boolean hasSources = attributes.hasSourceFiles() || attributes.hasSourceJars(); - - if (!hasSources) { - // If this android rule has no sources, then it's a forwarding rule, so also forward - // any exported java plugins from its deps. - this.transitiveJavaPluginInfoProvider = JavaPluginInfoProvider.merge( - javaCommon.getPluginInfoProvidersForAttribute("deps", Mode.TARGET)); - } - if (collectJavaCompilationArgs) { + boolean hasSources = attributes.hasSourceFiles() || attributes.hasSourceJars(); this.javaCompilationArgs = collectJavaCompilationArgs(ruleContext, exportDeps, asNeverLink, hasSources); this.recursiveJavaCompilationArgs = collectJavaCompilationArgs( @@ -595,7 +585,6 @@ public class AndroidCommon { asNeverLink ? jackCompilationHelper.compileAsNeverlinkLibrary() : jackCompilationHelper.compileAsLibrary()) - .add(JavaPluginInfoProvider.class, transitiveJavaPluginInfoProvider) .addOutputGroup( OutputGroupProvider.HIDDEN_TOP_LEVEL, collectHiddenTopLevelArtifacts(ruleContext)) .addOutputGroup(JavaSemantics.SOURCE_JARS_OUTPUT_GROUP, transitiveSourceJars); 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 b7e6f785bc..fd9825f32b 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 @@ -665,7 +665,7 @@ public class JavaCommon { return ImmutableList.copyOf(result); } - public Iterable getPluginInfoProvidersForAttribute(String attribute, + Iterable getPluginInfoProvidersForAttribute(String attribute, Mode mode) { if (ruleContext.attributes().has(attribute, BuildType.LABEL_LIST)) { return ruleContext.getPrerequisites(attribute, mode, JavaPluginInfoProvider.class); 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 65b024f900..38b3b697a3 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 @@ -162,9 +162,19 @@ public class JavaLibrary implements RuleConfiguredTargetFactory { NestedSet transitiveJavaNativeLibraries = common.collectTransitiveJavaNativeLibraries(); - JavaPluginInfoProvider javaPluginInfoProvider = JavaPluginInfoProvider.merge(Iterables.concat( - common.getPluginInfoProvidersForAttribute("exported_plugins", Mode.HOST), - common.getPluginInfoProvidersForAttribute("exports", Mode.TARGET))); + ImmutableList exportedProcessorClasses = ImmutableList.of(); + NestedSet exportedProcessorClasspath = + NestedSetBuilder.emptySet(Order.NAIVE_LINK_ORDER); + ImmutableList.Builder processorClasses = ImmutableList.builder(); + NestedSetBuilder processorClasspath = NestedSetBuilder.naiveLinkOrder(); + for (JavaPluginInfoProvider provider : Iterables.concat( + common.getPluginInfoProvidersForAttribute("exported_plugins", Mode.HOST), + common.getPluginInfoProvidersForAttribute("exports", Mode.TARGET))) { + processorClasses.addAll(provider.getProcessorClasses()); + processorClasspath.addTransitive(provider.getProcessorClasspath()); + } + exportedProcessorClasses = processorClasses.build(); + exportedProcessorClasspath = processorClasspath.build(); CcLinkParamsStore ccLinkParamsStore = new CcLinkParamsStore() { @Override @@ -239,7 +249,8 @@ public class JavaLibrary implements RuleConfiguredTargetFactory { .add(JavaSourceJarsProvider.class, new JavaSourceJarsProvider( transitiveSourceJars, ImmutableList.of(srcJar))) // TODO(bazel-team): this should only happen for java_plugin - .add(JavaPluginInfoProvider.class, javaPluginInfoProvider) + .add(JavaPluginInfoProvider.class, new JavaPluginInfoProvider( + exportedProcessorClasses, exportedProcessorClasspath)) .add(ProguardSpecProvider.class, new ProguardSpecProvider(proguardSpecs)) .addOutputGroup(JavaSemantics.SOURCE_JARS_OUTPUT_GROUP, transitiveSourceJars) .addOutputGroup(OutputGroupProvider.HIDDEN_TOP_LEVEL, proguardSpecs); diff --git a/src/main/java/com/google/devtools/build/lib/rules/java/JavaPluginInfoProvider.java b/src/main/java/com/google/devtools/build/lib/rules/java/JavaPluginInfoProvider.java index 14339d9d6f..3b88b03261 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/java/JavaPluginInfoProvider.java +++ b/src/main/java/com/google/devtools/build/lib/rules/java/JavaPluginInfoProvider.java @@ -18,8 +18,6 @@ import com.google.common.collect.ImmutableList; import com.google.devtools.build.lib.actions.Artifact; import com.google.devtools.build.lib.analysis.TransitiveInfoProvider; import com.google.devtools.build.lib.collect.nestedset.NestedSet; -import com.google.devtools.build.lib.collect.nestedset.NestedSetBuilder; -import com.google.devtools.build.lib.collect.nestedset.Order; import com.google.devtools.build.lib.concurrent.ThreadSafety.Immutable; /** @@ -27,25 +25,7 @@ import com.google.devtools.build.lib.concurrent.ThreadSafety.Immutable; */ @Immutable public final class JavaPluginInfoProvider implements TransitiveInfoProvider { - - public static final JavaPluginInfoProvider EMPTY = - new JavaPluginInfoProvider( - ImmutableList.of(), - NestedSetBuilder.emptySet(Order.STABLE_ORDER)); - public static JavaPluginInfoProvider merge(Iterable providers) { - - ImmutableList.Builder processorClasses = ImmutableList.builder(); - NestedSetBuilder processorClasspath = NestedSetBuilder.naiveLinkOrder(); - - for (JavaPluginInfoProvider provider : providers) { - processorClasses.addAll(provider.getProcessorClasses()); - processorClasspath.addTransitive(provider.getProcessorClasspath()); - } - - return new JavaPluginInfoProvider(processorClasses.build(), processorClasspath.build()); - } - private final ImmutableList processorClasses; private final NestedSet processorClasspath; -- cgit v1.2.3