Fix/simplify/improve Bazel build

PiperOrigin-RevId: 595656443
diff --git a/.github/workflows/build_test.yml b/.github/workflows/build_test.yml
index b3d8915..03bac2e 100644
--- a/.github/workflows/build_test.yml
+++ b/.github/workflows/build_test.yml
@@ -86,17 +86,17 @@
             cxx_compiler: g++
             os: macos-latest
 
-          - name: cmake-win64:msvc2019-rel
+          - name: cmake-win64:msvc-rel
             build_system: cmake
-            cmake_generator: Visual Studio 16 2019
+            cmake_generator: Visual Studio 17 2022
             cmake_config: Release
-            os: windows-2019
+            os: windows-latest
 
-          - name: cmake-win64:msvc2019-dbg
+          - name: cmake-win64:msvc-dbg
             build_system: cmake
-            cmake_generator: Visual Studio 16 2019
+            cmake_generator: Visual Studio 17 2022
             cmake_config: Debug
-            os: windows-2019
+            os: windows-latest
 
           - name: fuzz:clang15
             build_system: fuzz
@@ -288,9 +288,9 @@
           with open(match) as manifest:
             for entry in manifest:
               entry = entry.strip()
-              if not entry.startswith("org_brotli_java"):
+              if not entry.startswith("_main"):
                 continue
-              if entry.startswith('org_brotli_java/external'):
+              if entry.startswith("_main/external"):
                 continue
               (alias, space, link) = entry.partition(' ')
               if alias.endswith('.jar') or alias.endswith('.exe'):
diff --git a/BUILD.bazel b/BUILD.bazel
index 34e4a54..003c1b9 100644
--- a/BUILD.bazel
+++ b/BUILD.bazel
@@ -1,8 +1,6 @@
 # Description:
 #   Brotli is a generic-purpose lossless compression algorithm.
 
-load(":compiler_config_setting.bzl", "create_msvc_config")
-
 package(
     default_visibility = ["//visibility:public"],
 )
@@ -12,37 +10,21 @@
 exports_files(["LICENSE"])
 
 config_setting(
-    name = "darwin",
-    values = {"cpu": "darwin"},
+    name = "clang-cl",
+    flag_values = {
+        "@bazel_tools//tools/cpp:compiler": "clang-cl",
+    },
     visibility = ["//visibility:public"],
 )
 
 config_setting(
-    name = "darwin_x86_64",
-    values = {"cpu": "darwin_x86_64"},
+    name = "msvc",
+    flag_values = {
+        "@bazel_tools//tools/cpp:compiler": "msvc-cl",
+    },
     visibility = ["//visibility:public"],
 )
 
-config_setting(
-    name = "windows",
-    values = {"cpu": "x64_windows"},
-    visibility = ["//visibility:public"],
-)
-
-config_setting(
-    name = "windows_msvc",
-    values = {"cpu": "x64_windows_msvc"},
-    visibility = ["//visibility:public"],
-)
-
-config_setting(
-    name = "windows_msys",
-    values = {"cpu": "x64_windows_msys"},
-    visibility = ["//visibility:public"],
-)
-
-create_msvc_config()
-
 STRICT_C_OPTIONS = select({
     ":msvc": [],
     ":clang-cl": [
diff --git a/compiler_config_setting.bzl b/compiler_config_setting.bzl
deleted file mode 100644
index b7bb7b9..0000000
--- a/compiler_config_setting.bzl
+++ /dev/null
@@ -1,40 +0,0 @@
-# Copyright 2018 Google Inc. All Rights Reserved.
-#
-# Distributed under MIT license.
-#  See file LICENSE for detail or copy at https://opensource.org/licenses/MIT
-
-"""Creates config_setting that allows selecting based on 'compiler' value."""
-
-def create_msvc_config():
-  # The "do_not_use_tools_cpp_compiler_present" attribute exists to
-  # distinguish between older versions of Bazel that do not support
-  # "@bazel_tools//tools/cpp:compiler" flag_value, and newer ones that do.
-  # In the future, the only way to select on the compiler will be through
-  # flag_values{"@bazel_tools//tools/cpp:compiler"} and the else branch can
-  # be removed.
-  if hasattr(cc_common, "do_not_use_tools_cpp_compiler_present"):
-    native.config_setting(
-      name = "clang-cl",
-      flag_values = {
-          "@bazel_tools//tools/cpp:compiler": "clang-cl",
-      },
-      visibility = ["//visibility:public"],
-    )
-    native.config_setting(
-      name = "msvc",
-      flag_values = {
-          "@bazel_tools//tools/cpp:compiler": "msvc-cl",
-      },
-      visibility = ["//visibility:public"],
-    )
-  else:
-    native.config_setting(
-      name = "clang-cl",
-      values = {"compiler": "clang-cl"},
-      visibility = ["//visibility:public"],
-    )
-    native.config_setting(
-      name = "msvc",
-      values = {"compiler": "msvc-cl"},
-      visibility = ["//visibility:public"],
-    )
diff --git a/go/WORKSPACE.bazel b/go/WORKSPACE.bazel
index 570e250..a633dbb 100644
--- a/go/WORKSPACE.bazel
+++ b/go/WORKSPACE.bazel
@@ -9,10 +9,10 @@
 
 http_archive(
     name = "io_bazel_rules_go",
-    sha256 = "2b1641428dff9018f9e85c0384f03ec6c10660d935b750e3fa1492a281a53b0f",
+    sha256 = "c8035e8ae248b56040a65ad3f0b7434712e2037e5dfdcebfe97576e620422709",
     urls = [
-        "https://mirror.bazel.build/github.com/bazelbuild/rules_go/releases/download/v0.29.0/rules_go-v0.29.0.zip",
-        "https://github.com/bazelbuild/rules_go/releases/download/v0.29.0/rules_go-v0.29.0.zip",
+        "https://mirror.bazel.build/github.com/bazelbuild/rules_go/releases/download/v0.44.0/rules_go-v0.44.0.zip",
+        "https://github.com/bazelbuild/rules_go/releases/download/v0.44.0/rules_go-v0.44.0.zip",
     ],
 )
 
@@ -20,14 +20,14 @@
 
 go_rules_dependencies()
 
-go_register_toolchains(version = "1.17.1")
+go_register_toolchains(version = "1.21.5")
 
 http_archive(
     name = "bazel_gazelle",
-    sha256 = "de69a09dc70417580aabf20a28619bb3ef60d038470c7cf8442fafcf627c21cb",
+    sha256 = "b7387f72efb59f876e4daae42f1d3912d0d45563eac7cb23d1de0b094ab588cf",
     urls = [
-        "https://mirror.bazel.build/github.com/bazelbuild/bazel-gazelle/releases/download/v0.24.0/bazel-gazelle-v0.24.0.tar.gz",
-        "https://github.com/bazelbuild/bazel-gazelle/releases/download/v0.24.0/bazel-gazelle-v0.24.0.tar.gz",
+        "https://mirror.bazel.build/github.com/bazelbuild/bazel-gazelle/releases/download/v0.34.0/bazel-gazelle-v0.34.0.tar.gz",
+        "https://github.com/bazelbuild/bazel-gazelle/releases/download/v0.34.0/bazel-gazelle-v0.34.0.tar.gz",
     ],
 )
 
diff --git a/java/BUILD.bazel b/java/BUILD.bazel
index 0ae6c15..ea87b15 100644
--- a/java/BUILD.bazel
+++ b/java/BUILD.bazel
@@ -2,6 +2,36 @@
     default_visibility = ["//visibility:public"],
 )
 
+config_setting(
+    name = "darwin",
+    values = {"cpu": "darwin"},
+    visibility = ["//visibility:public"],
+)
+
+config_setting(
+    name = "darwin_x86_64",
+    values = {"cpu": "darwin_x86_64"},
+    visibility = ["//visibility:public"],
+)
+
+config_setting(
+    name = "windows",
+    values = {"cpu": "x64_windows"},
+    visibility = ["//visibility:public"],
+)
+
+config_setting(
+    name = "windows_msvc",
+    values = {"cpu": "x64_windows_msvc"},
+    visibility = ["//visibility:public"],
+)
+
+config_setting(
+    name = "windows_msys",
+    values = {"cpu": "x64_windows_msys"},
+    visibility = ["//visibility:public"],
+)
+
 # >>> JNI headers
 
 genrule(
@@ -14,11 +44,11 @@
 genrule(
     name = "copy_link_jni_md_header",
     srcs = select({
-        "@org_brotli//:darwin": ["@openjdk_macosx_jni_md_h//file"],
-        "@org_brotli//:darwin_x86_64": ["@openjdk_macosx_jni_md_h//file"],
-        "@org_brotli//:windows_msys": ["@openjdk_windows_jni_md_h//file"],
-        "@org_brotli//:windows_msvc": ["@openjdk_windows_jni_md_h//file"],
-        "@org_brotli//:windows": ["@openjdk_windows_jni_md_h//file"],
+        ":darwin": ["@openjdk_macosx_jni_md_h//file"],
+        ":darwin_x86_64": ["@openjdk_macosx_jni_md_h//file"],
+        ":windows_msys": ["@openjdk_windows_jni_md_h//file"],
+        ":windows_msvc": ["@openjdk_windows_jni_md_h//file"],
+        ":windows": ["@openjdk_windows_jni_md_h//file"],
         "//conditions:default": ["@openjdk_solaris_jni_md_h//file"],
     }),
     outs = ["jni/jni_md.h"],
diff --git a/java/WORKSPACE.bazel b/java/WORKSPACE.bazel
index 3ac9d4b..5860423 100644
--- a/java/WORKSPACE.bazel
+++ b/java/WORKSPACE.bazel
@@ -30,27 +30,27 @@
 http_file(
     name = "openjdk_jni_h",
     downloaded_file_path = "jni.h",
-    urls = ["https://hg.openjdk.java.net/jdk8/jdk8/jdk/raw-file/687fd7c7986d/src/share/javavm/export/jni.h"],
+    urls = ["https://raw.githubusercontent.com/openjdk/jdk/jdk8-b120/jdk/src/share/javavm/export/jni.h"],
     sha256 = "ed99792df48670072b78028faf704a8dcb6868fe140ccc7eced9b01dfa62fef4",
 )
 
 http_file(
     name = "openjdk_solaris_jni_md_h",
     downloaded_file_path = "jni_md.h",
-    urls = ["https://hg.openjdk.java.net/jdk8/jdk8/jdk/raw-file/687fd7c7986d/src/solaris/javavm/export/jni_md.h"],
-    sha256 = "ecbe6944fe1a4290644d5a6b3c8f68576798a53b9da12cd31c58c48569595ff7",
+    urls = ["https://raw.githubusercontent.com/openjdk/jdk/jdk8-b120/jdk/src/solaris/javavm/export/jni_md.h"],
+    sha256 = "b6cf7b06e5bba38d2daa2ff0789f99d396b3cb3bcc37d0367c8360fdccdef294",
 )
 
 http_file(
     name = "openjdk_macosx_jni_md_h",
     downloaded_file_path = "jni_md.h",
-    urls = ["https://hg.openjdk.java.net/jdk8/jdk8/jdk/raw-file/687fd7c7986d/src/macosx/javavm/export/jni_md.h"],
+    urls = ["https://raw.githubusercontent.com/openjdk/jdk/jdk8-b120/jdk/src/macosx/javavm/export/jni_md.h"],
     sha256 = "8f718071022e7e7f2fc9a229984b7e83582db91ed83861b49ce1461436fe8dc4",
 )
 
 http_file(
     name = "openjdk_windows_jni_md_h",
     downloaded_file_path = "jni_md.h",
-    urls = ["https://hg.openjdk.java.net/jdk8/jdk8/jdk/raw-file/687fd7c7986d/src/windows/javavm/export/jni_md.h"],
+    urls = ["https://raw.githubusercontent.com/openjdk/jdk/jdk8-b120/jdk/src/windows/javavm/export/jni_md.h"],
     sha256 = "5479fb385ea1e11619f5c0cdfd9ccb3ea3a3fea0f5bc6176fb3ce62be29d759b",
 )
diff --git a/java/org/brotli/integration/BUILD.bazel b/java/org/brotli/integration/BUILD.bazel
index 5b77325..4607cda 100644
--- a/java/org/brotli/integration/BUILD.bazel
+++ b/java/org/brotli/integration/BUILD.bazel
@@ -37,8 +37,8 @@
 
 java_test(
     name = "bundle_checker_data_test",
-    args = ["org/brotli/integration/test_data.zip"],
-    data = ["test_data.zip"],
+    args = ["$(location :test_data)"],
+    data = [":test_data"],
     main_class = "org.brotli.integration.BundleChecker",
     use_testrunner = 0,
     runtime_deps = [":bundle_checker"],
@@ -48,26 +48,28 @@
     name = "bundle_checker_fuzz_test",
     args = [
         "-s",
-        "org/brotli/integration/fuzz_data.zip",
+        "$(location :fuzz_data)",
     ],
-    data = ["fuzz_data.zip"],
+    data = [":fuzz_data"],
     main_class = "org.brotli.integration.BundleChecker",
     use_testrunner = 0,
     runtime_deps = [":bundle_checker"],
 )
 
 filegroup(
+    name = "fuzz_data",
+    srcs = ["fuzz_data.zip"],
+    visibility = ["//visibility:private"],
+)
+
+filegroup(
     name = "test_data",
     srcs = ["test_data.zip"],
-    visibility = [
-        "//org/brotli/wrapper/dec:__pkg__",
-    ],
+    visibility = ["//org/brotli/wrapper/dec:__pkg__"],
 )
 
 filegroup(
     name = "test_corpus",
     srcs = ["test_corpus.zip"],
-    visibility = [
-        "//org/brotli/wrapper/enc:__pkg__",
-    ],
+    visibility = ["//org/brotli/wrapper/enc:__pkg__"],
 )