Fix processor stats collection
PiperOrigin-RevId: 222092797
diff --git a/src/java_tools/buildjar/java/com/google/devtools/build/buildjar/BUILD b/src/java_tools/buildjar/java/com/google/devtools/build/buildjar/BUILD
index 18f93dd..2abd4be 100644
--- a/src/java_tools/buildjar/java/com/google/devtools/build/buildjar/BUILD
+++ b/src/java_tools/buildjar/java/com/google/devtools/build/buildjar/BUILD
@@ -82,6 +82,7 @@
"//src/java_tools/buildjar/java/com/google/devtools/build/buildjar/javac/plugins:dependency",
"//src/java_tools/buildjar/java/com/google/devtools/build/buildjar/javac/plugins:errorprone",
"//src/java_tools/buildjar/java/com/google/devtools/build/buildjar/javac/plugins:processing",
+ "//src/java_tools/buildjar/java/com/google/devtools/build/buildjar/javac/statistics",
"//src/main/protobuf:worker_protocol_java_proto",
"//third_party:guava",
"//third_party:jsr305",
diff --git a/src/java_tools/buildjar/java/com/google/devtools/build/buildjar/ReducedClasspathJavaLibraryBuilder.java b/src/java_tools/buildjar/java/com/google/devtools/build/buildjar/ReducedClasspathJavaLibraryBuilder.java
index 8283b12..eac7ba8 100644
--- a/src/java_tools/buildjar/java/com/google/devtools/build/buildjar/ReducedClasspathJavaLibraryBuilder.java
+++ b/src/java_tools/buildjar/java/com/google/devtools/build/buildjar/ReducedClasspathJavaLibraryBuilder.java
@@ -18,6 +18,7 @@
import com.google.devtools.build.buildjar.javac.BlazeJavacResult;
import com.google.devtools.build.buildjar.javac.FormattedDiagnostic;
import com.google.devtools.build.buildjar.javac.JavacRunner;
+import com.google.devtools.build.buildjar.javac.statistics.BlazeJavacStatistics;
import java.io.IOException;
import java.nio.file.Path;
@@ -53,19 +54,10 @@
BlazeJavacResult result =
javacRunner.invokeJavac(build.toBlazeJavacArguments(compressedClasspath));
- result =
- result.withStatistics(
- result
- .statistics()
- .toBuilder()
- .transitiveClasspathLength(build.getClassPath().size())
- .reducedClasspathLength(compressedClasspath.size())
- .transitiveClasspathFallback(false)
- .build());
-
// If javac errored out because of missing entries on the classpath, give it another try.
// TODO(bazel-team): check performance impact of additional retries.
- if (shouldFallBack(result)) {
+ boolean fallback = shouldFallBack(result);
+ if (fallback) {
// TODO(cushon): warn for transitive classpath fallback
// Reset output directories
@@ -73,11 +65,19 @@
// Fall back to the regular compile, but add extra checks to catch transitive uses
result = javacRunner.invokeJavac(build.toBlazeJavacArguments(build.getClassPath()));
- result =
- result.withStatistics(
- result.statistics().toBuilder().transitiveClasspathFallback(true).build());
}
- return result;
+
+ BlazeJavacStatistics.Builder stats =
+ result
+ .statistics()
+ .toBuilder()
+ .transitiveClasspathLength(build.getClassPath().size())
+ .reducedClasspathLength(compressedClasspath.size())
+ .transitiveClasspathFallback(fallback);
+ build.getProcessors().stream()
+ .map(p -> p.substring(p.lastIndexOf('.') + 1))
+ .forEachOrdered(stats::addProcessor);
+ return result.withStatistics(stats.build());
}
private static boolean shouldFallBack(BlazeJavacResult result) {
diff --git a/src/java_tools/buildjar/java/com/google/devtools/build/buildjar/SimpleJavaLibraryBuilder.java b/src/java_tools/buildjar/java/com/google/devtools/build/buildjar/SimpleJavaLibraryBuilder.java
index bb68c5d..87b810c 100644
--- a/src/java_tools/buildjar/java/com/google/devtools/build/buildjar/SimpleJavaLibraryBuilder.java
+++ b/src/java_tools/buildjar/java/com/google/devtools/build/buildjar/SimpleJavaLibraryBuilder.java
@@ -21,6 +21,7 @@
import com.google.devtools.build.buildjar.javac.BlazeJavacMain;
import com.google.devtools.build.buildjar.javac.BlazeJavacResult;
import com.google.devtools.build.buildjar.javac.JavacRunner;
+import com.google.devtools.build.buildjar.javac.statistics.BlazeJavacStatistics;
import java.io.ByteArrayOutputStream;
import java.io.Closeable;
import java.io.IOException;
@@ -51,17 +52,17 @@
BlazeJavacResult result =
javacRunner.invokeJavac(build.toBlazeJavacArguments(build.getClassPath()));
- result =
- result.withStatistics(
- result
- .statistics()
- .toBuilder()
- .transitiveClasspathLength(build.getClassPath().size())
- .reducedClasspathLength(build.getClassPath().size())
- .transitiveClasspathFallback(false)
- .build());
-
- return result;
+ BlazeJavacStatistics.Builder stats =
+ result
+ .statistics()
+ .toBuilder()
+ .transitiveClasspathLength(build.getClassPath().size())
+ .reducedClasspathLength(build.getClassPath().size())
+ .transitiveClasspathFallback(false);
+ build.getProcessors().stream()
+ .map(p -> p.substring(p.lastIndexOf('.') + 1))
+ .forEachOrdered(stats::addProcessor);
+ return result.withStatistics(stats.build());
}
protected void prepareSourceCompilation(JavaLibraryBuildRequest build) throws IOException {
diff --git a/src/java_tools/buildjar/java/com/google/devtools/build/buildjar/javac/BlazeJavacMain.java b/src/java_tools/buildjar/java/com/google/devtools/build/buildjar/javac/BlazeJavacMain.java
index cda32fe..fa50978 100644
--- a/src/java_tools/buildjar/java/com/google/devtools/build/buildjar/javac/BlazeJavacMain.java
+++ b/src/java_tools/buildjar/java/com/google/devtools/build/buildjar/javac/BlazeJavacMain.java
@@ -105,9 +105,6 @@
context);
if (arguments.processors() != null) {
task.setProcessors(arguments.processors());
- arguments.processors().stream()
- .map(p -> p.getClass().getSimpleName())
- .forEachOrdered(builder::addProcessor);
}
fileManager.setContext(context);
setLocations(fileManager, arguments);