Fix `proto_support.bzl` for Bazel

Work towards https://github.com/bazelbuild/bazel/issues/24543

PiperOrigin-RevId: 702587292
Change-Id: I5feb477d86c059008ed78b58588a7a6fe7976e20
diff --git a/java/common/rules/basic_java_library.bzl b/java/common/rules/basic_java_library.bzl
index f55351e..74b4376 100644
--- a/java/common/rules/basic_java_library.bzl
+++ b/java/common/rules/basic_java_library.bzl
@@ -21,9 +21,7 @@
 load("//java/private:java_info.bzl", "JavaPluginInfo")
 load(":rule_util.bzl", "merge_attrs")
 
-visibility([
-    "//java/...",
-])
+# copybara: default multiline visibility
 
 BASIC_JAVA_LIBRARY_IMPLICIT_ATTRS = merge_attrs(
     {
diff --git a/java/common/rules/impl/basic_java_library_impl.bzl b/java/common/rules/impl/basic_java_library_impl.bzl
index da5b2bc..35b1edd 100644
--- a/java/common/rules/impl/basic_java_library_impl.bzl
+++ b/java/common/rules/impl/basic_java_library_impl.bzl
@@ -24,9 +24,7 @@
 load(":compile_action.bzl", "compile_action")
 load(":proguard_validation.bzl", "validate_proguard_specs")
 
-visibility([
-    "//java/...",
-])
+# copybara: default multiline visibility
 
 def _filter_srcs(srcs, ext):
     return [f for f in srcs if f.extension == ext]
diff --git a/java/private/java_common_internal.bzl b/java/private/java_common_internal.bzl
index 78a8ee2..d740255 100644
--- a/java/private/java_common_internal.bzl
+++ b/java/private/java_common_internal.bzl
@@ -27,9 +27,7 @@
 )
 load(":native.bzl", "get_internal_java_common")
 
-visibility([
-    "//java/...",
-])
+# copybara: default multiline visibility
 
 def compile(
         ctx,
diff --git a/java/private/proto_support.bzl b/java/private/proto_support.bzl
index dff978b..957dc31 100644
--- a/java/private/proto_support.bzl
+++ b/java/private/proto_support.bzl
@@ -13,13 +13,25 @@
 # limitations under the License.
 """Support for Java compilation of protocol buffer generated code."""
 
-load("@compatibility_proxy//:proxy.bzl", "java_common")
+load("@compatibility_proxy//:proxy.bzl", "java_common", "java_common_internal_compile", "java_info_internal_merge")
 
-# Partial support, because internal symbols are not available in older Bazel version
-# TODO: Once Java rules are moved into the rules_java, this should become a full support.
+def compile(*, injecting_rule_kind, enable_jspecify, include_compilation_info, **kwargs):
+    if java_common_internal_compile:
+        return java_common_internal_compile(
+            injecting_rule_kind = injecting_rule_kind,
+            enable_jspecify = enable_jspecify,
+            include_compilation_info = include_compilation_info,
+            **kwargs
+        )
+    else:
+        return java_common.compile(**kwargs)
 
-def compile(*, injecting_rule_kind, enable_jspecify, include_compilation_info, **kwargs):  # buildifier: disable=unused-variable
-    return java_common.compile(**kwargs)
-
-def merge(providers, *, merge_java_outputs = True, merge_source_jars = True):  # buildifier: disable=unused-variable
-    return java_common.merge(providers)
+def merge(providers, *, merge_java_outputs = True, merge_source_jars = True):
+    if java_info_internal_merge:
+        return java_info_internal_merge(
+            providers,
+            merge_java_outputs = merge_java_outputs,
+            merge_source_jars = merge_source_jars,
+        )
+    else:
+        return java_common.merge(providers)
diff --git a/java/rules_java_deps.bzl b/java/rules_java_deps.bzl
index 026ed4f..9e7fd80 100644
--- a/java/rules_java_deps.bzl
+++ b/java/rules_java_deps.bzl
@@ -37,7 +37,8 @@
 load("@rules_java//java/common/rules:java_runtime.bzl", _java_runtime = "java_runtime")
 load("@rules_java//java/common/rules:java_toolchain.bzl", _java_toolchain = "java_toolchain")
 load("@rules_java//java/private:java_common.bzl", _java_common = "java_common")
-load("@rules_java//java/private:java_info.bzl", _JavaInfo = "JavaInfo", _JavaPluginInfo = "JavaPluginInfo")
+load("@rules_java//java/private:java_common_internal.bzl", _java_common_internal_compile = "compile")
+load("@rules_java//java/private:java_info.bzl", _JavaInfo = "JavaInfo", _JavaPluginInfo = "JavaPluginInfo", _java_info_internal_merge = "merge")
 load("@rules_java//java:http_jar.bzl", _http_jar = "http_jar")
 
 java_binary = _java_binary
@@ -51,7 +52,8 @@
 java_common = _java_common
 JavaInfo = _JavaInfo
 JavaPluginInfo = _JavaPluginInfo
-
+java_common_internal_compile = _java_common_internal_compile
+java_info_internal_merge = _java_info_internal_merge
 http_jar = _http_jar
             """,
         )
@@ -91,6 +93,8 @@
 java_common = native_java_common
 JavaInfo = NativeJavaInfo
 JavaPluginInfo = NativeJavaPluginInfo
+java_common_internal_compile = None
+java_info_internal_merge = None
 
 http_jar = _http_jar
             """,