Transition to Dagger using an Any proto to store its statistics information.
RELNOTES: none
PiperOrigin-RevId: 222239117
diff --git a/src/java_tools/buildjar/java/com/google/devtools/build/buildjar/javac/statistics/BUILD b/src/java_tools/buildjar/java/com/google/devtools/build/buildjar/javac/statistics/BUILD
index 69d693e..651f1fe 100644
--- a/src/java_tools/buildjar/java/com/google/devtools/build/buildjar/javac/statistics/BUILD
+++ b/src/java_tools/buildjar/java/com/google/devtools/build/buildjar/javac/statistics/BUILD
@@ -4,6 +4,7 @@
name = "statistics",
srcs = ["BlazeJavacStatistics.java"],
deps = [
+ "any_java_proto",
"//third_party:auto_value",
"//third_party:guava",
"//third_party/java/jdk/langtools:javac",
@@ -16,3 +17,10 @@
"BUILD",
],
)
+
+# Depend on any_proto for bazel usage (the external repo doesn't expose any_java_proto, just
+# the protos)
+java_proto_library(
+ name = "any_java_proto",
+ deps = ["@com_google_protobuf//:any_proto"],
+)
diff --git a/src/java_tools/buildjar/java/com/google/devtools/build/buildjar/javac/statistics/BlazeJavacStatistics.java b/src/java_tools/buildjar/java/com/google/devtools/build/buildjar/javac/statistics/BlazeJavacStatistics.java
index 89f9238..e75a036 100644
--- a/src/java_tools/buildjar/java/com/google/devtools/build/buildjar/javac/statistics/BlazeJavacStatistics.java
+++ b/src/java_tools/buildjar/java/com/google/devtools/build/buildjar/javac/statistics/BlazeJavacStatistics.java
@@ -16,8 +16,10 @@
import com.google.auto.value.AutoValue;
import com.google.common.base.Stopwatch;
import com.google.common.collect.ImmutableListMultimap;
+import com.google.common.collect.ImmutableMap;
import com.google.common.collect.ImmutableSet;
import com.google.errorprone.annotations.MustBeClosed;
+import com.google.protobuf.Any;
import com.sun.tools.javac.util.Context;
import com.sun.tools.javac.util.Context.Factory;
import java.time.Duration;
@@ -66,6 +68,9 @@
.transitiveClasspathFallback(false);
}
+ public abstract ImmutableMap<TickKey, Any> protoTicks();
+
+ @Deprecated // use protoTicks() instead.
public abstract ImmutableListMultimap<TickKey, Duration> timingTicks();
public abstract ImmutableListMultimap<String, Duration> errorProneTicks();
@@ -97,6 +102,9 @@
@AutoValue.Builder
public abstract static class Builder {
+ abstract ImmutableMap.Builder<TickKey, Any> protoTicksBuilder();
+
+ @Deprecated // use protoTicksBuilder() instead
abstract ImmutableListMultimap.Builder<TickKey, Duration> timingTicksBuilder();
abstract ImmutableListMultimap.Builder<String, Duration> errorProneTicksBuilder();
@@ -116,6 +124,12 @@
public abstract BlazeJavacStatistics build();
+ public Builder addTick(TickKey key, Any elapsed) {
+ protoTicksBuilder().put(key, elapsed);
+ return this;
+ }
+
+ @Deprecated // use addTick(key, Any) with a custom proto message.
public Builder addTick(TickKey key, Duration elapsed) {
timingTicksBuilder().put(key, elapsed);
return this;