Expose missing information from the `JavaInfo` public API to allow recreating native JavaInfo from a Starlark instance

PiperOrigin-RevId: 540377614
Change-Id: Ied09df18de6b90c02d0dc46fdc32b428a12e5386
diff --git a/src/main/java/com/google/devtools/build/lib/rules/java/JavaInfo.java b/src/main/java/com/google/devtools/build/lib/rules/java/JavaInfo.java
index d5ee0f8..c5611a3 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/java/JavaInfo.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/java/JavaInfo.java
@@ -506,6 +506,24 @@
   }
 
   @Override
+  public Depset getTransitiveFullCompileJars() {
+    return Depset.of(
+        Artifact.class,
+        getProviderAsNestedSet(
+            JavaCompilationArgsProvider.class,
+            JavaCompilationArgsProvider::getTransitiveFullCompileTimeJars));
+  }
+
+  @Override
+  public Depset getCompileTimeJavaDependencies() {
+    return Depset.of(
+        Artifact.class,
+        getProviderAsNestedSet(
+            JavaCompilationArgsProvider.class,
+            JavaCompilationArgsProvider::getCompileTimeJavaDependencyArtifacts));
+  }
+
+  @Override
   public JavaPluginData plugins() {
     return providerJavaPlugin == null ? JavaPluginData.empty() : providerJavaPlugin.plugins();
   }
diff --git a/src/main/java/com/google/devtools/build/lib/rules/java/JavaInfoBuildHelper.java b/src/main/java/com/google/devtools/build/lib/rules/java/JavaInfoBuildHelper.java
index cb6f45f..775c85a 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/java/JavaInfoBuildHelper.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/java/JavaInfoBuildHelper.java
@@ -103,10 +103,6 @@
       javaCompilationArgsBuilder.addDirectCompileTimeJar(
           /* interfaceJar= */ javaOutput.getCompileJar(), /* fullJar= */ javaOutput.getClassJar());
     }
-    if (javaOutput.getCompileJdeps() != null) {
-      javaCompilationArgsBuilder.addCompileTimeJavaDependencyArtifacts(
-          NestedSetBuilder.create(Order.STABLE_ORDER, javaOutput.getCompileJdeps()));
-    }
 
     JavaRuleOutputJarsProvider javaRuleOutputJarsProvider =
         JavaRuleOutputJarsProvider.builder().addJavaOutput(javaOutput).build();
@@ -122,6 +118,11 @@
     streamProviders(runtimeDeps, JavaCompilationArgsProvider.class)
         .forEach(args -> javaCompilationArgsBuilder.addDeps(args, RUNTIME_ONLY));
 
+    if (javaOutput.getCompileJdeps() != null) {
+      javaCompilationArgsBuilder.addCompileTimeJavaDependencyArtifacts(
+          NestedSetBuilder.create(Order.STABLE_ORDER, javaOutput.getCompileJdeps()));
+    }
+
     javaInfoBuilder.javaCompilationArgs(javaCompilationArgsBuilder.build());
 
     javaInfoBuilder.javaPluginInfo(mergeExportedJavaPluginInfo(exportedPlugins, exports));
diff --git a/src/main/java/com/google/devtools/build/lib/starlarkbuildapi/java/JavaInfoApi.java b/src/main/java/com/google/devtools/build/lib/starlarkbuildapi/java/JavaInfoApi.java
index 15ae548..93fc1a4 100644
--- a/src/main/java/com/google/devtools/build/lib/starlarkbuildapi/java/JavaInfoApi.java
+++ b/src/main/java/com/google/devtools/build/lib/starlarkbuildapi/java/JavaInfoApi.java
@@ -175,6 +175,15 @@
       structField = true)
   JavaModuleFlagsProviderApi getJavaModuleFlagsInfo();
 
+  @StarlarkMethod(
+      name = "_transitive_full_compile_time_jars",
+      documented = false,
+      structField = true)
+  Depset getTransitiveFullCompileJars();
+
+  @StarlarkMethod(name = "_compile_time_java_dependencies", documented = false, structField = true)
+  Depset getCompileTimeJavaDependencies();
+
   /** Provider class for {@link JavaInfoApi} objects. */
   @StarlarkBuiltin(name = "Provider", documented = false, doc = "")
   interface JavaInfoProviderApi extends ProviderApi {