diff options
author | cushon <cushon@google.com> | 2018-07-26 16:51:37 -0700 |
---|---|---|
committer | Copybara-Service <copybara-piper@google.com> | 2018-07-26 16:53:37 -0700 |
commit | 1d96c7c4c7a46ba542dd989c8fefbe307a7edac9 (patch) | |
tree | 0d98db26a42796c01ffc7c04a221a0e13eb9fcfc /src/main/java/com/google/devtools/build/lib/rules/java | |
parent | 6964a0b68444333ed13a355a7f6799adb931b4aa (diff) |
Generalize fix to not emit a -gensrc.jar if the annotation processor classpath is
non-empty but there are no annotation processors to run.
PiperOrigin-RevId: 206244327
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/rules/java')
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/rules/java/JavaCompilationHelper.java | 5 | ||||
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/rules/java/JavaPluginInfoProvider.java | 10 |
2 files changed, 11 insertions, 4 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/rules/java/JavaCompilationHelper.java b/src/main/java/com/google/devtools/build/lib/rules/java/JavaCompilationHelper.java index 2c9364c394..e934049adb 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/java/JavaCompilationHelper.java +++ b/src/main/java/com/google/devtools/build/lib/rules/java/JavaCompilationHelper.java @@ -461,10 +461,7 @@ public final class JavaCompilationHelper { */ public boolean usesAnnotationProcessing() { JavaTargetAttributes attributes = getAttributes(); - return getJavacOpts().contains("-processor") - // The target may have a processorpath even if no annotation processors are enabled, - // so check for processor names. - || !attributes.plugins().plugins().processorClasses().isEmpty(); + return getJavacOpts().contains("-processor") || attributes.plugins().hasProcessors(); } /** 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 a82496fd18..fee96b22d8 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 @@ -111,8 +111,18 @@ public abstract class JavaPluginInfoProvider implements TransitiveInfoProvider { public abstract JavaPluginInfo apiGeneratingPlugins(); + /** Returns true if the provider has no associated data. */ public boolean isEmpty() { // apiGeneratingPlugins is a subset of plugins, so checking if plugins is empty is sufficient return plugins().isEmpty(); } + + /** + * Returns true if the provider has any associated annotation processors (regardless of whether it + * has a classpath or data). + */ + public boolean hasProcessors() { + // apiGeneratingPlugins is a subset of plugins, so checking if plugins is empty is sufficient + return !plugins().processorClasses().isEmpty(); + } } |