diff --git a/.bazelrc b/.bazelrc index 753c0d0b82..7ad5041736 100644 --- a/.bazelrc +++ b/.bazelrc @@ -3,6 +3,8 @@ try-import %workspace%/user.bazelrc common --noenable_bzlmod +build --incompatible_disallow_empty_glob=1 # Bazel 8 prep + build --java_language_version=17 build --java_runtime_version=roboriojdk_17 build --tool_java_language_version=17 diff --git a/BUILD.bazel b/BUILD.bazel index 3c3b5bde20..1256c81299 100644 --- a/BUILD.bazel +++ b/BUILD.bazel @@ -16,7 +16,8 @@ compile_pip_requirements( extra_args = ["--allow-unsafe"], requirements_in = "requirements.txt", requirements_txt = "requirements_lock.txt", - tags = ["no-roborio"], + # compile_pip_requirements does not respect target_compatible_with for some of the targets it generates under the hood + tags = ["no-systemcore"], ) alias( diff --git a/WORKSPACE b/WORKSPACE index b8848cde8f..fd05c435f9 100644 --- a/WORKSPACE +++ b/WORKSPACE @@ -123,12 +123,17 @@ maven_artifacts = [ maven_install( name = "maven", artifacts = maven_artifacts, + maven_install_json = "//:maven_install.json", repositories = [ "https://repo1.maven.org/maven2", "https://frcmaven.wpi.edu/artifactory/release/", ], ) +load("@maven//:defs.bzl", "pinned_maven_install") + +pinned_maven_install() + # Setup aspect lib http_archive( name = "aspect_bazel_lib", @@ -208,8 +213,8 @@ setup_legacy_bzlmodrio_ni_cpp_dependencies() http_archive( name = "bzlmodrio-opencv", - sha256 = "ba3f4910ce9cc0e08abff732aeb5835b1bcfd864ca5296edeadcf2935f7e81b9", - url = "https://github.com/wpilibsuite/bzlmodRio-opencv/releases/download/2025.4.10.0-3.bcr1/bzlmodRio-opencv-2025.4.10.0-3.bcr1.tar.gz", + sha256 = "6e8544fae07ed5b4fedc146f6ad083d0d8947e3efb5332a20abc46601a52a1b5", + url = "https://github.com/wpilibsuite/bzlmodRio-opencv/releases/download/2025.4.10.0-3.bcr2/bzlmodRio-opencv-2025.4.10.0-3.bcr2.tar.gz", ) load("@bzlmodrio-opencv//:maven_cpp_deps.bzl", "setup_legacy_bzlmodrio_opencv_cpp_dependencies") @@ -220,6 +225,17 @@ load("@bzlmodrio-opencv//:maven_java_deps.bzl", "setup_legacy_bzlmodrio_opencv_j setup_legacy_bzlmodrio_opencv_java_dependencies() +http_archive( + name = "bzlmodrio-libssh", + sha256 = "65caef82554617403a16c79e8bcac6553d40eca3e23197e63275bba22db7d5b5", + strip_prefix = "bzlmodRio-libssh-8405fbd5eb4e42b495f08f6ccf6fbbe5ced28bb7", + urls = ["https://github.com/wpilibsuite/bzlmodRio-libssh/archive/8405fbd5eb4e42b495f08f6ccf6fbbe5ced28bb7.tar.gz"], +) + +load("@bzlmodrio-libssh//:maven_cpp_deps.bzl", "setup_legacy_bzlmodrio_libssh_cpp_dependencies") + +setup_legacy_bzlmodrio_libssh_cpp_dependencies() + http_archive( name = "build_bazel_apple_support", sha256 = "c4bb2b7367c484382300aee75be598b92f847896fb31bbd22f3a2346adf66a80", diff --git a/apriltag/BUILD.bazel b/apriltag/BUILD.bazel index 3544d27ef0..dce7db88e0 100644 --- a/apriltag/BUILD.bazel +++ b/apriltag/BUILD.bazel @@ -1,6 +1,7 @@ load("@rules_cc//cc:defs.bzl", "cc_binary", "cc_library", "cc_test") load("@rules_java//java:defs.bzl", "java_binary") load("@rules_python//python:defs.bzl", "py_binary") +load("//shared/bazel/rules:cc_rules.bzl", "wpilib_cc_library") load("//shared/bazel/rules:java_rules.bzl", "wpilib_java_junit5_test") load("//shared/bazel/rules:jni_rules.bzl", "wpilib_jni_cc_library", "wpilib_jni_java_library") load("//shared/bazel/rules/gen:gen-resources.bzl", "generate_resources") @@ -33,7 +34,6 @@ cc_library( }), includes = ["src/main/native/thirdparty/apriltag/include/common"], strip_include_prefix = "src/main/native/thirdparty/apriltag/include", - visibility = ["//visibility:public"], ) generate_resources( @@ -41,10 +41,9 @@ generate_resources( namespace = "frc", prefix = "APRILTAG", resource_files = glob(["src/main/native/resources/**"]), - visibility = ["//visibility:public"], ) -cc_library( +wpilib_cc_library( name = "apriltag.static", srcs = [":generate-resources"] + glob( ["src/main/native/cpp/**"], @@ -135,5 +134,8 @@ java_binary( py_binary( name = "convert_apriltag_layouts", srcs = ["convert_apriltag_layouts.py"], - tags = ["manual"], + target_compatible_with = select({ + "@rules_bzlmodrio_toolchains//constraints/is_systemcore:systemcore": ["@platforms//:incompatible"], + "//conditions:default": [], + }), ) diff --git a/cameraserver/BUILD.bazel b/cameraserver/BUILD.bazel index 73995c0135..9d60bef335 100644 --- a/cameraserver/BUILD.bazel +++ b/cameraserver/BUILD.bazel @@ -1,7 +1,8 @@ -load("@rules_cc//cc:defs.bzl", "cc_binary", "cc_library", "cc_test") +load("@rules_cc//cc:defs.bzl", "cc_binary", "cc_test") load("@rules_java//java:defs.bzl", "java_binary", "java_library") +load("//shared/bazel/rules:cc_rules.bzl", "wpilib_cc_library") -cc_library( +wpilib_cc_library( name = "cameraserver.static", srcs = glob(["src/main/native/cpp/**"]), hdrs = glob(["src/main/native/include/**/*"]), diff --git a/cscore/BUILD.bazel b/cscore/BUILD.bazel index 0af974eab6..f312efcf38 100644 --- a/cscore/BUILD.bazel +++ b/cscore/BUILD.bazel @@ -1,7 +1,9 @@ -load("@rules_cc//cc:defs.bzl", "cc_binary", "cc_library", "cc_test", "objc_library") +load("@rules_cc//cc:defs.bzl", "cc_binary", "cc_test") load("@rules_java//java:defs.bzl", "java_binary") +load("//shared/bazel/rules:cc_rules.bzl", "wpilib_cc_library") load("//shared/bazel/rules:java_rules.bzl", "wpilib_java_junit5_test") load("//shared/bazel/rules:jni_rules.bzl", "wpilib_jni_cc_library", "wpilib_jni_java_library") +load("//shared/bazel/rules:objectivec_rules.bzl", "wpilib_objc_library") WIN_SRCS = glob([ "src/main/native/windows/**/*.cpp", @@ -24,7 +26,7 @@ filegroup( }), ) -objc_library( +wpilib_objc_library( name = "cscore-mac", srcs = glob([ "src/main/native/objcpp/**/*.mm", @@ -34,9 +36,7 @@ objc_library( "src/main/native/include/**/*", "src/main/native/objcpp/**/*.h", ]), - copts = [ - "-std=c++20", - ], + include_arc = False, includes = [ "src/main/native/cpp", "src/main/native/include", @@ -50,7 +50,6 @@ objc_library( "CoreVideo", "IOKit", ], - tags = ["manual"], deps = [ "//wpinet:wpinet.static", "//wpiutil:wpiutil.static", @@ -58,7 +57,7 @@ objc_library( ], ) -cc_library( +wpilib_cc_library( name = "cscore.static", srcs = [":native-srcs"] + glob( ["src/main/native/cpp/**"], @@ -138,3 +137,24 @@ java_binary( "//wpiutil:wpiutil-java", ], ) + +[wpilib_cc_library( + name = example + "-examples", + srcs = glob([ + "examples/" + example + "/*.cpp", + ]), + tags = [ + "wpi-example", + ], + deps = [ + "//cscore:cscore.static", + "//wpigui", + ], +) for example in [ + "enum_usb", + "httpcvstream", + "settings", + "usbcvstream", + "usbstream", + "usbviewer", +]] diff --git a/cscore/java-examples/RawCVMatSink.java b/cscore/java-examples/RawCVMatSink.java deleted file mode 100644 index 686b8203d4..0000000000 --- a/cscore/java-examples/RawCVMatSink.java +++ /dev/null @@ -1,85 +0,0 @@ -// Copyright (c) FIRST and other WPILib contributors. -// Open Source Software; you can modify and/or share it under the terms of -// the WPILib BSD license file in the root directory of this project. - -package edu.wpi.cscore; - -import edu.wpi.cscore.VideoMode.PixelFormat; -import edu.wpi.cscore.raw.RawFrame; -import java.nio.ByteBuffer; -import org.opencv.core.CvType; -import org.opencv.core.Mat; - -public class RawCVMatSink extends ImageSink { - RawFrame frame = new RawFrame(); - Mat tmpMat; - ByteBuffer origByteBuffer; - int width; - int height; - int pixelFormat; - int bgrValue = PixelFormat.kBGR.getValue(); - - private int getCVFormat(PixelFormat pixelFormat) { - return switch (pixelFormat) { - case kYUYV, kRGB565, kY16, kUYVY -> CvType.CV_8UC2; - case kBGR -> CvType.CV_8UC3; - case kBGRA -> CvType.CV_8UC4; - case kGray, kMJPEG, kUnknown -> CvType.CV_8UC1; - }; - } - - /** - * Create a sink for accepting OpenCV images. WaitForFrame() must be called on the created sink to - * get each new image. - * - * @param name Source name (arbitrary unique identifier) - */ - public RawCVMatSink(String name) { - super(CameraServerJNI.createRawSink(name)); - } - - /** - * Wait for the next frame and get the image. Times out (returning 0) after 0.225 seconds. The - * provided image will have three 3-bit channels stored in BGR order. - * - * @return Frame time, or 0 on error (call GetError() to obtain the error message) - */ - public long grabFrame(Mat image) { - return grabFrame(image, 0.225); - } - - /** - * Wait for the next frame and get the image. Times out (returning 0) after timeout seconds. The - * provided image will have three 3-bit channels stored in BGR order. - * - * @return Frame time, or 0 on error (call GetError() to obtain the error message); the frame time - * is in 1 us increments. - */ - public long grabFrame(Mat image, double timeout) { - frame.setWidth(0); - frame.setHeight(0); - frame.setPixelFormat(bgrValue); - long rv = CameraServerJNI.grabSinkFrameTimeout(m_handle, frame, timeout); - if (rv <= 0) { - return rv; - } - - if (frame.getDataByteBuffer() != origByteBuffer - || width != frame.getWidth() - || height != frame.getHeight() - || pixelFormat != frame.getPixelFormat()) { - origByteBuffer = frame.getDataByteBuffer(); - height = frame.getHeight(); - width = frame.getWidth(); - pixelFormat = frame.getPixelFormat(); - tmpMat = - new Mat( - frame.getHeight(), - frame.getWidth(), - getCVFormat(VideoMode.getPixelFormatFromInt(pixelFormat)), - origByteBuffer); - } - tmpMat.copyTo(image); - return rv; - } -} diff --git a/cscore/java-examples/RawCVMatSource.java b/cscore/java-examples/RawCVMatSource.java deleted file mode 100644 index e000ae3dd1..0000000000 --- a/cscore/java-examples/RawCVMatSource.java +++ /dev/null @@ -1,60 +0,0 @@ -// Copyright (c) FIRST and other WPILib contributors. -// Open Source Software; you can modify and/or share it under the terms of -// the WPILib BSD license file in the root directory of this project. - -package edu.wpi.cscore; - -import edu.wpi.cscore.VideoMode.PixelFormat; -import org.opencv.core.Mat; - -public class RawCVMatSource extends ImageSource { - /** - * Create an OpenCV source. - * - * @param name Source name (arbitrary unique identifier) - * @param mode Video mode being generated - */ - public RawCVMatSource(String name, VideoMode mode) { - super( - CameraServerJNI.createRawSource( - name, mode.pixelFormat.getValue(), mode.width, mode.height, mode.fps)); - } - - /** - * Create an OpenCV source. - * - * @param name Source name (arbitrary unique identifier) - * @param pixelFormat Pixel format - * @param width width - * @param height height - * @param fps fps - */ - public RawCVMatSource( - String name, VideoMode.PixelFormat pixelFormat, int width, int height, int fps) { - super(CameraServerJNI.createRawSource(name, pixelFormat.getValue(), width, height, fps)); - } - - /** - * Put an OpenCV image and notify sinks. - * - *
Only 8-bit single-channel or 3-channel (with BGR channel order) images are supported. If the
- * format, depth or channel order is different, use Mat.convertTo() and/or cvtColor() to convert
- * it first.
- *
- * @param image OpenCV image
- */
- public void putFrame(Mat image) {
- int channels = image.channels();
- if (channels != 1 && channels != 3) {
- throw new VideoException("Unsupported Image Type");
- }
- int imgType = channels == 1 ? PixelFormat.kGray.getValue() : PixelFormat.kBGR.getValue();
- CameraServerJNI.putRawSourceFrame(
- m_handle,
- image.dataAddr(),
- image.width(),
- image.height(),
- imgType,
- (int) image.total() * channels);
- }
-}
diff --git a/datalog/BUILD.bazel b/datalog/BUILD.bazel
index 1e3c34c117..327d1a120e 100644
--- a/datalog/BUILD.bazel
+++ b/datalog/BUILD.bazel
@@ -1,10 +1,11 @@
-load("@rules_cc//cc:defs.bzl", "cc_binary", "cc_library", "cc_test")
+load("@rules_cc//cc:defs.bzl", "cc_binary", "cc_test")
load("@rules_java//java:defs.bzl", "java_binary")
load("@rules_python//python:defs.bzl", "py_binary")
+load("//shared/bazel/rules:cc_rules.bzl", "wpilib_cc_library")
load("//shared/bazel/rules:java_rules.bzl", "wpilib_java_junit5_test")
load("//shared/bazel/rules:jni_rules.bzl", "wpilib_jni_cc_library", "wpilib_jni_java_library")
-cc_library(
+wpilib_cc_library(
name = "datalog.static",
srcs = glob(
["src/main/native/cpp/**"],
@@ -46,7 +47,10 @@ wpilib_jni_java_library(
py_binary(
name = "datalog",
srcs = ["examples/printlog/datalog.py"],
- tags = ["manual"],
+ target_compatible_with = select({
+ "@rules_bzlmodrio_toolchains//constraints/is_systemcore:systemcore": ["@platforms//:incompatible"],
+ "//conditions:default": [],
+ }),
)
cc_binary(
@@ -79,10 +83,7 @@ java_binary(
cc_test(
name = "datalog-cpp-test",
size = "small",
- srcs = glob([
- "src/test/native/**/*.cpp",
- "src/test/native/**/*.h",
- ]),
+ srcs = glob(["src/test/native/**/*.cpp"]),
tags = [
"exclusive",
"no-asan",
diff --git a/datalogtool/BUILD.bazel b/datalogtool/BUILD.bazel
new file mode 100644
index 0000000000..ffce4df961
--- /dev/null
+++ b/datalogtool/BUILD.bazel
@@ -0,0 +1,57 @@
+load("@rules_cc//cc:defs.bzl", "cc_binary")
+load("//shared/bazel/rules/gen:gen-resources.bzl", "generate_resources")
+load("//shared/bazel/rules/gen:gen-version-file.bzl", "generate_version_file")
+
+generate_resources(
+ name = "generate-resources",
+ namespace = "dlt",
+ prefix = "DLT",
+ resource_files = glob(["src/main/native/resources/*"]),
+)
+
+generate_version_file(
+ name = "generate-version",
+ output_file = "WPILibVersion.cpp",
+ template = "src/main/generate/WPILibVersion.cpp.in",
+)
+
+cc_binary(
+ name = "datalogtool",
+ srcs = glob(["src/main/native/cpp/*"]) + [
+ ":generate-resources",
+ ":generate-version",
+ ],
+ defines = ["LIBSSH_STATIC"],
+ linkopts = select({
+ "@bazel_tools//src/conditions:darwin": [
+ "-framework",
+ "Kerberos",
+ ],
+ "@bazel_tools//src/conditions:linux_x86_64": [],
+ "@bazel_tools//src/conditions:windows": [
+ "-DEFAULTLIB:Gdi32.lib",
+ "-DEFAULTLIB:Shell32.lib",
+ "-DEFAULTLIB:d3d11.lib",
+ "-DEFAULTLIB:d3dcompiler.lib",
+ "-DEFAULTLIB:ws2_32.lib",
+ "-DEFAULTLIB:advapi32.lib",
+ "-DEFAULTLIB:crypt32.lib",
+ "-DEFAULTLIB:user32.lib",
+ "-SUBSYSTEM:WINDOWS",
+ ],
+ "@rules_bzlmodrio_toolchains//constraints/combined:is_cross_compiler": [],
+ }),
+ tags = [
+ "no-roborio",
+ "wpi-cpp-gui",
+ ],
+ target_compatible_with = select({
+ "@rules_bzlmodrio_toolchains//constraints/is_systemcore:systemcore": ["@platforms//:incompatible"],
+ "//conditions:default": [],
+ }),
+ deps = [
+ "//datalog:datalog.static",
+ "//glass:libglass",
+ "@bzlmodrio-libssh//libraries/cpp/libssh",
+ ],
+)
diff --git a/fieldImages/BUILD.bazel b/fieldImages/BUILD.bazel
index e006e9ef83..3066fc26ce 100644
--- a/fieldImages/BUILD.bazel
+++ b/fieldImages/BUILD.bazel
@@ -1,5 +1,5 @@
-load("@rules_cc//cc:defs.bzl", "cc_library")
load("@rules_java//java:defs.bzl", "java_library")
+load("//shared/bazel/rules:cc_rules.bzl", "wpilib_cc_library")
load("//shared/bazel/rules:java_rules.bzl", "wpilib_java_junit5_test")
load("//shared/bazel/rules/gen:gen-resources.bzl", "generate_resources")
@@ -8,10 +8,9 @@ generate_resources(
namespace = "fields",
prefix = "FIELDS",
resource_files = glob(["src/main/native/resources/**"]),
- visibility = ["//visibility:public"],
)
-cc_library(
+wpilib_cc_library(
name = "fieldImages",
srcs = [":generate-resources"] + glob(["src/main/native/cpp/**"]),
hdrs = glob(["src/main/native/include/**/*"]),
diff --git a/glass/BUILD.bazel b/glass/BUILD.bazel
index 0ebb5b7de9..2fc8b8a7cd 100644
--- a/glass/BUILD.bazel
+++ b/glass/BUILD.bazel
@@ -1,8 +1,9 @@
-load("@rules_cc//cc:defs.bzl", "cc_binary", "cc_library")
+load("@rules_cc//cc:defs.bzl", "cc_binary")
+load("//shared/bazel/rules:cc_rules.bzl", "wpilib_cc_library")
load("//shared/bazel/rules/gen:gen-resources.bzl", "generate_resources")
load("//shared/bazel/rules/gen:gen-version-file.bzl", "generate_version_file")
-cc_library(
+wpilib_cc_library(
name = "libglass",
srcs = glob(["src/lib/native/cpp/**/*.cpp"]),
hdrs = glob(["src/lib/native/include/**"]),
@@ -19,7 +20,7 @@ cc_library(
],
)
-cc_library(
+wpilib_cc_library(
name = "libglassnt",
srcs = glob(["src/libnt/native/cpp/*.cpp"]),
hdrs = glob(["src/libnt/native/include/**/*.h"]),
diff --git a/hal/BUILD.bazel b/hal/BUILD.bazel
index b846ddd730..db9cf0cbe1 100644
--- a/hal/BUILD.bazel
+++ b/hal/BUILD.bazel
@@ -3,14 +3,10 @@ load("@rules_cc//cc:defs.bzl", "cc_binary", "cc_library", "cc_test")
load("@rules_java//java:defs.bzl", "java_binary")
load("@rules_python//python:defs.bzl", "py_binary")
load("//hal:generate.bzl", "generate_hal")
+load("//shared/bazel/rules:cc_rules.bzl", "third_party_cc_lib_helper", "wpilib_cc_library")
load("//shared/bazel/rules:java_rules.bzl", "wpilib_java_junit5_test")
load("//shared/bazel/rules:jni_rules.bzl", "wpilib_jni_cc_library", "wpilib_jni_java_library")
-filegroup(
- name = "templates",
- srcs = glob(["src/generate/*"]),
-)
-
filegroup(
name = "proto_files",
srcs = glob(["src/mrc/proto/**/*.proto"]),
@@ -24,7 +20,6 @@ py_binary(
"@rules_bzlmodrio_toolchains//constraints/is_systemcore:systemcore": ["@platforms//:incompatible"],
"//conditions:default": [],
}),
- visibility = ["//visibility:public"],
)
generate_hal(
@@ -42,34 +37,16 @@ write_source_files(
visibility = ["//visibility:public"],
)
-cc_library(
- name = "generated_cc_headers",
- hdrs = glob(["src/generated/main/native/include/**"]),
- includes = ["src/generated/main/native/include"],
- strip_include_prefix = "src/generated/main/native/include",
- visibility = ["//hal:__subpackages__"],
-)
-
-cc_library(
- name = "mrc_cc_headers",
- hdrs = glob(["src/mrc/include/**"]),
- includes = ["src/mrc/include"],
- strip_include_prefix = "src/mrc/include",
- visibility = ["//hal:__subpackages__"],
+third_party_cc_lib_helper(
+ name = "mrc",
+ include_root = "src/mrc/include",
)
cc_library(
name = "generated_mrc_cc_headers",
- hdrs = glob(["src/generated/main/native/cpp/mrc/protobuf/**"]),
+ hdrs = glob(["src/generated/main/native/cpp/mrc/protobuf/*.npb.h"]),
includes = ["src/generated/main/native/cpp/mrc/protobuf"],
strip_include_prefix = "src/generated/main/native/cpp/mrc/protobuf",
- visibility = ["//hal:__subpackages__"],
-)
-
-filegroup(
- name = "generated_java",
- srcs = glob(["src/generated/main/java/**/*.java"]),
- visibility = ["//hal:__subpackages__"],
)
SYSTEMCORE_SRCS = glob(["src/main/native/systemcore/**"])
@@ -84,7 +61,7 @@ filegroup(
}),
)
-cc_library(
+wpilib_cc_library(
name = "wpiHal.static",
srcs = [":platform-srcs"] + glob(
[
@@ -96,11 +73,12 @@ cc_library(
hdrs = glob(["src/main/native/include/**/*"]),
includes = ["src/main/native/include"],
strip_include_prefix = "src/main/native/include",
+ third_party_header_only_libraries = [
+ ":mrc",
+ ],
visibility = ["//visibility:public"],
deps = [
- ":generated_cc_headers",
":generated_mrc_cc_headers",
- ":mrc_cc_headers",
"//ntcore:ntcore.static",
"//wpinet:wpinet.static",
"//wpiutil:wpiutil.static",
@@ -132,10 +110,7 @@ wpilib_jni_java_library(
cc_test(
name = "hal-cpp-test",
size = "small",
- srcs = glob([
- "src/test/native/**/*.cpp",
- "src/test/native/**/*.h",
- ]),
+ srcs = glob(["src/test/native/**/*.cpp"]),
deps = [
":wpiHal.static",
"//thirdparty/googletest:googletest.static",
diff --git a/hal/generate.bzl b/hal/generate.bzl
index 29bdd38b39..44ab6cd89c 100644
--- a/hal/generate.bzl
+++ b/hal/generate.bzl
@@ -9,7 +9,7 @@ def __generate_hal_impl(ctx):
args.add("--nanopb", ctx.executable._nanopb_generator)
ctx.actions.run(
- inputs = ctx.attr._templates.files.to_list() + ctx.attr.proto_files.files.to_list(),
+ inputs = ctx.attr.proto_files.files.to_list(),
outputs = [output_dir],
executable = ctx.executable._tool,
arguments = [args],
@@ -35,9 +35,6 @@ generate_hal = rule(
cfg = "exec",
executable = True,
),
- "_templates": attr.label(
- default = Label("//hal:templates"),
- ),
"_tool": attr.label(
default = Label("//hal:generate_nanopb"),
cfg = "exec",
diff --git a/maven_install.json b/maven_install.json
new file mode 100755
index 0000000000..32bc1cdf6d
--- /dev/null
+++ b/maven_install.json
@@ -0,0 +1,1313 @@
+{
+ "__AUTOGENERATED_FILE_DO_NOT_MODIFY_THIS_FILE_MANUALLY": "THERE_IS_NO_DATA_ONLY_ZUUL",
+ "__INPUT_ARTIFACTS_HASH": 76301167,
+ "__RESOLVED_ARTIFACTS_HASH": 90189104,
+ "artifacts": {
+ "com.fasterxml.jackson.core:jackson-annotations": {
+ "shasums": {
+ "jar": "04e21f94dcfee4b078fa5a5f53047b785aaba69d19de392f616e7a7fe5d3882f"
+ },
+ "version": "2.15.2"
+ },
+ "com.fasterxml.jackson.core:jackson-core": {
+ "shasums": {
+ "jar": "303c99e82b1faa91a0bae5d8fbeb56f7e2adf9b526a900dd723bf140d62bd4b4"
+ },
+ "version": "2.15.2"
+ },
+ "com.fasterxml.jackson.core:jackson-databind": {
+ "shasums": {
+ "jar": "0eb2fdad6e40ab8832a78c9b22f58196dd970594e8d3d5a26ead87847c4f3a96"
+ },
+ "version": "2.15.2"
+ },
+ "com.google.auto.value:auto-value": {
+ "shasums": {
+ "jar": "7ca3edd75517fcc8bfc420fda15d2ae2e89ebd6ed477b351caa746e44b2d5603"
+ },
+ "version": "1.10"
+ },
+ "com.google.auto.value:auto-value-annotations": {
+ "shasums": {
+ "jar": "37ec09b47d7ed35a99d13927db5c86fc9071f620f943ead5d757144698310852"
+ },
+ "version": "1.8.1"
+ },
+ "com.google.auto:auto-common": {
+ "shasums": {
+ "jar": "f43f29fe2a6ebaf04b2598cdeec32a4e346d49a9404e990f5fc19c19f3a28d0e"
+ },
+ "version": "1.2.1"
+ },
+ "com.google.code.findbugs:jsr305": {
+ "shasums": {
+ "jar": "766ad2a0783f2687962c8ad74ceecc38a28b9f72a2d085ee438b7813e928d0c7"
+ },
+ "version": "3.0.2"
+ },
+ "com.google.code.gson:gson": {
+ "shasums": {
+ "jar": "4241c14a7727c34feea6507ec801318a3d4a90f070e4525681079fb94ee4c593"
+ },
+ "version": "2.10.1"
+ },
+ "com.google.errorprone:error_prone_annotations": {
+ "shasums": {
+ "jar": "721cb91842b46fa056847d104d5225c8b8e1e8b62263b993051e1e5a0137b7ec"
+ },
+ "version": "2.11.0"
+ },
+ "com.google.guava:failureaccess": {
+ "shasums": {
+ "jar": "a171ee4c734dd2da837e4b16be9df4661afab72a41adaf31eb84dfdaf936ca26"
+ },
+ "version": "1.0.1"
+ },
+ "com.google.guava:guava": {
+ "shasums": {
+ "jar": "a42edc9cab792e39fe39bb94f3fca655ed157ff87a8af78e1d6ba5b07c4a00ab"
+ },
+ "version": "31.1-jre"
+ },
+ "com.google.guava:listenablefuture": {
+ "shasums": {
+ "jar": "b372a037d4230aa57fbeffdef30fd6123f9c0c2db85d0aced00c91b974f33f99"
+ },
+ "version": "9999.0-empty-to-avoid-conflict-with-guava"
+ },
+ "com.google.j2objc:j2objc-annotations": {
+ "shasums": {
+ "jar": "21af30c92267bd6122c0e0b4d20cccb6641a37eaf956c6540ec471d584e64a7b"
+ },
+ "version": "1.3"
+ },
+ "com.google.testing.compile:compile-testing": {
+ "shasums": {
+ "jar": "da42c0b350c0e5717df91a7e554ee5acbf07f4b87d4d2240589521070b4bce72"
+ },
+ "version": "0.21.0"
+ },
+ "com.google.truth:truth": {
+ "shasums": {
+ "jar": "fc0b67782289a2aabfddfdf99eff1dcd5edc890d49143fcd489214b107b8f4f3"
+ },
+ "version": "1.1.3"
+ },
+ "com.googlecode.junit-toolbox:junit-toolbox": {
+ "shasums": {
+ "jar": "3b327a1b9deb0e15148094153abb72d7bcf5cf3b5b36e97c86e910103812df25"
+ },
+ "version": "2.4"
+ },
+ "commons-io:commons-io": {
+ "shasums": {
+ "jar": "cc6a41dc3eaacc9e440a6bd0d2890b20d36b4ee408fe2d67122f328bb6e01581"
+ },
+ "version": "2.4"
+ },
+ "junit:junit": {
+ "shasums": {
+ "jar": "8e495b634469d64fb8acfa3495a065cbacc8a0fff55ce1e31007be4c16dc57d3"
+ },
+ "version": "4.13.2"
+ },
+ "net.bytebuddy:byte-buddy": {
+ "shasums": {
+ "jar": "9062fb0ae3ae7fab0118d77e9c8bc2dae2ce0144a71b6952d7ba4ddc14c69c5f"
+ },
+ "version": "1.12.1"
+ },
+ "net.bytebuddy:byte-buddy-agent": {
+ "shasums": {
+ "jar": "99c0ad053f5c9635049e2079112a4f0d864c7d5c44b352513e594e8964cff9b3"
+ },
+ "version": "1.12.1"
+ },
+ "org.apache.ant:ant": {
+ "shasums": {
+ "jar": "5c6a438c3ebe7a306eba452b09fa307b0e60314926177920bca896c4a504eaf6"
+ },
+ "version": "1.10.12"
+ },
+ "org.apache.ant:ant-junit": {
+ "shasums": {
+ "jar": "800eb1f75188fd1e2cd9e7ba31561f16e3bd81b94e813821440f03a0fa07ce50"
+ },
+ "version": "1.10.12"
+ },
+ "org.apache.ant:ant-launcher": {
+ "shasums": {
+ "jar": "42a7ca7e7bb777fe7ee75a5ed4cc529c766bc43486367fdaad0ab4a32ee9c249"
+ },
+ "version": "1.10.12"
+ },
+ "org.apiguardian:apiguardian-api": {
+ "shasums": {
+ "jar": "b509448ac506d607319f182537f0b35d71007582ec741832a1f111e5b5b70b38"
+ },
+ "version": "1.1.2"
+ },
+ "org.checkerframework:checker-qual": {
+ "shasums": {
+ "jar": "13071d3b67326eeec0180d07fcbb1c79b0c27b173f04fea0982203c151160986"
+ },
+ "version": "3.26.0"
+ },
+ "org.ejml:ejml-cdense": {
+ "shasums": {
+ "jar": "20c96f2b25facf9014c46c6d0e0139e2c1bbec7954411e9eb1b4c53ef7eaef6d"
+ },
+ "version": "0.43.1"
+ },
+ "org.ejml:ejml-core": {
+ "shasums": {
+ "jar": "04136b8fabedf92c218914da3a837e27ba0aefbf924444d2aac243f77dbf208d"
+ },
+ "version": "0.43.1"
+ },
+ "org.ejml:ejml-ddense": {
+ "shasums": {
+ "jar": "bb3d00c111868673d35f1aca24de7fe72b970c47dc44295f510684b2be6eb7ce"
+ },
+ "version": "0.43.1"
+ },
+ "org.ejml:ejml-dsparse": {
+ "shasums": {
+ "jar": "5b15d7d06e88d0384ed40358127f3358cab462ad4d273da1763e9f5282ad27e1"
+ },
+ "version": "0.43.1"
+ },
+ "org.ejml:ejml-fdense": {
+ "shasums": {
+ "jar": "67dc4bebaa52a9864c2028ad150444a22227792a712bbc13f5d0c1ebe836b029"
+ },
+ "version": "0.43.1"
+ },
+ "org.ejml:ejml-fsparse": {
+ "shasums": {
+ "jar": "23ef080a75893f7d1b0b2f16bd937ddbc4199a2999c246d905a55663a4d54a91"
+ },
+ "version": "0.43.1"
+ },
+ "org.ejml:ejml-simple": {
+ "shasums": {
+ "jar": "348acd004027e1e0719b76cac6432d368640489eb3d619508275fd37373acb0d"
+ },
+ "version": "0.43.1"
+ },
+ "org.ejml:ejml-zdense": {
+ "shasums": {
+ "jar": "dc47e7395fb7dd3652f0f2e82566f193824ba3762fc709487e03d76bba13e070"
+ },
+ "version": "0.43.1"
+ },
+ "org.hamcrest:hamcrest-all": {
+ "shasums": {
+ "jar": "4877670629ab96f34f5f90ab283125fcd9acb7e683e66319a68be6eb2cca60de"
+ },
+ "version": "1.3"
+ },
+ "org.hamcrest:hamcrest-core": {
+ "shasums": {
+ "jar": "66fdef91e9739348df7a096aa384a5685f4e875584cce89386a7a47251c4d8e9"
+ },
+ "version": "1.3"
+ },
+ "org.hamcrest:hamcrest-library": {
+ "shasums": {
+ "jar": "711d64522f9ec410983bd310934296da134be4254a125080a0416ec178dfad1c"
+ },
+ "version": "1.3"
+ },
+ "org.junit.jupiter:junit-jupiter": {
+ "shasums": {
+ "jar": "c1a386e901fae28e493185a47c8cea988fb1a37422b353a0f8b4df2e6c5d6037"
+ },
+ "version": "5.10.1"
+ },
+ "org.junit.jupiter:junit-jupiter-api": {
+ "shasums": {
+ "jar": "60d5c398c32dc7039b99282514ad6064061d8417cf959a1f6bd2038cc907c913"
+ },
+ "version": "5.10.1"
+ },
+ "org.junit.jupiter:junit-jupiter-engine": {
+ "shasums": {
+ "jar": "02930dfe495f93fe70b26550ace3a28f7e1b900c84426c2e4626ce020c7282d6"
+ },
+ "version": "5.10.1"
+ },
+ "org.junit.jupiter:junit-jupiter-params": {
+ "shasums": {
+ "jar": "c8cf62debcbb354deefe1ffd0671eff785514907567d22a615ff8a8de4522b21"
+ },
+ "version": "5.10.1"
+ },
+ "org.junit.platform:junit-platform-commons": {
+ "shasums": {
+ "jar": "7d9855ee3f3f71f015eb1479559bf923783243c24fbfbd8b29bed8e8099b5672"
+ },
+ "version": "1.10.1"
+ },
+ "org.junit.platform:junit-platform-console": {
+ "shasums": {
+ "jar": "21cfa2a03f5a7b3502bfcad3eba188aa1299d8a667ff636f813d2a267267c355"
+ },
+ "version": "1.10.1"
+ },
+ "org.junit.platform:junit-platform-engine": {
+ "shasums": {
+ "jar": "baa48e470d6dee7369a0a8820c51da89c1463279eda6e13a304d11f45922c760"
+ },
+ "version": "1.10.1"
+ },
+ "org.junit.platform:junit-platform-launcher": {
+ "shasums": {
+ "jar": "ded414c504e88d02270331071969084e1b2fd9bcf8443f35d44da2c6e3301bc2"
+ },
+ "version": "1.10.1"
+ },
+ "org.junit.platform:junit-platform-reporting": {
+ "shasums": {
+ "jar": "222245aba7091f6660aa72d491e8c621faf19146a58126d058249aa8abf151df"
+ },
+ "version": "1.10.1"
+ },
+ "org.mockito:mockito-core": {
+ "shasums": {
+ "jar": "9a924658ec795777cce66da7ecbefde57b079408b838992a624db33d52da9359"
+ },
+ "version": "4.1.0"
+ },
+ "org.objenesis:objenesis": {
+ "shasums": {
+ "jar": "03d960bd5aef03c653eb000413ada15eb77cdd2b8e4448886edf5692805e35f3"
+ },
+ "version": "3.2"
+ },
+ "org.opentest4j:opentest4j": {
+ "shasums": {
+ "jar": "48e2df636cab6563ced64dcdff8abb2355627cb236ef0bf37598682ddf742f1b"
+ },
+ "version": "1.3.0"
+ },
+ "org.ow2.asm:asm": {
+ "shasums": {
+ "jar": "cda4de455fab48ff0bcb7c48b4639447d4de859a7afc30a094a986f0936beba2"
+ },
+ "version": "9.1"
+ },
+ "us.hebi.quickbuf:quickbuf-runtime": {
+ "shasums": {
+ "jar": "7af02629bb416fa78dae39984fad1b20d5637dbffd47ff4849f1599e95ec5b1c"
+ },
+ "version": "1.3.3"
+ }
+ },
+ "dependencies": {
+ "com.fasterxml.jackson.core:jackson-databind": [
+ "com.fasterxml.jackson.core:jackson-annotations",
+ "com.fasterxml.jackson.core:jackson-core"
+ ],
+ "com.google.auto:auto-common": [
+ "com.google.guava:guava"
+ ],
+ "com.google.guava:guava": [
+ "com.google.code.findbugs:jsr305",
+ "com.google.errorprone:error_prone_annotations",
+ "com.google.guava:failureaccess",
+ "com.google.guava:listenablefuture",
+ "com.google.j2objc:j2objc-annotations",
+ "org.checkerframework:checker-qual"
+ ],
+ "com.google.testing.compile:compile-testing": [
+ "com.google.auto.value:auto-value",
+ "com.google.auto:auto-common",
+ "com.google.guava:guava",
+ "com.google.truth:truth",
+ "junit:junit",
+ "org.checkerframework:checker-qual"
+ ],
+ "com.google.truth:truth": [
+ "com.google.auto.value:auto-value-annotations",
+ "com.google.errorprone:error_prone_annotations",
+ "com.google.guava:guava",
+ "junit:junit",
+ "org.checkerframework:checker-qual",
+ "org.ow2.asm:asm"
+ ],
+ "com.googlecode.junit-toolbox:junit-toolbox": [
+ "commons-io:commons-io",
+ "junit:junit",
+ "org.hamcrest:hamcrest-library",
+ "org.mockito:mockito-core"
+ ],
+ "junit:junit": [
+ "org.hamcrest:hamcrest-core"
+ ],
+ "org.apache.ant:ant": [
+ "org.apache.ant:ant-launcher"
+ ],
+ "org.apache.ant:ant-junit": [
+ "junit:junit",
+ "org.apache.ant:ant"
+ ],
+ "org.ejml:ejml-cdense": [
+ "org.ejml:ejml-core"
+ ],
+ "org.ejml:ejml-ddense": [
+ "org.ejml:ejml-core"
+ ],
+ "org.ejml:ejml-dsparse": [
+ "org.ejml:ejml-core",
+ "org.ejml:ejml-ddense"
+ ],
+ "org.ejml:ejml-fdense": [
+ "org.ejml:ejml-core"
+ ],
+ "org.ejml:ejml-fsparse": [
+ "org.ejml:ejml-core",
+ "org.ejml:ejml-fdense"
+ ],
+ "org.ejml:ejml-simple": [
+ "org.ejml:ejml-cdense",
+ "org.ejml:ejml-core",
+ "org.ejml:ejml-ddense",
+ "org.ejml:ejml-dsparse",
+ "org.ejml:ejml-fdense",
+ "org.ejml:ejml-fsparse",
+ "org.ejml:ejml-zdense"
+ ],
+ "org.ejml:ejml-zdense": [
+ "org.ejml:ejml-core"
+ ],
+ "org.hamcrest:hamcrest-library": [
+ "org.hamcrest:hamcrest-core"
+ ],
+ "org.junit.jupiter:junit-jupiter": [
+ "org.junit.jupiter:junit-jupiter-api",
+ "org.junit.jupiter:junit-jupiter-engine",
+ "org.junit.jupiter:junit-jupiter-params"
+ ],
+ "org.junit.jupiter:junit-jupiter-api": [
+ "org.apiguardian:apiguardian-api",
+ "org.junit.platform:junit-platform-commons",
+ "org.opentest4j:opentest4j"
+ ],
+ "org.junit.jupiter:junit-jupiter-engine": [
+ "org.apiguardian:apiguardian-api",
+ "org.junit.jupiter:junit-jupiter-api",
+ "org.junit.platform:junit-platform-engine"
+ ],
+ "org.junit.jupiter:junit-jupiter-params": [
+ "org.apiguardian:apiguardian-api",
+ "org.junit.jupiter:junit-jupiter-api"
+ ],
+ "org.junit.platform:junit-platform-commons": [
+ "org.apiguardian:apiguardian-api"
+ ],
+ "org.junit.platform:junit-platform-console": [
+ "org.apiguardian:apiguardian-api",
+ "org.junit.platform:junit-platform-reporting"
+ ],
+ "org.junit.platform:junit-platform-engine": [
+ "org.apiguardian:apiguardian-api",
+ "org.junit.platform:junit-platform-commons",
+ "org.opentest4j:opentest4j"
+ ],
+ "org.junit.platform:junit-platform-launcher": [
+ "org.apiguardian:apiguardian-api",
+ "org.junit.platform:junit-platform-engine"
+ ],
+ "org.junit.platform:junit-platform-reporting": [
+ "org.apiguardian:apiguardian-api",
+ "org.junit.platform:junit-platform-launcher"
+ ],
+ "org.mockito:mockito-core": [
+ "net.bytebuddy:byte-buddy",
+ "net.bytebuddy:byte-buddy-agent",
+ "org.objenesis:objenesis"
+ ]
+ },
+ "packages": {
+ "com.fasterxml.jackson.core:jackson-annotations": [
+ "com.fasterxml.jackson.annotation"
+ ],
+ "com.fasterxml.jackson.core:jackson-core": [
+ "com.fasterxml.jackson.core",
+ "com.fasterxml.jackson.core.async",
+ "com.fasterxml.jackson.core.base",
+ "com.fasterxml.jackson.core.exc",
+ "com.fasterxml.jackson.core.filter",
+ "com.fasterxml.jackson.core.format",
+ "com.fasterxml.jackson.core.io",
+ "com.fasterxml.jackson.core.io.doubleparser",
+ "com.fasterxml.jackson.core.io.schubfach",
+ "com.fasterxml.jackson.core.json",
+ "com.fasterxml.jackson.core.json.async",
+ "com.fasterxml.jackson.core.sym",
+ "com.fasterxml.jackson.core.type",
+ "com.fasterxml.jackson.core.util"
+ ],
+ "com.fasterxml.jackson.core:jackson-databind": [
+ "com.fasterxml.jackson.databind",
+ "com.fasterxml.jackson.databind.annotation",
+ "com.fasterxml.jackson.databind.cfg",
+ "com.fasterxml.jackson.databind.deser",
+ "com.fasterxml.jackson.databind.deser.impl",
+ "com.fasterxml.jackson.databind.deser.std",
+ "com.fasterxml.jackson.databind.exc",
+ "com.fasterxml.jackson.databind.ext",
+ "com.fasterxml.jackson.databind.introspect",
+ "com.fasterxml.jackson.databind.jdk14",
+ "com.fasterxml.jackson.databind.json",
+ "com.fasterxml.jackson.databind.jsonFormatVisitors",
+ "com.fasterxml.jackson.databind.jsonschema",
+ "com.fasterxml.jackson.databind.jsontype",
+ "com.fasterxml.jackson.databind.jsontype.impl",
+ "com.fasterxml.jackson.databind.module",
+ "com.fasterxml.jackson.databind.node",
+ "com.fasterxml.jackson.databind.ser",
+ "com.fasterxml.jackson.databind.ser.impl",
+ "com.fasterxml.jackson.databind.ser.std",
+ "com.fasterxml.jackson.databind.type",
+ "com.fasterxml.jackson.databind.util",
+ "com.fasterxml.jackson.databind.util.internal"
+ ],
+ "com.google.auto.value:auto-value": [
+ "autovalue.shaded.com.google.auto.common",
+ "autovalue.shaded.com.google.auto.service",
+ "autovalue.shaded.com.google.common.annotations",
+ "autovalue.shaded.com.google.common.base",
+ "autovalue.shaded.com.google.common.cache",
+ "autovalue.shaded.com.google.common.collect",
+ "autovalue.shaded.com.google.common.escape",
+ "autovalue.shaded.com.google.common.eventbus",
+ "autovalue.shaded.com.google.common.graph",
+ "autovalue.shaded.com.google.common.hash",
+ "autovalue.shaded.com.google.common.html",
+ "autovalue.shaded.com.google.common.io",
+ "autovalue.shaded.com.google.common.math",
+ "autovalue.shaded.com.google.common.net",
+ "autovalue.shaded.com.google.common.primitives",
+ "autovalue.shaded.com.google.common.reflect",
+ "autovalue.shaded.com.google.common.util.concurrent",
+ "autovalue.shaded.com.google.common.xml",
+ "autovalue.shaded.com.google.errorprone.annotations",
+ "autovalue.shaded.com.google.errorprone.annotations.concurrent",
+ "autovalue.shaded.com.google.escapevelocity",
+ "autovalue.shaded.com.google.j2objc.annotations",
+ "autovalue.shaded.com.squareup.javapoet",
+ "autovalue.shaded.kotlin",
+ "autovalue.shaded.kotlin.annotation",
+ "autovalue.shaded.kotlin.collections",
+ "autovalue.shaded.kotlin.collections.builders",
+ "autovalue.shaded.kotlin.collections.unsigned",
+ "autovalue.shaded.kotlin.comparisons",
+ "autovalue.shaded.kotlin.coroutines",
+ "autovalue.shaded.kotlin.coroutines.intrinsics",
+ "autovalue.shaded.kotlin.coroutines.jvm.internal",
+ "autovalue.shaded.kotlin.experimental",
+ "autovalue.shaded.kotlin.internal",
+ "autovalue.shaded.kotlin.jvm",
+ "autovalue.shaded.kotlin.jvm.functions",
+ "autovalue.shaded.kotlin.jvm.internal",
+ "autovalue.shaded.kotlin.jvm.internal.markers",
+ "autovalue.shaded.kotlin.random",
+ "autovalue.shaded.kotlin.ranges",
+ "autovalue.shaded.kotlin.reflect",
+ "autovalue.shaded.kotlin.sequences",
+ "autovalue.shaded.kotlin.text",
+ "autovalue.shaded.kotlinx.metadata",
+ "autovalue.shaded.kotlinx.metadata.impl",
+ "autovalue.shaded.kotlinx.metadata.impl.extensions",
+ "autovalue.shaded.kotlinx.metadata.internal.metadata",
+ "autovalue.shaded.kotlinx.metadata.internal.metadata.deserialization",
+ "autovalue.shaded.kotlinx.metadata.internal.metadata.jvm",
+ "autovalue.shaded.kotlinx.metadata.internal.metadata.jvm.deserialization",
+ "autovalue.shaded.kotlinx.metadata.internal.metadata.jvm.serialization",
+ "autovalue.shaded.kotlinx.metadata.internal.metadata.serialization",
+ "autovalue.shaded.kotlinx.metadata.internal.protobuf",
+ "autovalue.shaded.kotlinx.metadata.jvm",
+ "autovalue.shaded.kotlinx.metadata.jvm.impl",
+ "autovalue.shaded.net.ltgt.gradle.incap",
+ "autovalue.shaded.org.checkerframework.checker.nullness.qual",
+ "autovalue.shaded.org.checkerframework.framework.qual",
+ "autovalue.shaded.org.objectweb.asm",
+ "com.google.auto.value.extension",
+ "com.google.auto.value.extension.memoized.processor",
+ "com.google.auto.value.extension.serializable.processor",
+ "com.google.auto.value.extension.serializable.serializer",
+ "com.google.auto.value.extension.serializable.serializer.impl",
+ "com.google.auto.value.extension.serializable.serializer.interfaces",
+ "com.google.auto.value.extension.serializable.serializer.runtime",
+ "com.google.auto.value.extension.toprettystring.processor",
+ "com.google.auto.value.processor",
+ "org.jetbrains.annotations"
+ ],
+ "com.google.auto.value:auto-value-annotations": [
+ "com.google.auto.value",
+ "com.google.auto.value.extension.memoized",
+ "com.google.auto.value.extension.serializable",
+ "com.google.auto.value.extension.toprettystring"
+ ],
+ "com.google.auto:auto-common": [
+ "com.google.auto.common"
+ ],
+ "com.google.code.findbugs:jsr305": [
+ "javax.annotation",
+ "javax.annotation.concurrent",
+ "javax.annotation.meta"
+ ],
+ "com.google.code.gson:gson": [
+ "com.google.gson",
+ "com.google.gson.annotations",
+ "com.google.gson.internal",
+ "com.google.gson.internal.bind",
+ "com.google.gson.internal.bind.util",
+ "com.google.gson.internal.reflect",
+ "com.google.gson.internal.sql",
+ "com.google.gson.reflect",
+ "com.google.gson.stream"
+ ],
+ "com.google.errorprone:error_prone_annotations": [
+ "com.google.errorprone.annotations",
+ "com.google.errorprone.annotations.concurrent"
+ ],
+ "com.google.guava:failureaccess": [
+ "com.google.common.util.concurrent.internal"
+ ],
+ "com.google.guava:guava": [
+ "com.google.common.annotations",
+ "com.google.common.base",
+ "com.google.common.base.internal",
+ "com.google.common.cache",
+ "com.google.common.collect",
+ "com.google.common.escape",
+ "com.google.common.eventbus",
+ "com.google.common.graph",
+ "com.google.common.hash",
+ "com.google.common.html",
+ "com.google.common.io",
+ "com.google.common.math",
+ "com.google.common.net",
+ "com.google.common.primitives",
+ "com.google.common.reflect",
+ "com.google.common.util.concurrent",
+ "com.google.common.xml",
+ "com.google.thirdparty.publicsuffix"
+ ],
+ "com.google.j2objc:j2objc-annotations": [
+ "com.google.j2objc.annotations"
+ ],
+ "com.google.testing.compile:compile-testing": [
+ "com.google.testing.compile"
+ ],
+ "com.google.truth:truth": [
+ "com.google.common.truth"
+ ],
+ "com.googlecode.junit-toolbox:junit-toolbox": [
+ "com.googlecode.junittoolbox",
+ "com.googlecode.junittoolbox.util"
+ ],
+ "commons-io:commons-io": [
+ "org.apache.commons.io",
+ "org.apache.commons.io.comparator",
+ "org.apache.commons.io.filefilter",
+ "org.apache.commons.io.input",
+ "org.apache.commons.io.monitor",
+ "org.apache.commons.io.output"
+ ],
+ "junit:junit": [
+ "junit.extensions",
+ "junit.framework",
+ "junit.runner",
+ "junit.textui",
+ "org.junit",
+ "org.junit.experimental",
+ "org.junit.experimental.categories",
+ "org.junit.experimental.max",
+ "org.junit.experimental.results",
+ "org.junit.experimental.runners",
+ "org.junit.experimental.theories",
+ "org.junit.experimental.theories.internal",
+ "org.junit.experimental.theories.suppliers",
+ "org.junit.function",
+ "org.junit.internal",
+ "org.junit.internal.builders",
+ "org.junit.internal.management",
+ "org.junit.internal.matchers",
+ "org.junit.internal.requests",
+ "org.junit.internal.runners",
+ "org.junit.internal.runners.model",
+ "org.junit.internal.runners.rules",
+ "org.junit.internal.runners.statements",
+ "org.junit.matchers",
+ "org.junit.rules",
+ "org.junit.runner",
+ "org.junit.runner.manipulation",
+ "org.junit.runner.notification",
+ "org.junit.runners",
+ "org.junit.runners.model",
+ "org.junit.runners.parameterized",
+ "org.junit.validator"
+ ],
+ "net.bytebuddy:byte-buddy": [
+ "net.bytebuddy",
+ "net.bytebuddy.agent.builder",
+ "net.bytebuddy.asm",
+ "net.bytebuddy.build",
+ "net.bytebuddy.description",
+ "net.bytebuddy.description.annotation",
+ "net.bytebuddy.description.enumeration",
+ "net.bytebuddy.description.field",
+ "net.bytebuddy.description.method",
+ "net.bytebuddy.description.modifier",
+ "net.bytebuddy.description.type",
+ "net.bytebuddy.dynamic",
+ "net.bytebuddy.dynamic.loading",
+ "net.bytebuddy.dynamic.scaffold",
+ "net.bytebuddy.dynamic.scaffold.inline",
+ "net.bytebuddy.dynamic.scaffold.subclass",
+ "net.bytebuddy.implementation",
+ "net.bytebuddy.implementation.attribute",
+ "net.bytebuddy.implementation.auxiliary",
+ "net.bytebuddy.implementation.bind",
+ "net.bytebuddy.implementation.bind.annotation",
+ "net.bytebuddy.implementation.bytecode",
+ "net.bytebuddy.implementation.bytecode.assign",
+ "net.bytebuddy.implementation.bytecode.assign.primitive",
+ "net.bytebuddy.implementation.bytecode.assign.reference",
+ "net.bytebuddy.implementation.bytecode.collection",
+ "net.bytebuddy.implementation.bytecode.constant",
+ "net.bytebuddy.implementation.bytecode.member",
+ "net.bytebuddy.jar.asm",
+ "net.bytebuddy.jar.asm.commons",
+ "net.bytebuddy.jar.asm.signature",
+ "net.bytebuddy.matcher",
+ "net.bytebuddy.pool",
+ "net.bytebuddy.utility",
+ "net.bytebuddy.utility.dispatcher",
+ "net.bytebuddy.utility.privilege",
+ "net.bytebuddy.utility.visitor"
+ ],
+ "net.bytebuddy:byte-buddy-agent": [
+ "net.bytebuddy.agent"
+ ],
+ "org.apache.ant:ant": [
+ "org.apache.tools.ant",
+ "org.apache.tools.ant.attribute",
+ "org.apache.tools.ant.dispatch",
+ "org.apache.tools.ant.filters",
+ "org.apache.tools.ant.filters.util",
+ "org.apache.tools.ant.helper",
+ "org.apache.tools.ant.input",
+ "org.apache.tools.ant.listener",
+ "org.apache.tools.ant.loader",
+ "org.apache.tools.ant.property",
+ "org.apache.tools.ant.taskdefs",
+ "org.apache.tools.ant.taskdefs.compilers",
+ "org.apache.tools.ant.taskdefs.condition",
+ "org.apache.tools.ant.taskdefs.cvslib",
+ "org.apache.tools.ant.taskdefs.email",
+ "org.apache.tools.ant.taskdefs.launcher",
+ "org.apache.tools.ant.taskdefs.modules",
+ "org.apache.tools.ant.taskdefs.optional",
+ "org.apache.tools.ant.taskdefs.optional.ccm",
+ "org.apache.tools.ant.taskdefs.optional.clearcase",
+ "org.apache.tools.ant.taskdefs.optional.depend",
+ "org.apache.tools.ant.taskdefs.optional.depend.constantpool",
+ "org.apache.tools.ant.taskdefs.optional.ejb",
+ "org.apache.tools.ant.taskdefs.optional.extension",
+ "org.apache.tools.ant.taskdefs.optional.extension.resolvers",
+ "org.apache.tools.ant.taskdefs.optional.i18n",
+ "org.apache.tools.ant.taskdefs.optional.j2ee",
+ "org.apache.tools.ant.taskdefs.optional.javacc",
+ "org.apache.tools.ant.taskdefs.optional.javah",
+ "org.apache.tools.ant.taskdefs.optional.jlink",
+ "org.apache.tools.ant.taskdefs.optional.jsp",
+ "org.apache.tools.ant.taskdefs.optional.jsp.compilers",
+ "org.apache.tools.ant.taskdefs.optional.native2ascii",
+ "org.apache.tools.ant.taskdefs.optional.net",
+ "org.apache.tools.ant.taskdefs.optional.pvcs",
+ "org.apache.tools.ant.taskdefs.optional.script",
+ "org.apache.tools.ant.taskdefs.optional.sos",
+ "org.apache.tools.ant.taskdefs.optional.testing",
+ "org.apache.tools.ant.taskdefs.optional.unix",
+ "org.apache.tools.ant.taskdefs.optional.vss",
+ "org.apache.tools.ant.taskdefs.optional.windows",
+ "org.apache.tools.ant.taskdefs.rmic",
+ "org.apache.tools.ant.types",
+ "org.apache.tools.ant.types.mappers",
+ "org.apache.tools.ant.types.optional",
+ "org.apache.tools.ant.types.optional.depend",
+ "org.apache.tools.ant.types.resources",
+ "org.apache.tools.ant.types.resources.comparators",
+ "org.apache.tools.ant.types.resources.selectors",
+ "org.apache.tools.ant.types.selectors",
+ "org.apache.tools.ant.types.selectors.modifiedselector",
+ "org.apache.tools.ant.types.spi",
+ "org.apache.tools.ant.util",
+ "org.apache.tools.ant.util.depend",
+ "org.apache.tools.ant.util.facade",
+ "org.apache.tools.ant.util.java15",
+ "org.apache.tools.ant.util.optional",
+ "org.apache.tools.ant.util.regexp",
+ "org.apache.tools.bzip2",
+ "org.apache.tools.mail",
+ "org.apache.tools.tar",
+ "org.apache.tools.zip"
+ ],
+ "org.apache.ant:ant-junit": [
+ "org.apache.tools.ant.taskdefs.optional.junit"
+ ],
+ "org.apache.ant:ant-launcher": [
+ "org.apache.tools.ant.launch"
+ ],
+ "org.apiguardian:apiguardian-api": [
+ "org.apiguardian.api"
+ ],
+ "org.checkerframework:checker-qual": [
+ "org.checkerframework.checker.builder.qual",
+ "org.checkerframework.checker.calledmethods.qual",
+ "org.checkerframework.checker.compilermsgs.qual",
+ "org.checkerframework.checker.fenum.qual",
+ "org.checkerframework.checker.formatter.qual",
+ "org.checkerframework.checker.guieffect.qual",
+ "org.checkerframework.checker.i18n.qual",
+ "org.checkerframework.checker.i18nformatter.qual",
+ "org.checkerframework.checker.index.qual",
+ "org.checkerframework.checker.initialization.qual",
+ "org.checkerframework.checker.interning.qual",
+ "org.checkerframework.checker.lock.qual",
+ "org.checkerframework.checker.mustcall.qual",
+ "org.checkerframework.checker.nullness.qual",
+ "org.checkerframework.checker.optional.qual",
+ "org.checkerframework.checker.propkey.qual",
+ "org.checkerframework.checker.regex.qual",
+ "org.checkerframework.checker.signature.qual",
+ "org.checkerframework.checker.signedness.qual",
+ "org.checkerframework.checker.tainting.qual",
+ "org.checkerframework.checker.units.qual",
+ "org.checkerframework.common.aliasing.qual",
+ "org.checkerframework.common.initializedfields.qual",
+ "org.checkerframework.common.reflection.qual",
+ "org.checkerframework.common.returnsreceiver.qual",
+ "org.checkerframework.common.subtyping.qual",
+ "org.checkerframework.common.util.report.qual",
+ "org.checkerframework.common.value.qual",
+ "org.checkerframework.dataflow.qual",
+ "org.checkerframework.framework.qual"
+ ],
+ "org.ejml:ejml-cdense": [
+ "org.ejml.dense.row",
+ "org.ejml.dense.row.decompose",
+ "org.ejml.dense.row.decompose.chol",
+ "org.ejml.dense.row.decompose.hessenberg",
+ "org.ejml.dense.row.decompose.lu",
+ "org.ejml.dense.row.decompose.qr",
+ "org.ejml.dense.row.factory",
+ "org.ejml.dense.row.linsol",
+ "org.ejml.dense.row.linsol.chol",
+ "org.ejml.dense.row.linsol.lu",
+ "org.ejml.dense.row.linsol.qr",
+ "org.ejml.dense.row.misc",
+ "org.ejml.dense.row.mult"
+ ],
+ "org.ejml:ejml-core": [
+ "org.ejml",
+ "org.ejml.concurrency",
+ "org.ejml.data",
+ "org.ejml.interfaces",
+ "org.ejml.interfaces.decomposition",
+ "org.ejml.interfaces.linsol",
+ "org.ejml.masks",
+ "org.ejml.ops",
+ "org.ejml.sparse",
+ "pabeles.concurrency"
+ ],
+ "org.ejml:ejml-ddense": [
+ "org.ejml.dense.block",
+ "org.ejml.dense.block.decomposition.bidiagonal",
+ "org.ejml.dense.block.decomposition.chol",
+ "org.ejml.dense.block.decomposition.hessenberg",
+ "org.ejml.dense.block.decomposition.qr",
+ "org.ejml.dense.block.linsol.chol",
+ "org.ejml.dense.block.linsol.qr",
+ "org.ejml.dense.fixed",
+ "org.ejml.dense.row",
+ "org.ejml.dense.row.decomposition",
+ "org.ejml.dense.row.decomposition.bidiagonal",
+ "org.ejml.dense.row.decomposition.chol",
+ "org.ejml.dense.row.decomposition.eig",
+ "org.ejml.dense.row.decomposition.eig.symm",
+ "org.ejml.dense.row.decomposition.eig.watched",
+ "org.ejml.dense.row.decomposition.hessenberg",
+ "org.ejml.dense.row.decomposition.lu",
+ "org.ejml.dense.row.decomposition.qr",
+ "org.ejml.dense.row.decomposition.svd",
+ "org.ejml.dense.row.decomposition.svd.implicitqr",
+ "org.ejml.dense.row.factory",
+ "org.ejml.dense.row.linsol",
+ "org.ejml.dense.row.linsol.chol",
+ "org.ejml.dense.row.linsol.lu",
+ "org.ejml.dense.row.linsol.qr",
+ "org.ejml.dense.row.linsol.svd",
+ "org.ejml.dense.row.misc",
+ "org.ejml.dense.row.mult",
+ "org.ejml.generic"
+ ],
+ "org.ejml:ejml-dsparse": [
+ "org.ejml.sparse.csc",
+ "org.ejml.sparse.csc.decomposition.chol",
+ "org.ejml.sparse.csc.decomposition.lu",
+ "org.ejml.sparse.csc.decomposition.qr",
+ "org.ejml.sparse.csc.factory",
+ "org.ejml.sparse.csc.linsol.chol",
+ "org.ejml.sparse.csc.linsol.lu",
+ "org.ejml.sparse.csc.linsol.qr",
+ "org.ejml.sparse.csc.misc",
+ "org.ejml.sparse.csc.mult",
+ "org.ejml.sparse.triplet"
+ ],
+ "org.ejml:ejml-fdense": [
+ "org.ejml.dense.block",
+ "org.ejml.dense.block.decomposition.bidiagonal",
+ "org.ejml.dense.block.decomposition.chol",
+ "org.ejml.dense.block.decomposition.hessenberg",
+ "org.ejml.dense.block.decomposition.qr",
+ "org.ejml.dense.block.linsol.chol",
+ "org.ejml.dense.block.linsol.qr",
+ "org.ejml.dense.fixed",
+ "org.ejml.dense.row",
+ "org.ejml.dense.row.decomposition",
+ "org.ejml.dense.row.decomposition.bidiagonal",
+ "org.ejml.dense.row.decomposition.chol",
+ "org.ejml.dense.row.decomposition.eig",
+ "org.ejml.dense.row.decomposition.eig.symm",
+ "org.ejml.dense.row.decomposition.eig.watched",
+ "org.ejml.dense.row.decomposition.hessenberg",
+ "org.ejml.dense.row.decomposition.lu",
+ "org.ejml.dense.row.decomposition.qr",
+ "org.ejml.dense.row.decomposition.svd",
+ "org.ejml.dense.row.decomposition.svd.implicitqr",
+ "org.ejml.dense.row.factory",
+ "org.ejml.dense.row.linsol",
+ "org.ejml.dense.row.linsol.chol",
+ "org.ejml.dense.row.linsol.lu",
+ "org.ejml.dense.row.linsol.qr",
+ "org.ejml.dense.row.linsol.svd",
+ "org.ejml.dense.row.misc",
+ "org.ejml.dense.row.mult",
+ "org.ejml.generic"
+ ],
+ "org.ejml:ejml-fsparse": [
+ "org.ejml.sparse.csc",
+ "org.ejml.sparse.csc.decomposition.chol",
+ "org.ejml.sparse.csc.decomposition.lu",
+ "org.ejml.sparse.csc.decomposition.qr",
+ "org.ejml.sparse.csc.factory",
+ "org.ejml.sparse.csc.linsol.chol",
+ "org.ejml.sparse.csc.linsol.lu",
+ "org.ejml.sparse.csc.linsol.qr",
+ "org.ejml.sparse.csc.misc",
+ "org.ejml.sparse.csc.mult",
+ "org.ejml.sparse.triplet"
+ ],
+ "org.ejml:ejml-simple": [
+ "org.ejml.equation",
+ "org.ejml.simple",
+ "org.ejml.simple.ops"
+ ],
+ "org.ejml:ejml-zdense": [
+ "org.ejml.dense.row",
+ "org.ejml.dense.row.decompose",
+ "org.ejml.dense.row.decompose.chol",
+ "org.ejml.dense.row.decompose.hessenberg",
+ "org.ejml.dense.row.decompose.lu",
+ "org.ejml.dense.row.decompose.qr",
+ "org.ejml.dense.row.factory",
+ "org.ejml.dense.row.linsol",
+ "org.ejml.dense.row.linsol.chol",
+ "org.ejml.dense.row.linsol.lu",
+ "org.ejml.dense.row.linsol.qr",
+ "org.ejml.dense.row.misc",
+ "org.ejml.dense.row.mult"
+ ],
+ "org.hamcrest:hamcrest-all": [
+ "org.hamcrest",
+ "org.hamcrest.beans",
+ "org.hamcrest.collection",
+ "org.hamcrest.core",
+ "org.hamcrest.generator",
+ "org.hamcrest.generator.config",
+ "org.hamcrest.generator.qdox",
+ "org.hamcrest.generator.qdox.ant",
+ "org.hamcrest.generator.qdox.directorywalker",
+ "org.hamcrest.generator.qdox.junit",
+ "org.hamcrest.generator.qdox.model",
+ "org.hamcrest.generator.qdox.model.annotation",
+ "org.hamcrest.generator.qdox.model.util",
+ "org.hamcrest.generator.qdox.parser",
+ "org.hamcrest.generator.qdox.parser.impl",
+ "org.hamcrest.generator.qdox.parser.structs",
+ "org.hamcrest.generator.qdox.tools",
+ "org.hamcrest.integration",
+ "org.hamcrest.internal",
+ "org.hamcrest.number",
+ "org.hamcrest.object",
+ "org.hamcrest.text",
+ "org.hamcrest.xml"
+ ],
+ "org.hamcrest:hamcrest-core": [
+ "org.hamcrest",
+ "org.hamcrest.core",
+ "org.hamcrest.internal"
+ ],
+ "org.hamcrest:hamcrest-library": [
+ "org.hamcrest",
+ "org.hamcrest.beans",
+ "org.hamcrest.collection",
+ "org.hamcrest.number",
+ "org.hamcrest.object",
+ "org.hamcrest.text",
+ "org.hamcrest.xml"
+ ],
+ "org.junit.jupiter:junit-jupiter-api": [
+ "org.junit.jupiter.api",
+ "org.junit.jupiter.api.condition",
+ "org.junit.jupiter.api.extension",
+ "org.junit.jupiter.api.extension.support",
+ "org.junit.jupiter.api.function",
+ "org.junit.jupiter.api.io",
+ "org.junit.jupiter.api.parallel"
+ ],
+ "org.junit.jupiter:junit-jupiter-engine": [
+ "org.junit.jupiter.engine",
+ "org.junit.jupiter.engine.config",
+ "org.junit.jupiter.engine.descriptor",
+ "org.junit.jupiter.engine.discovery",
+ "org.junit.jupiter.engine.discovery.predicates",
+ "org.junit.jupiter.engine.execution",
+ "org.junit.jupiter.engine.extension",
+ "org.junit.jupiter.engine.support"
+ ],
+ "org.junit.jupiter:junit-jupiter-params": [
+ "org.junit.jupiter.params",
+ "org.junit.jupiter.params.aggregator",
+ "org.junit.jupiter.params.converter",
+ "org.junit.jupiter.params.provider",
+ "org.junit.jupiter.params.shadow.com.univocity.parsers.annotations",
+ "org.junit.jupiter.params.shadow.com.univocity.parsers.annotations.helpers",
+ "org.junit.jupiter.params.shadow.com.univocity.parsers.common",
+ "org.junit.jupiter.params.shadow.com.univocity.parsers.common.beans",
+ "org.junit.jupiter.params.shadow.com.univocity.parsers.common.fields",
+ "org.junit.jupiter.params.shadow.com.univocity.parsers.common.input",
+ "org.junit.jupiter.params.shadow.com.univocity.parsers.common.input.concurrent",
+ "org.junit.jupiter.params.shadow.com.univocity.parsers.common.iterators",
+ "org.junit.jupiter.params.shadow.com.univocity.parsers.common.processor",
+ "org.junit.jupiter.params.shadow.com.univocity.parsers.common.processor.core",
+ "org.junit.jupiter.params.shadow.com.univocity.parsers.common.record",
+ "org.junit.jupiter.params.shadow.com.univocity.parsers.common.routine",
+ "org.junit.jupiter.params.shadow.com.univocity.parsers.conversions",
+ "org.junit.jupiter.params.shadow.com.univocity.parsers.csv",
+ "org.junit.jupiter.params.shadow.com.univocity.parsers.fixed",
+ "org.junit.jupiter.params.shadow.com.univocity.parsers.tsv",
+ "org.junit.jupiter.params.support"
+ ],
+ "org.junit.platform:junit-platform-commons": [
+ "org.junit.platform.commons",
+ "org.junit.platform.commons.annotation",
+ "org.junit.platform.commons.function",
+ "org.junit.platform.commons.logging",
+ "org.junit.platform.commons.support",
+ "org.junit.platform.commons.util"
+ ],
+ "org.junit.platform:junit-platform-console": [
+ "org.junit.platform.console",
+ "org.junit.platform.console.options",
+ "org.junit.platform.console.shadow.picocli",
+ "org.junit.platform.console.tasks"
+ ],
+ "org.junit.platform:junit-platform-engine": [
+ "org.junit.platform.engine",
+ "org.junit.platform.engine.discovery",
+ "org.junit.platform.engine.reporting",
+ "org.junit.platform.engine.support.config",
+ "org.junit.platform.engine.support.descriptor",
+ "org.junit.platform.engine.support.discovery",
+ "org.junit.platform.engine.support.filter",
+ "org.junit.platform.engine.support.hierarchical",
+ "org.junit.platform.engine.support.store"
+ ],
+ "org.junit.platform:junit-platform-launcher": [
+ "org.junit.platform.launcher",
+ "org.junit.platform.launcher.core",
+ "org.junit.platform.launcher.listeners",
+ "org.junit.platform.launcher.listeners.discovery",
+ "org.junit.platform.launcher.listeners.session",
+ "org.junit.platform.launcher.tagexpression"
+ ],
+ "org.junit.platform:junit-platform-reporting": [
+ "org.junit.platform.reporting.legacy",
+ "org.junit.platform.reporting.legacy.xml",
+ "org.junit.platform.reporting.open.xml",
+ "org.junit.platform.reporting.shadow.org.opentest4j.reporting.events.api",
+ "org.junit.platform.reporting.shadow.org.opentest4j.reporting.events.core",
+ "org.junit.platform.reporting.shadow.org.opentest4j.reporting.events.java",
+ "org.junit.platform.reporting.shadow.org.opentest4j.reporting.events.root",
+ "org.junit.platform.reporting.shadow.org.opentest4j.reporting.schema"
+ ],
+ "org.mockito:mockito-core": [
+ "org.mockito",
+ "org.mockito.codegen",
+ "org.mockito.configuration",
+ "org.mockito.creation.instance",
+ "org.mockito.exceptions.base",
+ "org.mockito.exceptions.misusing",
+ "org.mockito.exceptions.stacktrace",
+ "org.mockito.exceptions.verification",
+ "org.mockito.exceptions.verification.junit",
+ "org.mockito.exceptions.verification.opentest4j",
+ "org.mockito.hamcrest",
+ "org.mockito.internal",
+ "org.mockito.internal.configuration",
+ "org.mockito.internal.configuration.injection",
+ "org.mockito.internal.configuration.injection.filter",
+ "org.mockito.internal.configuration.injection.scanner",
+ "org.mockito.internal.configuration.plugins",
+ "org.mockito.internal.creation",
+ "org.mockito.internal.creation.bytebuddy",
+ "org.mockito.internal.creation.instance",
+ "org.mockito.internal.creation.proxy",
+ "org.mockito.internal.creation.settings",
+ "org.mockito.internal.creation.util",
+ "org.mockito.internal.debugging",
+ "org.mockito.internal.exceptions",
+ "org.mockito.internal.exceptions.stacktrace",
+ "org.mockito.internal.exceptions.util",
+ "org.mockito.internal.framework",
+ "org.mockito.internal.hamcrest",
+ "org.mockito.internal.handler",
+ "org.mockito.internal.invocation",
+ "org.mockito.internal.invocation.finder",
+ "org.mockito.internal.invocation.mockref",
+ "org.mockito.internal.junit",
+ "org.mockito.internal.listeners",
+ "org.mockito.internal.matchers",
+ "org.mockito.internal.matchers.apachecommons",
+ "org.mockito.internal.matchers.text",
+ "org.mockito.internal.progress",
+ "org.mockito.internal.reporting",
+ "org.mockito.internal.runners",
+ "org.mockito.internal.runners.util",
+ "org.mockito.internal.session",
+ "org.mockito.internal.stubbing",
+ "org.mockito.internal.stubbing.answers",
+ "org.mockito.internal.stubbing.defaultanswers",
+ "org.mockito.internal.util",
+ "org.mockito.internal.util.collections",
+ "org.mockito.internal.util.concurrent",
+ "org.mockito.internal.util.io",
+ "org.mockito.internal.util.reflection",
+ "org.mockito.internal.verification",
+ "org.mockito.internal.verification.api",
+ "org.mockito.internal.verification.argumentmatching",
+ "org.mockito.internal.verification.checkers",
+ "org.mockito.invocation",
+ "org.mockito.junit",
+ "org.mockito.listeners",
+ "org.mockito.mock",
+ "org.mockito.plugins",
+ "org.mockito.quality",
+ "org.mockito.session",
+ "org.mockito.stubbing",
+ "org.mockito.verification"
+ ],
+ "org.objenesis:objenesis": [
+ "org.objenesis",
+ "org.objenesis.instantiator",
+ "org.objenesis.instantiator.android",
+ "org.objenesis.instantiator.annotations",
+ "org.objenesis.instantiator.basic",
+ "org.objenesis.instantiator.gcj",
+ "org.objenesis.instantiator.perc",
+ "org.objenesis.instantiator.sun",
+ "org.objenesis.instantiator.util",
+ "org.objenesis.strategy"
+ ],
+ "org.opentest4j:opentest4j": [
+ "org.opentest4j"
+ ],
+ "org.ow2.asm:asm": [
+ "org.objectweb.asm",
+ "org.objectweb.asm.signature"
+ ],
+ "us.hebi.quickbuf:quickbuf-runtime": [
+ "us.hebi.quickbuf"
+ ]
+ },
+ "repositories": {
+ "https://repo1.maven.org/maven2/": [
+ "com.fasterxml.jackson.core:jackson-annotations",
+ "com.fasterxml.jackson.core:jackson-core",
+ "com.fasterxml.jackson.core:jackson-databind",
+ "com.google.auto.value:auto-value",
+ "com.google.auto.value:auto-value-annotations",
+ "com.google.auto:auto-common",
+ "com.google.code.findbugs:jsr305",
+ "com.google.code.gson:gson",
+ "com.google.errorprone:error_prone_annotations",
+ "com.google.guava:failureaccess",
+ "com.google.guava:guava",
+ "com.google.guava:listenablefuture",
+ "com.google.j2objc:j2objc-annotations",
+ "com.google.testing.compile:compile-testing",
+ "com.google.truth:truth",
+ "com.googlecode.junit-toolbox:junit-toolbox",
+ "commons-io:commons-io",
+ "junit:junit",
+ "net.bytebuddy:byte-buddy",
+ "net.bytebuddy:byte-buddy-agent",
+ "org.apache.ant:ant",
+ "org.apache.ant:ant-junit",
+ "org.apache.ant:ant-launcher",
+ "org.apiguardian:apiguardian-api",
+ "org.checkerframework:checker-qual",
+ "org.ejml:ejml-cdense",
+ "org.ejml:ejml-core",
+ "org.ejml:ejml-ddense",
+ "org.ejml:ejml-dsparse",
+ "org.ejml:ejml-fdense",
+ "org.ejml:ejml-fsparse",
+ "org.ejml:ejml-simple",
+ "org.ejml:ejml-zdense",
+ "org.hamcrest:hamcrest-all",
+ "org.hamcrest:hamcrest-core",
+ "org.hamcrest:hamcrest-library",
+ "org.junit.jupiter:junit-jupiter",
+ "org.junit.jupiter:junit-jupiter-api",
+ "org.junit.jupiter:junit-jupiter-engine",
+ "org.junit.jupiter:junit-jupiter-params",
+ "org.junit.platform:junit-platform-commons",
+ "org.junit.platform:junit-platform-console",
+ "org.junit.platform:junit-platform-engine",
+ "org.junit.platform:junit-platform-launcher",
+ "org.junit.platform:junit-platform-reporting",
+ "org.mockito:mockito-core",
+ "org.objenesis:objenesis",
+ "org.opentest4j:opentest4j",
+ "org.ow2.asm:asm",
+ "us.hebi.quickbuf:quickbuf-runtime"
+ ],
+ "https://frcmaven.wpi.edu/artifactory/release/": [
+ "com.fasterxml.jackson.core:jackson-annotations",
+ "com.fasterxml.jackson.core:jackson-core",
+ "com.fasterxml.jackson.core:jackson-databind",
+ "com.google.auto.value:auto-value",
+ "com.google.auto.value:auto-value-annotations",
+ "com.google.auto:auto-common",
+ "com.google.code.findbugs:jsr305",
+ "com.google.code.gson:gson",
+ "com.google.errorprone:error_prone_annotations",
+ "com.google.guava:failureaccess",
+ "com.google.guava:guava",
+ "com.google.guava:listenablefuture",
+ "com.google.j2objc:j2objc-annotations",
+ "com.google.testing.compile:compile-testing",
+ "com.google.truth:truth",
+ "com.googlecode.junit-toolbox:junit-toolbox",
+ "commons-io:commons-io",
+ "junit:junit",
+ "net.bytebuddy:byte-buddy",
+ "net.bytebuddy:byte-buddy-agent",
+ "org.apache.ant:ant",
+ "org.apache.ant:ant-junit",
+ "org.apache.ant:ant-launcher",
+ "org.apiguardian:apiguardian-api",
+ "org.checkerframework:checker-qual",
+ "org.ejml:ejml-cdense",
+ "org.ejml:ejml-core",
+ "org.ejml:ejml-ddense",
+ "org.ejml:ejml-dsparse",
+ "org.ejml:ejml-fdense",
+ "org.ejml:ejml-fsparse",
+ "org.ejml:ejml-simple",
+ "org.ejml:ejml-zdense",
+ "org.hamcrest:hamcrest-all",
+ "org.hamcrest:hamcrest-core",
+ "org.hamcrest:hamcrest-library",
+ "org.junit.jupiter:junit-jupiter",
+ "org.junit.jupiter:junit-jupiter-api",
+ "org.junit.jupiter:junit-jupiter-engine",
+ "org.junit.jupiter:junit-jupiter-params",
+ "org.junit.platform:junit-platform-commons",
+ "org.junit.platform:junit-platform-console",
+ "org.junit.platform:junit-platform-engine",
+ "org.junit.platform:junit-platform-launcher",
+ "org.junit.platform:junit-platform-reporting",
+ "org.mockito:mockito-core",
+ "org.objenesis:objenesis",
+ "org.opentest4j:opentest4j",
+ "org.ow2.asm:asm",
+ "us.hebi.quickbuf:quickbuf-runtime"
+ ]
+ },
+ "services": {
+ "com.fasterxml.jackson.core:jackson-core": {
+ "com.fasterxml.jackson.core.JsonFactory": [
+ "com.fasterxml.jackson.core.JsonFactory"
+ ]
+ },
+ "com.fasterxml.jackson.core:jackson-databind": {
+ "com.fasterxml.jackson.core.ObjectCodec": [
+ "com.fasterxml.jackson.databind.ObjectMapper"
+ ]
+ },
+ "com.google.auto.value:auto-value": {
+ "autovalue.shaded.kotlinx.metadata.impl.extensions.MetadataExtensions": [
+ "autovalue.shaded.kotlinx.metadata.jvm.impl.JvmMetadataExtensions"
+ ],
+ "com.google.auto.value.extension.AutoValueExtension": [
+ "com.google.auto.value.extension.memoized.processor.MemoizeExtension",
+ "com.google.auto.value.extension.serializable.processor.SerializableAutoValueExtension",
+ "com.google.auto.value.extension.toprettystring.processor.ToPrettyStringExtension"
+ ],
+ "com.google.auto.value.extension.serializable.serializer.interfaces.SerializerExtension": [
+ "com.google.auto.value.extension.serializable.serializer.impl.ImmutableListSerializerExtension",
+ "com.google.auto.value.extension.serializable.serializer.impl.ImmutableMapSerializerExtension",
+ "com.google.auto.value.extension.serializable.serializer.impl.OptionalSerializerExtension"
+ ],
+ "javax.annotation.processing.Processor": [
+ "com.google.auto.value.extension.memoized.processor.MemoizedValidator",
+ "com.google.auto.value.extension.toprettystring.processor.ToPrettyStringValidator",
+ "com.google.auto.value.processor.AutoAnnotationProcessor",
+ "com.google.auto.value.processor.AutoBuilderProcessor",
+ "com.google.auto.value.processor.AutoOneOfProcessor",
+ "com.google.auto.value.processor.AutoValueBuilderProcessor",
+ "com.google.auto.value.processor.AutoValueProcessor"
+ ]
+ },
+ "org.junit.jupiter:junit-jupiter-engine": {
+ "org.junit.platform.engine.TestEngine": [
+ "org.junit.jupiter.engine.JupiterTestEngine"
+ ]
+ },
+ "org.junit.platform:junit-platform-console": {
+ "java.util.spi.ToolProvider": [
+ "org.junit.platform.console.ConsoleLauncherToolProvider"
+ ]
+ },
+ "org.junit.platform:junit-platform-launcher": {
+ "org.junit.platform.launcher.TestExecutionListener": [
+ "org.junit.platform.launcher.listeners.UniqueIdTrackingListener"
+ ]
+ },
+ "org.junit.platform:junit-platform-reporting": {
+ "org.junit.platform.launcher.TestExecutionListener": [
+ "org.junit.platform.reporting.open.xml.OpenTestReportGeneratingListener"
+ ]
+ }
+ },
+ "version": "2"
+}
diff --git a/ntcore/BUILD.bazel b/ntcore/BUILD.bazel
index fedf16b531..e2b7b7941c 100644
--- a/ntcore/BUILD.bazel
+++ b/ntcore/BUILD.bazel
@@ -1,9 +1,10 @@
load("@allwpilib_pip_deps//:requirements.bzl", "requirement")
load("@aspect_bazel_lib//lib:write_source_files.bzl", "write_source_files")
-load("@rules_cc//cc:defs.bzl", "cc_binary", "cc_library", "cc_test")
+load("@rules_cc//cc:defs.bzl", "cc_binary", "cc_test")
load("@rules_java//java:defs.bzl", "java_binary")
load("@rules_python//python:defs.bzl", "py_binary")
load("//ntcore:generate_ntcore.bzl", "generate_ntcore")
+load("//shared/bazel/rules:cc_rules.bzl", "third_party_cc_lib_helper", "wpilib_cc_library")
load("//shared/bazel/rules:java_rules.bzl", "wpilib_java_junit5_test")
load("//shared/bazel/rules:jni_rules.bzl", "wpilib_jni_cc_library", "wpilib_jni_java_library")
@@ -28,7 +29,6 @@ py_binary(
"@rules_bzlmodrio_toolchains//constraints/is_systemcore:systemcore": ["@platforms//:incompatible"],
"//conditions:default": [],
}),
- visibility = ["//visibility:public"],
deps = [requirement("jinja2")],
)
@@ -42,50 +42,40 @@ write_source_files(
visibility = ["//visibility:public"],
)
-cc_library(
- name = "generated_cc_headers",
- hdrs = glob(["src/generated/main/native/include/**"]),
- includes = ["src/generated/main/native/include"],
- strip_include_prefix = "src/generated/main/native/include",
- visibility = ["//ntcore:__subpackages__"],
-)
-
-filegroup(
- name = "generated_cc_source",
- srcs = glob(
- ["src/generated/main/native/cpp/**"],
- exclude = ["src/generated/main/native/cpp/jni/**"],
- ),
- visibility = ["//ntcore:__subpackages__"],
+third_party_cc_lib_helper(
+ name = "generated_cc",
+ include_root = "src/generated/main/native/include",
+ src_excludes = ["src/generated/main/native/cpp/jni/**"],
+ src_root = "src/generated/main/native/cpp",
)
filegroup(
name = "generated_jni",
srcs = glob(["src/generated/main/native/cpp/jni/**"]),
- visibility = ["//ntcore:__subpackages__"],
)
filegroup(
name = "generated_java",
srcs = glob(["src/generated/main/java/**/*.java"]),
- visibility = ["//ntcore:__subpackages__"],
)
-cc_library(
+wpilib_cc_library(
name = "ntcore.static",
srcs = glob(
["src/main/native/cpp/**"],
exclude = ["src/main/native/cpp/jni/**"],
- ) + [":generated_cc_source"],
+ ),
hdrs = glob(["src/main/native/include/**/*"]),
includes = [
"src/main/native/cpp",
"src/main/native/include",
],
strip_include_prefix = "src/main/native/include",
+ third_party_libraries = [
+ ":generated_cc",
+ ],
visibility = ["//visibility:public"],
deps = [
- ":generated_cc_headers",
"//datalog:datalog.static",
"//wpinet:wpinet.static",
"//wpiutil:wpiutil.static",
diff --git a/ntcore/manualTests/java/Client.java b/ntcore/manualTests/java/Client.java
deleted file mode 100644
index a329c83e61..0000000000
--- a/ntcore/manualTests/java/Client.java
+++ /dev/null
@@ -1,49 +0,0 @@
-// Copyright (c) FIRST and other WPILib contributors.
-// Open Source Software; you can modify and/or share it under the terms of
-// the WPILib BSD license file in the root directory of this project.
-
-import edu.wpi.first.wpilibj.networktables.*;
-import edu.wpi.first.wpilibj.tables.*;
-
-public class Client {
- private static class MyLogger implements NetworkTablesJNI.LoggerFunction {
- public void apply(int level, String file, int line, String msg) {
- System.err.println(msg);
- }
- }
-
- public static void main(String[] args) {
- NetworkTablesJNI.setLogger(new MyLogger(), 0);
- NetworkTable.setIPAddress("127.0.0.1");
- NetworkTable.setPort(10000);
- NetworkTable.setClientMode();
- NetworkTable nt = NetworkTable.getTable("");
- try {
- Thread.sleep(2000);
- } catch (InterruptedException e) {
- }
- try {
- System.out.println("Got foo: " + nt.getNumber("foo"));
- } catch (TableKeyNotDefinedException ex) {
- }
- nt.putBoolean("bar", false);
- nt.setFlags("bar", NetworkTable.PERSISTENT);
- nt.putBoolean("bar2", true);
- nt.putBoolean("bar2", false);
- nt.putBoolean("bar2", true);
- nt.putString("str", "hello world");
- double[] nums = new double[3];
- nums[0] = 0.5;
- nums[1] = 1.2;
- nums[2] = 3.0;
- nt.putNumberArray("numarray", nums);
- String[] strs = new String[2];
- strs[0] = "Hello";
- strs[1] = "World";
- nt.putStringArray("strarray", strs);
- try {
- Thread.sleep(10000);
- } catch (InterruptedException e) {
- }
- }
-}
diff --git a/ntcore/manualTests/java/Server.java b/ntcore/manualTests/java/Server.java
deleted file mode 100644
index 9527c96be0..0000000000
--- a/ntcore/manualTests/java/Server.java
+++ /dev/null
@@ -1,36 +0,0 @@
-// Copyright (c) FIRST and other WPILib contributors.
-// Open Source Software; you can modify and/or share it under the terms of
-// the WPILib BSD license file in the root directory of this project.
-
-import edu.wpi.first.wpilibj.networktables.*;
-import edu.wpi.first.wpilibj.tables.*;
-
-public class Server {
- private static class MyLogger implements NetworkTablesJNI.LoggerFunction {
- public void apply(int level, String file, int line, String msg) {
- System.err.println(msg);
- }
- }
-
- public static void main(String[] args) {
- NetworkTablesJNI.setLogger(new MyLogger(), 0);
- NetworkTable.setIPAddress("127.0.0.1");
- NetworkTable.setPort(10000);
- NetworkTable.setServerMode();
- NetworkTable nt = NetworkTable.getTable("");
- try {
- Thread.sleep(1000);
- } catch (InterruptedException e) {
- }
- nt.putNumber("foo", 0.5);
- nt.setFlags("foo", NetworkTable.PERSISTENT);
- nt.putNumber("foo2", 0.5);
- nt.putNumber("foo2", 0.7);
- nt.putNumber("foo2", 0.6);
- nt.putNumber("foo2", 0.5);
- try {
- Thread.sleep(10000);
- } catch (InterruptedException e) {
- }
- }
-}
diff --git a/ntcore/manualTests/native/client.cpp b/ntcore/manualTests/native/client.cpp
deleted file mode 100644
index f9466738e6..0000000000
--- a/ntcore/manualTests/native/client.cpp
+++ /dev/null
@@ -1,39 +0,0 @@
-// Copyright (c) FIRST and other WPILib contributors.
-// Open Source Software; you can modify and/or share it under the terms of
-// the WPILib BSD license file in the root directory of this project.
-
-#include