Pass the id of a work request to the worker through JavaLibraryBuildRequest and BlazeJavacArguments. This can help us know which request is being compiled during a run.

RELNOTES: None.
PiperOrigin-RevId: 387301235
diff --git a/src/java_tools/buildjar/java/com/google/devtools/build/buildjar/JavaLibraryBuildRequest.java b/src/java_tools/buildjar/java/com/google/devtools/build/buildjar/JavaLibraryBuildRequest.java
index 33ba30c..2be7797 100644
--- a/src/java_tools/buildjar/java/com/google/devtools/build/buildjar/JavaLibraryBuildRequest.java
+++ b/src/java_tools/buildjar/java/com/google/devtools/build/buildjar/JavaLibraryBuildRequest.java
@@ -39,6 +39,7 @@
 import java.util.Collection;
 import java.util.List;
 import java.util.Map;
+import java.util.OptionalInt;
 import javax.annotation.Nullable;
 
 /** All the information needed to perform a single Java library build operation. */
@@ -94,6 +95,8 @@
   /** Map of inputs' path and digest */
   private final ImmutableMap<String, ByteString> inputsAndDigest;
 
+  private final OptionalInt requestId;
+
   /**
    * Constructs a build from a list of command args. Sets the same JavacRunner for both compilation
    * and annotation processing.
@@ -122,7 +125,7 @@
       List<BlazeJavaCompilerPlugin> extraPlugins,
       DependencyModule.Builder depsBuilder)
       throws InvalidCommandLineException, IOException {
-    this(optionsParser, extraPlugins, depsBuilder, ImmutableMap.of());
+    this(optionsParser, extraPlugins, depsBuilder, ImmutableMap.of(), OptionalInt.empty());
   }
 
   /**
@@ -139,7 +142,8 @@
       OptionsParser optionsParser,
       List<BlazeJavaCompilerPlugin> extraPlugins,
       DependencyModule.Builder depsBuilder,
-      ImmutableMap<String, ByteString> inputsAndDigest)
+      ImmutableMap<String, ByteString> inputsAndDigest,
+      OptionalInt requestId)
       throws InvalidCommandLineException, IOException {
     depsBuilder.setDirectJars(
         optionsParser.directJars().stream().map(Paths::get).collect(toImmutableSet()));
@@ -210,6 +214,7 @@
     this.targetLabel = optionsParser.getTargetLabel();
     this.injectingRuleKind = optionsParser.getInjectingRuleKind();
     this.inputsAndDigest = inputsAndDigest;
+    this.requestId = requestId;
   }
 
   /**
@@ -346,6 +351,10 @@
     return inputsAndDigest;
   }
 
+  public OptionalInt getRequestId() {
+    return requestId;
+  }
+
   @Nullable
   public String getTargetLabel() {
     return targetLabel;
@@ -369,7 +378,8 @@
             .sourceOutput(getSourceGenDir())
             .processorPath(getProcessorPath())
             .plugins(getPlugins())
-            .inputsAndDigest(getInputsAndDigest());
+            .inputsAndDigest(getInputsAndDigest())
+            .requestId(getRequestId());
     addJavacArguments(builder);
     // Performance optimization: when reduced classpaths are enabled, stop the compilation after
     // the first diagnostic that would result in fallback to the transitive classpath. The user
diff --git a/src/java_tools/buildjar/java/com/google/devtools/build/buildjar/javac/BlazeJavacArguments.java b/src/java_tools/buildjar/java/com/google/devtools/build/buildjar/javac/BlazeJavacArguments.java
index 49529b2..8c2ff75 100644
--- a/src/java_tools/buildjar/java/com/google/devtools/build/buildjar/javac/BlazeJavacArguments.java
+++ b/src/java_tools/buildjar/java/com/google/devtools/build/buildjar/javac/BlazeJavacArguments.java
@@ -21,6 +21,7 @@
 import com.google.devtools.build.buildjar.javac.plugins.BlazeJavaCompilerPlugin;
 import com.google.protobuf.ByteString;
 import java.nio.file.Path;
+import java.util.OptionalInt;
 import javax.annotation.Nullable;
 
 /**
@@ -78,6 +79,8 @@
   /** The Inputs' path and digest received from a WorkRequest */
   public abstract ImmutableMap<String, ByteString> inputsAndDigest();
 
+  public abstract OptionalInt requestId();
+
   public static Builder builder() {
     return new AutoValue_BlazeJavacArguments.Builder()
         .classPath(ImmutableList.of())
@@ -91,7 +94,8 @@
         .processorPath(ImmutableList.of())
         .plugins(ImmutableList.of())
         .failFast(false)
-        .inputsAndDigest(ImmutableMap.of());
+        .inputsAndDigest(ImmutableMap.of())
+        .requestId(OptionalInt.empty());
   }
 
   /** {@link BlazeJavacArguments}Builder. */
@@ -127,6 +131,8 @@
 
     Builder inputsAndDigest(ImmutableMap<String, ByteString> inputsAndDigest);
 
+    Builder requestId(OptionalInt requestId);
+
     BlazeJavacArguments build();
   }
 }