Expose single_jar and bootclasspath in the java toolchain to skylark. This would allow pulling these from the toolchain in kotlin rules. PiperOrigin-RevId: 200996334
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 2893706..7ed711b 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
@@ -18,6 +18,8 @@ import com.google.devtools.build.lib.analysis.skylark.SkylarkApiProvider; import com.google.devtools.build.lib.skyframe.serialization.autocodec.AutoCodec; import com.google.devtools.build.lib.skylarkbuildapi.java.JavaToolchainSkylarkApiProviderApi; +import com.google.devtools.build.lib.skylarkinterface.SkylarkCallable; +import com.google.devtools.build.lib.syntax.SkylarkNestedSet; import java.util.Iterator; /** @@ -68,4 +70,24 @@ return javaToolchainProvider.getJavac(); } + /** @return The {@link Artifact} of the SingleJar deploy jar */ + @SkylarkCallable( + name = "single_jar", + doc = "The SingleJar deploy jar.", + structField = true + ) + public Artifact getSingleJar() { + return JavaToolchainProvider.from(getInfo()).getSingleJar(); + } + + /** @return The bootclass path entries */ + @SkylarkCallable( + name = "bootclasspath", + doc = "The Java target bootclasspath entries. Corresponds to javac's -bootclasspath flag.", + structField = true + ) + public SkylarkNestedSet getBootclasspath() { + return SkylarkNestedSet.of( + Artifact.class, JavaToolchainProvider.from(getInfo()).getBootclasspath()); + } }