Progress on Skylarkified java_lite_proto_library.

* Exposed transitive_runtime_jars from the former black-box JavaProvider.
* Added support for aliases.
* Returned the runfiles from the Skylark rule of java_lite_proto_library.

--
PiperOrigin-RevId: 147834471
MOS_MIGRATED_REVID=147834471
diff --git a/src/main/java/com/google/devtools/build/lib/rules/java/JavaProvider.java b/src/main/java/com/google/devtools/build/lib/rules/java/JavaProvider.java
index e53cffb..434cf2a 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/java/JavaProvider.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/java/JavaProvider.java
@@ -23,6 +23,7 @@
 import com.google.devtools.build.lib.concurrent.ThreadSafety.Immutable;
 import com.google.devtools.build.lib.packages.SkylarkClassObject;
 import com.google.devtools.build.lib.packages.SkylarkClassObjectConstructor;
+import com.google.devtools.build.lib.syntax.SkylarkList;
 import java.util.LinkedList;
 import java.util.List;
 import java.util.Set;
@@ -120,7 +121,12 @@
   }
 
   private JavaProvider(TransitiveInfoProviderMap providers) {
-    super(JAVA_PROVIDER, ImmutableMap.<String, Object>of());
+    super(JAVA_PROVIDER, ImmutableMap.<String, Object>of(
+        "transitive_runtime_jars", SkylarkList.createImmutable(
+            providers.getProvider(JavaCompilationArgsProvider.class)
+                .getRecursiveJavaCompilationArgs()
+                .getRuntimeJars())
+    ));
     this.providers = providers;
   }
 
diff --git a/src/main/java/com/google/devtools/build/lib/rules/java/proto/JavaProtoSkylarkCommon.java b/src/main/java/com/google/devtools/build/lib/rules/java/proto/JavaProtoSkylarkCommon.java
index 6f07c46..8cb64b0 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/java/proto/JavaProtoSkylarkCommon.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/java/proto/JavaProtoSkylarkCommon.java
@@ -84,6 +84,18 @@
   }
 
   @SkylarkCallable(
+      name = "has_proto_sources",
+      doc = "Returns whether the given proto_library target contains proto sources. If there are no"
+          + " sources it means that the proto_library is an alias library, which exports its"
+          + " dependencies."
+  )
+  public static boolean hasProtoSources(ConfiguredTarget target) {
+    SupportData supportData =
+        checkNotNull(target.getProvider(ProtoSupportDataProvider.class).getSupportData());
+    return supportData.hasProtoSources();
+  }
+
+  @SkylarkCallable(
     name = "toolchain_deps",
     // This function is experimental for now.
     documented = false,
diff --git a/src/test/java/com/google/devtools/build/lib/rules/java/proto/SkylarkJavaLiteProtoLibraryTest.java b/src/test/java/com/google/devtools/build/lib/rules/java/proto/SkylarkJavaLiteProtoLibraryTest.java
index 0641775..c44aea3 100644
--- a/src/test/java/com/google/devtools/build/lib/rules/java/proto/SkylarkJavaLiteProtoLibraryTest.java
+++ b/src/test/java/com/google/devtools/build/lib/rules/java/proto/SkylarkJavaLiteProtoLibraryTest.java
@@ -253,10 +253,8 @@
         prettyJarNames(
             getProvider(JavaCompilationArgsProvider.class, litepb2)
                 .getJavaCompilationArgs().getRuntimeJars());
-    // TODO(elenairina): Remove libalpha-lite.jar from directJars assertion after implementing
-    // a check for proto sources in Skylarkified java_lite_proto_library.
-    assertThat(directJars).containsExactly(
-        "cross/libbravo-lite.jar", "cross/libalpha-lite.jar", "protobuf/libjavalite_runtime.jar");
+    assertThat(directJars)
+        .containsExactly("cross/libbravo-lite.jar", "protobuf/libjavalite_runtime.jar");
   }
 
   @Test
@@ -486,9 +484,6 @@
    * behaves as if we depend directly on the aliased proto_library.
    */
   @Test
-  @Ignore
-  // TODO(bazel-team): Enable once alias protos are supported in the Skylark version of
-  //     java_lite_proto_library.
   public void jplCorrectlyDefinesDirectJars_strictDepsEnabled_aliasProto() throws Exception {
     scratch.file(
         "x/BUILD",