aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/rules/java
diff options
context:
space:
mode:
authorGravatar cushon <cushon@google.com>2018-07-26 16:51:37 -0700
committerGravatar Copybara-Service <copybara-piper@google.com>2018-07-26 16:53:37 -0700
commit1d96c7c4c7a46ba542dd989c8fefbe307a7edac9 (patch)
tree0d98db26a42796c01ffc7c04a221a0e13eb9fcfc /src/main/java/com/google/devtools/build/lib/rules/java
parent6964a0b68444333ed13a355a7f6799adb931b4aa (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.java5
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/java/JavaPluginInfoProvider.java10
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();
+ }
}