rules_java: Rename CcInfo#transitive_native_libraries to _legacy_transitive_native_libraries

This is needed to convert CcInfo to Starlark without causing a major regression.

Mark the field as legacy, becuase we'll need to eventually clean it up.

PiperOrigin-RevId: 788808464
Change-Id: I86a21b4b16bd2953961b0f1e7bae2d4ac43e0712
diff --git a/java/common/rules/impl/java_binary_impl.bzl b/java/common/rules/impl/java_binary_impl.bzl
index a41a125..15ae89b 100644
--- a/java/common/rules/impl/java_binary_impl.bzl
+++ b/java/common/rules/impl/java_binary_impl.bzl
@@ -154,7 +154,10 @@
         if JavaInfo in dep:
             native_libs_depsets.append(dep[JavaInfo].transitive_native_libraries)
         if CcInfo in dep:
-            native_libs_depsets.append(dep[CcInfo].transitive_native_libraries())
+            if hasattr(dep[CcInfo], "_legacy_transitive_native_libraries"):
+                native_libs_depsets.append(dep[CcInfo]._legacy_transitive_native_libraries)
+            else:
+                native_libs_depsets.append(dep[CcInfo].transitive_native_libraries())
     native_libs_dirs = collect_native_deps_dirs(depset(transitive = native_libs_depsets))
     if native_libs_dirs:
         prefix = "${JAVA_RUNFILES}/" + ctx.workspace_name + "/"
diff --git a/java/private/java_info.bzl b/java/private/java_info.bzl
index bf793c5..65c6f2a 100644
--- a/java/private/java_info.bzl
+++ b/java/private/java_info.bzl
@@ -178,7 +178,8 @@
         cc_info = semantics.minimize_cc_info(cc_common.merge_cc_infos(cc_infos = [p.cc_link_params_info for p in providers]))
         result.update(
             cc_link_params_info = cc_info,
-            transitive_native_libraries = cc_info.transitive_native_libraries(),
+            transitive_native_libraries =
+                cc_info._legacy_transitive_native_libraries if hasattr(cc_info, "_legacy_transitive_native_libraries") else cc_info.transitive_native_libraries(),
         )
     else:
         result.update(
@@ -679,14 +680,22 @@
         cc_info = semantics.minimize_cc_info(cc_common.merge_cc_infos(cc_infos = transitive_cc_infos))
         result.update(
             cc_link_params_info = cc_info,
-            transitive_native_libraries = cc_info.transitive_native_libraries(),
+            transitive_native_libraries =
+                cc_info._legacy_transitive_native_libraries if hasattr(cc_info, "_legacy_transitive_native_libraries") else cc_info.transitive_native_libraries(),
         )
     else:
+        transitive_native_libraries = []
+        if native_libraries:
+            merged_cc_info = cc_common.merge_cc_infos(cc_infos = native_libraries)
+            if hasattr(merged_cc_info, "_legacy_transitive_native_libraries"):
+                transitive_native_libraries = [merged_cc_info._legacy_transitive_native_libraries]
+            else:
+                transitive_native_libraries = [merged_cc_info.transitive_native_libraries()]
         result.update(
             transitive_native_libraries = depset(
                 order = "topological",
                 transitive = [dep.transitive_native_libraries for dep in concatenated_deps.runtimedeps_exports_deps] +
-                             ([cc_common.merge_cc_infos(cc_infos = native_libraries).transitive_native_libraries()] if native_libraries else []),
+                             transitive_native_libraries,
             ),
         )
     return result, concatenated_deps
diff --git a/java/testutil.bzl b/java/testutil.bzl
index 6207583..4063ea6 100644
--- a/java/testutil.bzl
+++ b/java/testutil.bzl
@@ -5,6 +5,8 @@
 # TODO: consider eventually upstreaming to rules_cc
 
 def _cc_info_transitive_native_libraries(cc_info):
+    if hasattr(cc_info, "_legacy_transitive_native_libraries"):
+        return cc_info._legacy_transitive_native_libraries
     return cc_info.transitive_native_libraries()
 
 def _cc_library_to_link_static_library(library_to_link):