Expose javac jar in java_toolchain's skylark provider

PiperOrigin-RevId: 156589908
diff --git a/src/main/java/com/google/devtools/build/lib/rules/java/JavaToolchainSkylarkApiProvider.java b/src/main/java/com/google/devtools/build/lib/rules/java/JavaToolchainSkylarkApiProvider.java
index 9d4435b..36c6055 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/java/JavaToolchainSkylarkApiProvider.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/java/JavaToolchainSkylarkApiProvider.java
@@ -14,6 +14,7 @@
 
 package com.google.devtools.build.lib.rules.java;
 
+import com.google.devtools.build.lib.actions.Artifact;
 import com.google.devtools.build.lib.rules.SkylarkApiProvider;
 import com.google.devtools.build.lib.skylarkinterface.SkylarkCallable;
 import com.google.devtools.build.lib.skylarkinterface.SkylarkModule;
@@ -54,4 +55,16 @@
     return javaToolchainProvider.getTargetVersion();
   }
 
+  /** @return The {@link Artifact} of the javac jar */
+  @SkylarkCallable(
+      name = "javac_jar",
+      doc = "The javac jar.",
+      structField = true
+  )
+  public Artifact getJavacJar() {
+    JavaToolchainProvider javaToolchainProvider =
+        getInfo().getProvider(JavaToolchainProvider.class);
+    return javaToolchainProvider.getJavac();
+  }
+
 }
diff --git a/src/main/protobuf/intellij_ide_info.proto b/src/main/protobuf/intellij_ide_info.proto
index 13890c9..d5a51bd 100644
--- a/src/main/protobuf/intellij_ide_info.proto
+++ b/src/main/protobuf/intellij_ide_info.proto
@@ -120,6 +120,7 @@
 message JavaToolchainIdeInfo {
   string source_version = 1;
   string target_version = 2;
+  ArtifactLocation javac_jar = 3;
 }
 
 message TargetKey {
diff --git a/tools/ide/intellij_info_impl.bzl b/tools/ide/intellij_info_impl.bzl
index 36a4065..024120a 100644
--- a/tools/ide/intellij_info_impl.bzl
+++ b/tools/ide/intellij_info_impl.bzl
@@ -544,9 +544,11 @@
   if not hasattr(target, "java_toolchain"):
     return None
   toolchain_info = target.java_toolchain
+  javac_jar_file = toolchain_info.javac_jar if hasattr(toolchain_info, "javac_jar") else None
   return struct_omit_none(
       source_version = toolchain_info.source_version,
       target_version = toolchain_info.target_version,
+      javac_jar = artifact_location(javac_jar_file),
   )
 
 ##### Main aspect function