From 97e418218414d9fd27970cdc4f85b8f46880cae2 Mon Sep 17 00:00:00 2001 From: Thomas Stromberg Date: Wed, 10 May 2023 12:44:24 -0400 Subject: [PATCH 1/5] Add everything necessary for a Chainguard static demo --- .bazelversion | 2 +- MODULE.bazel | 1 + WORKSPACE | 2 +- examples/go/.bazelrc | 1 + examples/go/.bazelversion | 1 + examples/go/.gitignore | 2 ++ examples/go/BUILD.bazel | 61 ++++++++++++++++++++++++++++++++++++++ examples/go/go.mod | 5 ++++ examples/go/go.sum | 2 ++ examples/go/main.go | 10 +++++++ examples/go/test.yaml | 5 ++++ examples/go/transition.bzl | 27 +++++++++++++++++ fetch.bzl | 12 ++++++++ oci/private/pull.bzl | 12 ++++++++ 14 files changed, 141 insertions(+), 2 deletions(-) create mode 100644 examples/go/.bazelrc create mode 100644 examples/go/.bazelversion create mode 100644 examples/go/.gitignore create mode 100644 examples/go/BUILD.bazel create mode 100644 examples/go/go.mod create mode 100644 examples/go/go.sum create mode 100644 examples/go/main.go create mode 100644 examples/go/test.yaml create mode 100644 examples/go/transition.bzl diff --git a/.bazelversion b/.bazelversion index f0a4be58..1868e453 100644 --- a/.bazelversion +++ b/.bazelversion @@ -1,4 +1,4 @@ -6.1.0 +6.1.2 # The first line of this file is used by Bazelisk and Bazel to be sure # the right version of Bazel is used to build and test this repo. diff --git a/MODULE.bazel b/MODULE.bazel index c48f2c9b..d5728972 100644 --- a/MODULE.bazel +++ b/MODULE.bazel @@ -9,6 +9,7 @@ module( bazel_dep(name = "aspect_bazel_lib", version = "1.30.2") bazel_dep(name = "bazel_skylib", version = "1.4.1") bazel_dep(name = "platforms", version = "0.0.5") +bazel_dep(name = "rules_go", version = "0.38.1") oci = use_extension("//oci:extensions.bzl", "oci") oci.toolchains(crane_version = "v0.14.0") diff --git a/WORKSPACE b/WORKSPACE index 0774b57c..e36363e2 100644 --- a/WORKSPACE +++ b/WORKSPACE @@ -17,7 +17,7 @@ load("//oci:repositories.bzl", "LATEST_CRANE_VERSION", "LATEST_ZOT_VERSION", "oc oci_register_toolchains( name = "oci", crane_version = LATEST_CRANE_VERSION, - zot_version = LATEST_ZOT_VERSION, +# zot_version = LATEST_ZOT_VERSION, ) load("//cosign:repositories.bzl", "cosign_register_toolchains") diff --git a/examples/go/.bazelrc b/examples/go/.bazelrc new file mode 100644 index 00000000..3ce91d27 --- /dev/null +++ b/examples/go/.bazelrc @@ -0,0 +1 @@ +common --enable_bzlmod diff --git a/examples/go/.bazelversion b/examples/go/.bazelversion new file mode 100644 index 00000000..5e325424 --- /dev/null +++ b/examples/go/.bazelversion @@ -0,0 +1 @@ +6.1.2 diff --git a/examples/go/.gitignore b/examples/go/.gitignore new file mode 100644 index 00000000..0684e4bf --- /dev/null +++ b/examples/go/.gitignore @@ -0,0 +1,2 @@ +node_modules +bazel-* diff --git a/examples/go/BUILD.bazel b/examples/go/BUILD.bazel new file mode 100644 index 00000000..02316361 --- /dev/null +++ b/examples/go/BUILD.bazel @@ -0,0 +1,61 @@ +load("//oci:defs.bzl", "oci_image", "oci_tarball") +load("@rules_pkg//:pkg.bzl", "pkg_tar") +load("@aspect_bazel_lib//lib:testing.bzl", "assert_contains") +load(":transition.bzl", "multi_arch") +# load("@rules_go//go:def.bzl", "go_binary", "go_library") +load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library") + +go_library( + name = "app_lib", + srcs = ["main.go"], + importpath = "example.com/custom_registry/app", + visibility = ["//visibility:private"], + deps = ["@com_github_google_go_cmp//cmp"], +) + +go_binary( + name = "app", + embed = [":app_lib"], + visibility = ["//visibility:public"], +) + +pkg_tar( + name = "app_layer", + srcs = [":app"], + # If the binary depends on RUNFILES, uncomment the attribute below. + # include_runfiles = True +) + +# distroless demo (static) ############################################################## +oci_image( + name = "distroless_static_image", + base = "@distroless_static", + entrypoint = ["/app"], + tars = [":app_layer"], +) + +# bazel build :distroless_static_tar +# docker load --input ../../bazel-bin/examples/go/distroless_static_tar/tarball.tar +# docker run --rm distroless_static:example +oci_tarball( + name = "distroless_static_tar", + image = ":distroless_static_image", + repo_tags = ["distroless_static:example"], +) + +# chainguard demo (static) ############################################################## +oci_image( + name = "chainguard_static_image", + base = "@chainguard_static", + entrypoint = ["/app"], + tars = [":app_layer"], +) + +# bazel build :chainguard_static_tar +# docker load --input ../../bazel-bin/examples/go/chainguard_static_tar/tarball.tar +# docker run --rm chainguard_static:example +oci_tarball( + name = "chainguard_static_tar", + image = ":chainguard_static_image", + repo_tags = ["chainguard_static:example"], +) diff --git a/examples/go/go.mod b/examples/go/go.mod new file mode 100644 index 00000000..30ae0760 --- /dev/null +++ b/examples/go/go.mod @@ -0,0 +1,5 @@ +module example.com/mod + +go 1.17 + +require github.com/google/go-cmp v0.5.9 diff --git a/examples/go/go.sum b/examples/go/go.sum new file mode 100644 index 00000000..62841cdb --- /dev/null +++ b/examples/go/go.sum @@ -0,0 +1,2 @@ +github.com/google/go-cmp v0.5.9 h1:O2Tfq5qg4qc4AmwVlvv0oLiVAGB7enBSJ2x2DqQFi38= +github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= diff --git a/examples/go/main.go b/examples/go/main.go new file mode 100644 index 00000000..80244e63 --- /dev/null +++ b/examples/go/main.go @@ -0,0 +1,10 @@ +package main + +import ( + "fmt" + "github.com/google/go-cmp/cmp" +) + +func main() { + fmt.Println(cmp.Diff("Hello World", "Hello Go")) +} diff --git a/examples/go/test.yaml b/examples/go/test.yaml new file mode 100644 index 00000000..612dfe34 --- /dev/null +++ b/examples/go/test.yaml @@ -0,0 +1,5 @@ +schemaVersion: 2.0.0 +commandTests: + - name: 'test' + command: '/app' + expectedOutput: ['"Hello World"'] diff --git a/examples/go/transition.bzl b/examples/go/transition.bzl new file mode 100644 index 00000000..99300d82 --- /dev/null +++ b/examples/go/transition.bzl @@ -0,0 +1,27 @@ +"a rule transitioning an oci_image to multiple platforms" + +def _multiarch_transition(settings, attr): + return [ + {"//command_line_option:platforms": str(platform)} + for platform in attr.platforms + ] + +multiarch_transition = transition( + implementation = _multiarch_transition, + inputs = [], + outputs = ["//command_line_option:platforms"], +) + +def _impl(ctx): + return DefaultInfo(files = depset(ctx.files.image)) + +multi_arch = rule( + implementation = _impl, + attrs = { + "image": attr.label(cfg = multiarch_transition), + "platforms": attr.label_list(), + "_allowlist_function_transition": attr.label( + default = "@bazel_tools//tools/allowlists/function_transition_allowlist", + ), + }, +) diff --git a/fetch.bzl b/fetch.bzl index c8f42990..363ac518 100644 --- a/fetch.bzl +++ b/fetch.bzl @@ -112,6 +112,18 @@ def fetch_images(): digest = "sha256:67211c14fa74f070d27cc59d69a7fa9aeff8e28ea118ef3babc295a0428a6d21", ) + oci_pull( + name = "chainguard_static", + image = "cgr.dev/chainguard/static", + platforms = [ + "linux/amd64", + "linux/arm64", + ], + #tag = "latest", + #reproducible = False, + digest = "sha256:0fc4584e8ae2a6e71f0bf73213c659f64756b48caab1bba3207c2ea51d292fb0", + ) + oci_pull( name = "apollo_router", # tag = "v1.14.0", diff --git a/oci/private/pull.bzl b/oci/private/pull.bzl index 628d1a9d..5c00a2f2 100644 --- a/oci/private/pull.bzl +++ b/oci/private/pull.bzl @@ -49,6 +49,11 @@ _WWW_AUTH = { "scope": "repository:{repository}:pull", "service": "ghcr.io/token", }, + "cgr.dev": { + "realm": "cgr.dev/token", + "service": "cgr.dev", + "scope": "repository:{repository}:pull", + }, } def _strip_host(url): @@ -64,6 +69,13 @@ def _get_auth(rctx, state, registry): pattern = {} config = state["config"] + if "credHelpers" in config: + for host_raw in config["credHelpers"]: + host = _strip_host(host_raw) + if host == registry: + helper_val = config["credHelpers"][host_raw] + return _fetch_auth_via_creds_helper(rctx, host_raw, helper_val) + if "auths" in config: for host_raw in config["auths"]: host = _strip_host(host_raw) From 3c085f0dcf264dbe7392bb533a23367b5ba6d57e Mon Sep 17 00:00:00 2001 From: Thomas Stromberg Date: Wed, 10 May 2023 12:51:29 -0400 Subject: [PATCH 2/5] Add auth support for pulling images from cgr.dev --- oci/private/pull.bzl | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/oci/private/pull.bzl b/oci/private/pull.bzl index 628d1a9d..be512027 100644 --- a/oci/private/pull.bzl +++ b/oci/private/pull.bzl @@ -49,6 +49,11 @@ _WWW_AUTH = { "scope": "repository:{repository}:pull", "service": "ghcr.io/token", }, + "cgr.dev": { + "realm": "cgr.dev/token", + "service": "cgr.dev", + "scope": "repository:{repository}:pull", + }, } def _strip_host(url): From 9b17b17eb0fe3f4e930472edfc38ae70213f83d4 Mon Sep 17 00:00:00 2001 From: Thomas Stromberg Date: Thu, 11 May 2023 12:09:03 -0400 Subject: [PATCH 3/5] finalize chainguard examples --- .bazelrc | 1 + MODULE.bazel | 19 + README.md | 89 +- examples/go/BUILD.bazel | 54 +- examples/go/measure-bazel-target | 8 + examples/java/.bazelrc | 1 + examples/java/.bazelversion | 1 + examples/java/BUILD.bazel | 47 + examples/java/README.md | 13 + examples/java/measure-bazel-target | 8 + examples/java/test.yaml | 6 + fetch.bzl | 59 +- maven_install.json | 3193 +++++++++++++++++ schema/logger/BUILD.bazel | 15 + schema/logger/logger.proto | 16 + src/BUILD | 0 src/README.md | 1 + src/main/java/com/example/BUILD.bazel | 34 + .../java/com/example/JavaLoggingClient.java | 14 + .../com/example/JavaLoggingClientLibrary.java | 47 + src/main/java/com/example/LoggerGrpc.java | 273 ++ 21 files changed, 3812 insertions(+), 87 deletions(-) create mode 100755 examples/go/measure-bazel-target create mode 100644 examples/java/.bazelrc create mode 100644 examples/java/.bazelversion create mode 100644 examples/java/BUILD.bazel create mode 100644 examples/java/README.md create mode 100755 examples/java/measure-bazel-target create mode 100644 examples/java/test.yaml create mode 100644 maven_install.json create mode 100644 schema/logger/BUILD.bazel create mode 100644 schema/logger/logger.proto create mode 100644 src/BUILD create mode 100644 src/README.md create mode 100644 src/main/java/com/example/BUILD.bazel create mode 100644 src/main/java/com/example/JavaLoggingClient.java create mode 100644 src/main/java/com/example/JavaLoggingClientLibrary.java create mode 100644 src/main/java/com/example/LoggerGrpc.java diff --git a/.bazelrc b/.bazelrc index e7c56762..5302ebd9 100644 --- a/.bazelrc +++ b/.bazelrc @@ -1,6 +1,7 @@ # Bazel settings that apply to this repository. # Take care to document any settings that you expect users to apply. # Settings that apply only to CI are in .github/workflows/ci.bazelrc +common --enable_bzlmod build --incompatible_strict_action_env build --nolegacy_external_runfiles diff --git a/MODULE.bazel b/MODULE.bazel index d5728972..1ddb9f59 100644 --- a/MODULE.bazel +++ b/MODULE.bazel @@ -20,3 +20,22 @@ register_toolchains("@oci_crane_toolchains//:all", "@oci_crane_registry_toolchai bazel_dep(name = "rules_pkg", version = "0.7.0", dev_dependency = True) bazel_dep(name = "gazelle", version = "0.29.0", repo_name = "bazel_gazelle", dev_dependency = True) bazel_dep(name = "bazel_skylib_gazelle_plugin", version = "1.4.1", dev_dependency = True) + +bazel_dep(name = "rules_jvm_external", version = "4.5") + + +# Java and other JVM languages: +# https://github.com/bazelbuild/rules_jvm_external/blob/master/examples/bzlmod/MODULE.bazel +# https://github.com/bazelbuild/rules_jvm_external#pinning-artifacts-and-integration-with-bazels-downloader +maven = use_extension("@rules_jvm_external//:extensions.bzl", "maven") + +maven.install( + artifacts = ["io.grpc:grpc-all:1.51.1"], + lock_file = "//:maven_install.json", +) + +use_repo( + maven, + "maven", + "unpinned_maven", +) diff --git a/README.md b/README.md index c7ee077c..4948a557 100644 --- a/README.md +++ b/README.md @@ -1,84 +1,9 @@ -# Bazel rules for OCI containers +Experimental fork of `rules_oci` with support for Chainguard Images. -This is a "barebones" alternative to [rules_docker](https://github.com/bazelbuild/rules_docker). +- Has upstream PRs included to address authentication issues: + - https://github.com/bazel-contrib/rules_oci/pull/237 + - https://github.com/bazel-contrib/rules_oci/pull/238 +- Contains Go & Java examples - see `examples/` + - Also has `distroless` targets for comparison +- `fetch.bzl` knows about example base images, such as `@chainguard_static` -We start from first principles and avoided some pitfalls we learned in maintaining that repo: - -- Use a toolchain consisting of off-the-shelf, pre-built layer and container manipulation tools. -- Don't write language-specific rules, as we cannot be experts on all languages, nor can users deal with the versioning issues - that come with dependencies we would be forced to take on the rules for those languages. -- Don't be docker-specific, now that it has a commercial license and other container runtimes exist ([podman](https://podman.io/) for example). -- Use our toolchain hermetically: don't assume there is a docker pre-installed on the machine. -- Keep a tight complexity budget for the project so we are able to commit to effective maintenance. - -_Need help?_ This ruleset has support provided by https://aspect.dev. - -## Installation - -- Bazel 6 with bzlmod: start from -- Others: Copy the WORKSPACE snippet into your `WORKSPACE` file from a release: - -To use a commit rather than a release, you can point at any SHA of the repo. - -For example to use commit `abc123`: - -1. Replace `url = "https://github.com/bazel-contrib/rules_oci/releases/download/v0.1.0/rules_oci-v0.1.0.tar.gz"` - with a GitHub-provided source archive like `url = "https://github.com/bazel-contrib/rules_oci/archive/abc123.tar.gz"` -1. Replace `strip_prefix = "rules_oci-0.1.0"` with `strip_prefix = "rules_oci-abc123"` -1. Update the `sha256`. The easiest way to do this is to comment out the line, then Bazel will - print a message with the correct value. - -> Note that GitHub source archives don't have a strong guarantee on the sha256 stability, see -> - -## Usage - -rules_oci does not contain language-specific rules, but we do have limited documentation on how to accomplish typical tasks, and how to migrate from the language-specific rules in rules_docker. - -- [C/C++](docs/cpp.md) -- [Go](docs/go.md) -- [Java](docs/java.md) -- [JavaScript](docs/javascript.md) -- [Python](docs/python.md) -- [Rust](docs/rust.md) -- [Scala](docs/scala.md) -- [WASM](https://github.com/bazel-contrib/rules_oci/tree/main/e2e/wasm) (see https://docs.docker.com/desktop/wasm/) - -> Your language not listed above? Please contribute engineering resources or financially through our Sponsor link! - -There are some generic examples of usage in the [examples](https://github.com/bazel-contrib/rules_oci/tree/main/examples) folder. -Note that these examples rely on the setup code in the `/WORKSPACE` file in the root of this repo. - -### Choosing between zot or crane as the local registry - -rules_oci supports two different registry implementation for the temporary storage within actions spawned by bazel. - -1. By default we recommend using `zot` as it stores blobs on disk, however it doesn't support `Docker`-format images. -2. `crane` is memory hungry as it stores blobs in memory, leading to high memory usage. - However it supports both `OCI` and `Docker` formats which is quite useful for using `Docker` images pulled from the registries such as DockerHub. - -## Public API Docs - -### Construct image layers - -- [oci_image](docs/image.md) Build an OCI compatible container image. -- [oci_image_index](docs/image_index.md) Build a multi-architecture OCI compatible container image. -- [oci_tarball](docs/tarball.md) Creates tarball from `oci_image` that can be loaded by runtimes. - -### Pull and Push - -- [oci_pull](docs/pull.md) Pulls image layers using Bazel's downloader. -- [oci_push](docs/push.md) Push an oci_image or oci_image_index to a remote registry. - -### Testing - -- We recommend [container_structure_test](https://github.com/GoogleContainerTools/container-structure-test#running-structure-tests-through-bazel) to run tests against an `oci_image` or `oci_tarball` target. - - diff --git a/examples/go/BUILD.bazel b/examples/go/BUILD.bazel index 02316361..e198f038 100644 --- a/examples/go/BUILD.bazel +++ b/examples/go/BUILD.bazel @@ -2,7 +2,6 @@ load("//oci:defs.bzl", "oci_image", "oci_tarball") load("@rules_pkg//:pkg.bzl", "pkg_tar") load("@aspect_bazel_lib//lib:testing.bzl", "assert_contains") load(":transition.bzl", "multi_arch") -# load("@rules_go//go:def.bzl", "go_binary", "go_library") load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library") go_library( @@ -43,6 +42,23 @@ oci_tarball( repo_tags = ["distroless_static:example"], ) +# distroless demo (dynamic) ############################################################## +oci_image( + name = "distroless_dynamic_image", + base = "@distroless_base_nossl", + entrypoint = ["/app"], + tars = [":app_layer"], +) + +# bazel build :distroless_dynamic_tar +# docker load --input ../../bazel-bin/examples/go/distroless_dynamic_tar/tarball.tar +# docker run --rm distroless_dynamic:example +oci_tarball( + name = "distroless_dynamic_tar", + image = ":distroless_dynamic_image", + repo_tags = ["distroless_dynamic:example"], +) + # chainguard demo (static) ############################################################## oci_image( name = "chainguard_static_image", @@ -59,3 +75,39 @@ oci_tarball( image = ":chainguard_static_image", repo_tags = ["chainguard_static:example"], ) + + +# chainguard demo (dynamic musl) ############################################################## +oci_image( + name = "chainguard_musl_dynamic_image", + base = "@chainguard_musl_dynamic", + entrypoint = ["/app"], + tars = [":app_layer"], +) + +# bazel build :chainguard_dynamic_tar +# docker load --input ../../bazel-bin/examples/go/chainguard_musl_dynamic_tar/tarball.tar +# docker run --rm chainguard_musl_dynamic:example +oci_tarball( + name = "chainguard_musl_dynamic_tar", + image = ":chainguard_musl_dynamic_image", + repo_tags = ["chainguard_musl_dynamic:example"], +) + +# chainguard demo (dynamic glibc) ############################################################## +oci_image( + name = "chainguard_glibc_dynamic_image", + base = "@chainguard_glibc_dynamic", + entrypoint = ["/app"], + tars = [":app_layer"], +) + +# bazel build :chainguard_glibc_dynamic_tar +# docker load --input ../../bazel-bin/examples/go/chainguard_glibc_dynamic_tar/tarball.tar +# docker run --rm chainguard_glibc_dynamic_musl:example +oci_tarball( + name = "chainguard_glibc_dynamic_tar", + image = ":chainguard_glibc_dynamic_image", + repo_tags = ["chainguard_glibc_dynamic:example"], +) + diff --git a/examples/go/measure-bazel-target b/examples/go/measure-bazel-target new file mode 100755 index 00000000..27fcdc90 --- /dev/null +++ b/examples/go/measure-bazel-target @@ -0,0 +1,8 @@ +#!/bin/sh +# Measure a bazel target by size and CVE count +set -eux -o pipefail +bazel build :${1}_tar +docker load --input ../../bazel-bin/examples/go/${1}_tar/tarball.tar +dive $1:example +grype $1:example + diff --git a/examples/java/.bazelrc b/examples/java/.bazelrc new file mode 100644 index 00000000..3ce91d27 --- /dev/null +++ b/examples/java/.bazelrc @@ -0,0 +1 @@ +common --enable_bzlmod diff --git a/examples/java/.bazelversion b/examples/java/.bazelversion new file mode 100644 index 00000000..5e325424 --- /dev/null +++ b/examples/java/.bazelversion @@ -0,0 +1 @@ +6.1.2 diff --git a/examples/java/BUILD.bazel b/examples/java/BUILD.bazel new file mode 100644 index 00000000..8c3f0ad0 --- /dev/null +++ b/examples/java/BUILD.bazel @@ -0,0 +1,47 @@ +load("@rules_oci//oci:defs.bzl", "oci_image", "oci_tarball") +load("@rules_pkg//:pkg.bzl", "pkg_tar") + +pkg_tar( + name = "tar", + # Bring the java_binary + srcs = ["//src/main/java/com/example:JavaLoggingClient_deploy.jar"], + include_runfiles = True, + strip_prefix = ".", +) + +# distroless demo ################################################## +oci_image( + name = "distroless_image", + base = "@distroless_java", + entrypoint = [ + "java", + "-jar", + "/src/main/java/com/example/JavaLoggingClient_deploy.jar", + ], + tars = [":tar"], +) + +oci_tarball( + name = "distroless_tar", + image = ":distroless_image", + repo_tags = ["distroless:example"], +) + + +# chainguard demo ####################################################### +oci_image( + name = "chainguard_image", + base = "@chainguard_jre", + entrypoint = [ + "java", + "-jar", + "/src/main/java/com/example/JavaLoggingClient_deploy.jar", + ], + tars = [":tar"], +) + +oci_tarball( + name = "chainguard_tar", + image = ":chainguard_image", + repo_tags = ["chainguard:example"], +) diff --git a/examples/java/README.md b/examples/java/README.md new file mode 100644 index 00000000..8616eb09 --- /dev/null +++ b/examples/java/README.md @@ -0,0 +1,13 @@ +# OCI image with a Java application + +Illustrates a replacement for https://github.com/bazelbuild/rules_docker#java_image + +This uses a simple method of building the `*_deploy.jar` from Bazel's `java_binary` rule, which is +a single file that has all the third-party dependencies built-in and includes a self-contained +classpath and launcher for the application. + +A more sophisticated approach would require something similar to how rules_docker assembles a +classpath and invokes `java -cp [classpath] [main_class]` +https://github.com/bazelbuild/rules_docker/blob/8e70c6bcb584a15a8fd061ea489b933c0ff344ca/java/image.bzl#L178-L212 +so that the third-party dependencies could be placed in a separate layer from the application, +which would optimize for network traffic required to update just the application layer. diff --git a/examples/java/measure-bazel-target b/examples/java/measure-bazel-target new file mode 100755 index 00000000..7d75130a --- /dev/null +++ b/examples/java/measure-bazel-target @@ -0,0 +1,8 @@ +#!/bin/sh +# Measure a bazel target by size and CVE count +set -eux -o pipefail +bazel build :${1}_tar +docker load --input ../../bazel-bin/examples/java/${1}_tar/tarball.tar +dive $1:example +grype $1:example + diff --git a/examples/java/test.yaml b/examples/java/test.yaml new file mode 100644 index 00000000..6eec3d2f --- /dev/null +++ b/examples/java/test.yaml @@ -0,0 +1,6 @@ +schemaVersion: 2.0.0 +commandTests: + - name: test + command: java + args: ['-jar', '/src/main/java/com/example/JavaLoggingClient_deploy.jar'] + expectedOutput: ['Sending message to server'] diff --git a/fetch.bzl b/fetch.bzl index 363ac518..88bfbcff 100644 --- a/fetch.bzl +++ b/fetch.bzl @@ -12,8 +12,10 @@ def fetch_images(): # A single-arch base image oci_pull( name = "distroless_java", - digest = "sha256:161a1d97d592b3f1919801578c3a47c8e932071168a96267698f4b669c24c76d", + # digest = "sha256:161a1d97d592b3f1919801578c3a47c8e932071168a96267698f4b669c24c76d", image = "gcr.io/distroless/java17", + tag = "latest", + reproducible = False, ) # A multi-arch base image @@ -30,6 +32,21 @@ def fetch_images(): ], ) + + # A multi-arch base image + oci_pull( + name = "distroless_base_nossl", + digest = "sha256:b7ed83c586e0901849c7cc9790f98fb6eeac8567bc144eec355c4a077c466c10", + image = "gcr.io/distroless/base-nossl-debian11", + platforms = [ + "linux/amd64", + "linux/arm", + "linux/arm64", + "linux/ppc64le", + "linux/s390x", + ], + ) + # Show that the digest is optional. # In this case, the dependency is "floating" and our build could break when a new # image is pushed to gcr.io with the 'debug' tag, so we document this by setting @@ -119,9 +136,43 @@ def fetch_images(): "linux/amd64", "linux/arm64", ], - #tag = "latest", - #reproducible = False, - digest = "sha256:0fc4584e8ae2a6e71f0bf73213c659f64756b48caab1bba3207c2ea51d292fb0", + tag = "latest", + reproducible = False, + #digest = "sha256:0fc4584e8ae2a6e71f0bf73213c659f64756b48caab1bba3207c2ea51d292fb0", + ) + + oci_pull( + name = "chainguard_musl_dynamic", + image = "cgr.dev/chainguard/musl-dynamic", + platforms = [ + "linux/amd64", + "linux/arm64", + ], + tag = "latest", + reproducible = False, + # digest = "sha256:3ebfa9ec73439a0b7e24b5d853676ad962aeb2718635ae4b8eba9cc6b7e3c673", + ) + + oci_pull( + name = "chainguard_glibc_dynamic", + image = "cgr.dev/chainguard/glibc-dynamic", + platforms = [ + "linux/amd64", + "linux/arm64", + ], + tag = "latest", + reproducible = False, + ) + + oci_pull( + name = "chainguard_jre", + image = "cgr.dev/chainguard/jre", + platforms = [ + "linux/amd64", + "linux/arm64", + ], + tag = "latest", + reproducible = False, ) oci_pull( diff --git a/maven_install.json b/maven_install.json new file mode 100644 index 00000000..8db772ff --- /dev/null +++ b/maven_install.json @@ -0,0 +1,3193 @@ +{ + "dependency_tree": { + "__AUTOGENERATED_FILE_DO_NOT_MODIFY_THIS_FILE_MANUALLY": "THERE_IS_NO_DATA_ONLY_ZUUL", + "__INPUT_ARTIFACTS_HASH": -700007259, + "__RESOLVED_ARTIFACTS_HASH": 1177574382, + "conflict_resolution": {}, + "dependencies": [ + { + "coord": "com.google.android:annotations:4.1.1.4", + "dependencies": [], + "directDependencies": [], + "file": "v1/https/repo1.maven.org/maven2/com/google/android/annotations/4.1.1.4/annotations-4.1.1.4.jar", + "mirror_urls": [ + "https://repo1.maven.org/maven2/com/google/android/annotations/4.1.1.4/annotations-4.1.1.4.jar" + ], + "packages": ["android.annotation"], + "sha256": "ba734e1e84c09d615af6a09d33034b4f0442f8772dec120efb376d86a565ae15", + "url": "https://repo1.maven.org/maven2/com/google/android/annotations/4.1.1.4/annotations-4.1.1.4.jar" + }, + { + "coord": "com.google.android:annotations:jar:sources:4.1.1.4", + "dependencies": [], + "directDependencies": [], + "file": "v1/https/repo1.maven.org/maven2/com/google/android/annotations/4.1.1.4/annotations-4.1.1.4-sources.jar", + "mirror_urls": [ + "https://repo1.maven.org/maven2/com/google/android/annotations/4.1.1.4/annotations-4.1.1.4-sources.jar" + ], + "packages": [], + "sha256": "e9b667aa958df78ea1ad115f7bbac18a5869c3128b1d5043feb360b0cfce9d40", + "url": "https://repo1.maven.org/maven2/com/google/android/annotations/4.1.1.4/annotations-4.1.1.4-sources.jar" + }, + { + "coord": "com.google.api.grpc:proto-google-common-protos:2.9.0", + "dependencies": ["com.google.protobuf:protobuf-java:3.21.7"], + "directDependencies": ["com.google.protobuf:protobuf-java:3.21.7"], + "exclusions": ["com.google.api:api-common"], + "file": "v1/https/repo1.maven.org/maven2/com/google/api/grpc/proto-google-common-protos/2.9.0/proto-google-common-protos-2.9.0.jar", + "mirror_urls": [ + "https://repo1.maven.org/maven2/com/google/api/grpc/proto-google-common-protos/2.9.0/proto-google-common-protos-2.9.0.jar" + ], + "packages": [ + "com.google.api", + "com.google.cloud", + "com.google.cloud.audit", + "com.google.cloud.location", + "com.google.geo.type", + "com.google.logging.type", + "com.google.longrunning", + "com.google.rpc", + "com.google.rpc.context", + "com.google.type" + ], + "sha256": "0d830380ec66bd7e25eee63aa0a5a08578e46ad187fb72d99b44d9ba22827f91", + "url": "https://repo1.maven.org/maven2/com/google/api/grpc/proto-google-common-protos/2.9.0/proto-google-common-protos-2.9.0.jar" + }, + { + "coord": "com.google.api.grpc:proto-google-common-protos:jar:sources:2.9.0", + "dependencies": [ + "com.google.protobuf:protobuf-java:jar:sources:3.21.7" + ], + "directDependencies": [ + "com.google.protobuf:protobuf-java:jar:sources:3.21.7" + ], + "exclusions": ["com.google.api:api-common"], + "file": "v1/https/repo1.maven.org/maven2/com/google/api/grpc/proto-google-common-protos/2.9.0/proto-google-common-protos-2.9.0-sources.jar", + "mirror_urls": [ + "https://repo1.maven.org/maven2/com/google/api/grpc/proto-google-common-protos/2.9.0/proto-google-common-protos-2.9.0-sources.jar" + ], + "packages": [], + "sha256": "ea54fe7b9585f69f819c63dec60d8334654ece38e331fa8d6ed11e11a6affba2", + "url": "https://repo1.maven.org/maven2/com/google/api/grpc/proto-google-common-protos/2.9.0/proto-google-common-protos-2.9.0-sources.jar" + }, + { + "coord": "com.google.auth:google-auth-library-credentials:1.4.0", + "dependencies": [], + "directDependencies": [], + "file": "v1/https/repo1.maven.org/maven2/com/google/auth/google-auth-library-credentials/1.4.0/google-auth-library-credentials-1.4.0.jar", + "mirror_urls": [ + "https://repo1.maven.org/maven2/com/google/auth/google-auth-library-credentials/1.4.0/google-auth-library-credentials-1.4.0.jar" + ], + "packages": ["com.google.auth"], + "sha256": "6ad4416d9360a1df3a660c43493e9605416ddd4de953ffbb14dd582a591b09a1", + "url": "https://repo1.maven.org/maven2/com/google/auth/google-auth-library-credentials/1.4.0/google-auth-library-credentials-1.4.0.jar" + }, + { + "coord": "com.google.auth:google-auth-library-credentials:jar:sources:1.4.0", + "dependencies": [], + "directDependencies": [], + "file": "v1/https/repo1.maven.org/maven2/com/google/auth/google-auth-library-credentials/1.4.0/google-auth-library-credentials-1.4.0-sources.jar", + "mirror_urls": [ + "https://repo1.maven.org/maven2/com/google/auth/google-auth-library-credentials/1.4.0/google-auth-library-credentials-1.4.0-sources.jar" + ], + "packages": [], + "sha256": "2ebd10e88fa862919728bf7604b5b25aa51c19732c6a1d7fa1e9d68688c2ecee", + "url": "https://repo1.maven.org/maven2/com/google/auth/google-auth-library-credentials/1.4.0/google-auth-library-credentials-1.4.0-sources.jar" + }, + { + "coord": "com.google.auth:google-auth-library-oauth2-http:1.4.0", + "dependencies": [ + "com.google.auth:google-auth-library-credentials:1.4.0", + "com.google.auto.value:auto-value-annotations:1.9", + "com.google.code.findbugs:jsr305:3.0.2", + "com.google.code.gson:gson:2.9.0", + "com.google.guava:guava:31.1-android", + "com.google.http-client:google-http-client-gson:1.41.0", + "com.google.http-client:google-http-client:1.41.0", + "com.google.j2objc:j2objc-annotations:1.3", + "commons-codec:commons-codec:1.11", + "commons-logging:commons-logging:1.2", + "io.grpc:grpc-context:1.51.1", + "io.opencensus:opencensus-api:0.28.0", + "io.opencensus:opencensus-contrib-http-util:0.28.0", + "org.apache.httpcomponents:httpclient:4.5.13", + "org.apache.httpcomponents:httpcore:4.4.15" + ], + "directDependencies": [ + "com.google.auth:google-auth-library-credentials:1.4.0", + "com.google.auto.value:auto-value-annotations:1.9", + "com.google.code.findbugs:jsr305:3.0.2", + "com.google.guava:guava:31.1-android", + "com.google.http-client:google-http-client-gson:1.41.0", + "com.google.http-client:google-http-client:1.41.0" + ], + "file": "v1/https/repo1.maven.org/maven2/com/google/auth/google-auth-library-oauth2-http/1.4.0/google-auth-library-oauth2-http-1.4.0.jar", + "mirror_urls": [ + "https://repo1.maven.org/maven2/com/google/auth/google-auth-library-oauth2-http/1.4.0/google-auth-library-oauth2-http-1.4.0.jar" + ], + "packages": ["com.google.auth.http", "com.google.auth.oauth2"], + "sha256": "bbf99bba3394c699c48b2e67257dfa96b84c6ee54c348bd426c94207b84254ba", + "url": "https://repo1.maven.org/maven2/com/google/auth/google-auth-library-oauth2-http/1.4.0/google-auth-library-oauth2-http-1.4.0.jar" + }, + { + "coord": "com.google.auth:google-auth-library-oauth2-http:jar:sources:1.4.0", + "dependencies": [ + "com.google.auth:google-auth-library-credentials:jar:sources:1.4.0", + "com.google.auto.value:auto-value-annotations:jar:sources:1.9", + "com.google.code.findbugs:jsr305:jar:sources:3.0.2", + "com.google.code.gson:gson:jar:sources:2.9.0", + "com.google.guava:guava:jar:sources:31.1-android", + "com.google.http-client:google-http-client-gson:jar:sources:1.41.0", + "com.google.http-client:google-http-client:jar:sources:1.41.0", + "com.google.j2objc:j2objc-annotations:jar:sources:1.3", + "commons-codec:commons-codec:jar:sources:1.11", + "commons-logging:commons-logging:jar:sources:1.2", + "io.grpc:grpc-context:jar:sources:1.51.1", + "io.opencensus:opencensus-api:jar:sources:0.28.0", + "io.opencensus:opencensus-contrib-http-util:jar:sources:0.28.0", + "org.apache.httpcomponents:httpclient:jar:sources:4.5.13", + "org.apache.httpcomponents:httpcore:jar:sources:4.4.15" + ], + "directDependencies": [ + "com.google.auth:google-auth-library-credentials:jar:sources:1.4.0", + "com.google.auto.value:auto-value-annotations:jar:sources:1.9", + "com.google.code.findbugs:jsr305:jar:sources:3.0.2", + "com.google.guava:guava:jar:sources:31.1-android", + "com.google.http-client:google-http-client-gson:jar:sources:1.41.0", + "com.google.http-client:google-http-client:jar:sources:1.41.0" + ], + "file": "v1/https/repo1.maven.org/maven2/com/google/auth/google-auth-library-oauth2-http/1.4.0/google-auth-library-oauth2-http-1.4.0-sources.jar", + "mirror_urls": [ + "https://repo1.maven.org/maven2/com/google/auth/google-auth-library-oauth2-http/1.4.0/google-auth-library-oauth2-http-1.4.0-sources.jar" + ], + "packages": [], + "sha256": "7af3571aad62df42a56051c212c00a334c8cbd886b5bb06da1abc82417e3f5b7", + "url": "https://repo1.maven.org/maven2/com/google/auth/google-auth-library-oauth2-http/1.4.0/google-auth-library-oauth2-http-1.4.0-sources.jar" + }, + { + "coord": "com.google.auto.value:auto-value-annotations:1.9", + "dependencies": [], + "directDependencies": [], + "file": "v1/https/repo1.maven.org/maven2/com/google/auto/value/auto-value-annotations/1.9/auto-value-annotations-1.9.jar", + "mirror_urls": [ + "https://repo1.maven.org/maven2/com/google/auto/value/auto-value-annotations/1.9/auto-value-annotations-1.9.jar" + ], + "packages": [ + "com.google.auto.value", + "com.google.auto.value.extension.memoized", + "com.google.auto.value.extension.serializable", + "com.google.auto.value.extension.toprettystring" + ], + "sha256": "fa5469f4c44ee598a2d8f033ab0a9dcbc6498a0c5e0c998dfa0c2adf51358044", + "url": "https://repo1.maven.org/maven2/com/google/auto/value/auto-value-annotations/1.9/auto-value-annotations-1.9.jar" + }, + { + "coord": "com.google.auto.value:auto-value-annotations:jar:sources:1.9", + "dependencies": [], + "directDependencies": [], + "file": "v1/https/repo1.maven.org/maven2/com/google/auto/value/auto-value-annotations/1.9/auto-value-annotations-1.9-sources.jar", + "mirror_urls": [ + "https://repo1.maven.org/maven2/com/google/auto/value/auto-value-annotations/1.9/auto-value-annotations-1.9-sources.jar" + ], + "packages": [], + "sha256": "72c43da0e3284faecca1deeeb4b52a6e4065c8ee3c56910ce4c0c44f6967a652", + "url": "https://repo1.maven.org/maven2/com/google/auto/value/auto-value-annotations/1.9/auto-value-annotations-1.9-sources.jar" + }, + { + "coord": "com.google.code.findbugs:jsr305:3.0.2", + "dependencies": [], + "directDependencies": [], + "file": "v1/https/repo1.maven.org/maven2/com/google/code/findbugs/jsr305/3.0.2/jsr305-3.0.2.jar", + "mirror_urls": [ + "https://repo1.maven.org/maven2/com/google/code/findbugs/jsr305/3.0.2/jsr305-3.0.2.jar" + ], + "packages": [ + "javax.annotation", + "javax.annotation.concurrent", + "javax.annotation.meta" + ], + "sha256": "766ad2a0783f2687962c8ad74ceecc38a28b9f72a2d085ee438b7813e928d0c7", + "url": "https://repo1.maven.org/maven2/com/google/code/findbugs/jsr305/3.0.2/jsr305-3.0.2.jar" + }, + { + "coord": "com.google.code.findbugs:jsr305:jar:sources:3.0.2", + "dependencies": [], + "directDependencies": [], + "file": "v1/https/repo1.maven.org/maven2/com/google/code/findbugs/jsr305/3.0.2/jsr305-3.0.2-sources.jar", + "mirror_urls": [ + "https://repo1.maven.org/maven2/com/google/code/findbugs/jsr305/3.0.2/jsr305-3.0.2-sources.jar" + ], + "packages": [], + "sha256": "1c9e85e272d0708c6a591dc74828c71603053b48cc75ae83cce56912a2aa063b", + "url": "https://repo1.maven.org/maven2/com/google/code/findbugs/jsr305/3.0.2/jsr305-3.0.2-sources.jar" + }, + { + "coord": "com.google.code.gson:gson:2.9.0", + "dependencies": [], + "directDependencies": [], + "file": "v1/https/repo1.maven.org/maven2/com/google/code/gson/gson/2.9.0/gson-2.9.0.jar", + "mirror_urls": [ + "https://repo1.maven.org/maven2/com/google/code/gson/gson/2.9.0/gson-2.9.0.jar" + ], + "packages": [ + "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" + ], + "sha256": "c96d60551331a196dac54b745aa642cd078ef89b6f267146b705f2c2cbef052d", + "url": "https://repo1.maven.org/maven2/com/google/code/gson/gson/2.9.0/gson-2.9.0.jar" + }, + { + "coord": "com.google.code.gson:gson:jar:sources:2.9.0", + "dependencies": [], + "directDependencies": [], + "file": "v1/https/repo1.maven.org/maven2/com/google/code/gson/gson/2.9.0/gson-2.9.0-sources.jar", + "mirror_urls": [ + "https://repo1.maven.org/maven2/com/google/code/gson/gson/2.9.0/gson-2.9.0-sources.jar" + ], + "packages": [], + "sha256": "75429446e9d9e90c5b6a84aa06d8d27783f29c70b3de65a6c2d50d27cece64dc", + "url": "https://repo1.maven.org/maven2/com/google/code/gson/gson/2.9.0/gson-2.9.0-sources.jar" + }, + { + "coord": "com.google.errorprone:error_prone_annotations:2.14.0", + "dependencies": [], + "directDependencies": [], + "file": "v1/https/repo1.maven.org/maven2/com/google/errorprone/error_prone_annotations/2.14.0/error_prone_annotations-2.14.0.jar", + "mirror_urls": [ + "https://repo1.maven.org/maven2/com/google/errorprone/error_prone_annotations/2.14.0/error_prone_annotations-2.14.0.jar" + ], + "packages": [ + "com.google.errorprone.annotations", + "com.google.errorprone.annotations.concurrent" + ], + "sha256": "1494e24e7bd5496e7d6f705169dddd46081cefb882ea4fc60b4a58ca50767f34", + "url": "https://repo1.maven.org/maven2/com/google/errorprone/error_prone_annotations/2.14.0/error_prone_annotations-2.14.0.jar" + }, + { + "coord": "com.google.errorprone:error_prone_annotations:jar:sources:2.14.0", + "dependencies": [], + "directDependencies": [], + "file": "v1/https/repo1.maven.org/maven2/com/google/errorprone/error_prone_annotations/2.14.0/error_prone_annotations-2.14.0-sources.jar", + "mirror_urls": [ + "https://repo1.maven.org/maven2/com/google/errorprone/error_prone_annotations/2.14.0/error_prone_annotations-2.14.0-sources.jar" + ], + "packages": [], + "sha256": "cd3098cda0bb04ffd029582ff6edb9f4ce3fecc371dd8253a1be121f2292aea8", + "url": "https://repo1.maven.org/maven2/com/google/errorprone/error_prone_annotations/2.14.0/error_prone_annotations-2.14.0-sources.jar" + }, + { + "coord": "com.google.guava:failureaccess:1.0.1", + "dependencies": [], + "directDependencies": [], + "file": "v1/https/repo1.maven.org/maven2/com/google/guava/failureaccess/1.0.1/failureaccess-1.0.1.jar", + "mirror_urls": [ + "https://repo1.maven.org/maven2/com/google/guava/failureaccess/1.0.1/failureaccess-1.0.1.jar" + ], + "packages": ["com.google.common.util.concurrent.internal"], + "sha256": "a171ee4c734dd2da837e4b16be9df4661afab72a41adaf31eb84dfdaf936ca26", + "url": "https://repo1.maven.org/maven2/com/google/guava/failureaccess/1.0.1/failureaccess-1.0.1.jar" + }, + { + "coord": "com.google.guava:failureaccess:jar:sources:1.0.1", + "dependencies": [], + "directDependencies": [], + "file": "v1/https/repo1.maven.org/maven2/com/google/guava/failureaccess/1.0.1/failureaccess-1.0.1-sources.jar", + "mirror_urls": [ + "https://repo1.maven.org/maven2/com/google/guava/failureaccess/1.0.1/failureaccess-1.0.1-sources.jar" + ], + "packages": [], + "sha256": "092346eebbb1657b51aa7485a246bf602bb464cc0b0e2e1c7e7201fadce1e98f", + "url": "https://repo1.maven.org/maven2/com/google/guava/failureaccess/1.0.1/failureaccess-1.0.1-sources.jar" + }, + { + "coord": "com.google.guava:guava:31.1-android", + "dependencies": [ + "com.google.code.findbugs:jsr305:3.0.2", + "com.google.errorprone:error_prone_annotations:2.14.0", + "com.google.guava:failureaccess:1.0.1", + "com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava", + "com.google.j2objc:j2objc-annotations:1.3", + "org.checkerframework:checker-qual:3.12.0" + ], + "directDependencies": [ + "com.google.code.findbugs:jsr305:3.0.2", + "com.google.errorprone:error_prone_annotations:2.14.0", + "com.google.guava:failureaccess:1.0.1", + "com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava", + "com.google.j2objc:j2objc-annotations:1.3", + "org.checkerframework:checker-qual:3.12.0" + ], + "file": "v1/https/repo1.maven.org/maven2/com/google/guava/guava/31.1-android/guava-31.1-android.jar", + "mirror_urls": [ + "https://repo1.maven.org/maven2/com/google/guava/guava/31.1-android/guava-31.1-android.jar" + ], + "packages": [ + "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" + ], + "sha256": "32ac2ed709d96d278b5d2e3e5cea178fa4939939c525fb647532f013308db309", + "url": "https://repo1.maven.org/maven2/com/google/guava/guava/31.1-android/guava-31.1-android.jar" + }, + { + "coord": "com.google.guava:guava:jar:sources:31.1-android", + "dependencies": [ + "com.google.code.findbugs:jsr305:jar:sources:3.0.2", + "com.google.errorprone:error_prone_annotations:jar:sources:2.14.0", + "com.google.guava:failureaccess:jar:sources:1.0.1", + "com.google.guava:listenablefuture:jar:sources:9999.0-empty-to-avoid-conflict-with-guava", + "com.google.j2objc:j2objc-annotations:jar:sources:1.3", + "org.checkerframework:checker-qual:jar:sources:3.12.0" + ], + "directDependencies": [ + "com.google.code.findbugs:jsr305:jar:sources:3.0.2", + "com.google.errorprone:error_prone_annotations:jar:sources:2.14.0", + "com.google.guava:failureaccess:jar:sources:1.0.1", + "com.google.guava:listenablefuture:jar:sources:9999.0-empty-to-avoid-conflict-with-guava", + "com.google.j2objc:j2objc-annotations:jar:sources:1.3", + "org.checkerframework:checker-qual:jar:sources:3.12.0" + ], + "file": "v1/https/repo1.maven.org/maven2/com/google/guava/guava/31.1-android/guava-31.1-android-sources.jar", + "mirror_urls": [ + "https://repo1.maven.org/maven2/com/google/guava/guava/31.1-android/guava-31.1-android-sources.jar" + ], + "packages": [], + "sha256": "57f3d51d8095b148383f1cb402dd11ef8676c32974a67190c3ad4cf2ef2b2f0f", + "url": "https://repo1.maven.org/maven2/com/google/guava/guava/31.1-android/guava-31.1-android-sources.jar" + }, + { + "coord": "com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava", + "dependencies": [], + "directDependencies": [], + "file": "v1/https/repo1.maven.org/maven2/com/google/guava/listenablefuture/9999.0-empty-to-avoid-conflict-with-guava/listenablefuture-9999.0-empty-to-avoid-conflict-with-guava.jar", + "mirror_urls": [ + "https://repo1.maven.org/maven2/com/google/guava/listenablefuture/9999.0-empty-to-avoid-conflict-with-guava/listenablefuture-9999.0-empty-to-avoid-conflict-with-guava.jar" + ], + "packages": [], + "sha256": "b372a037d4230aa57fbeffdef30fd6123f9c0c2db85d0aced00c91b974f33f99", + "url": "https://repo1.maven.org/maven2/com/google/guava/listenablefuture/9999.0-empty-to-avoid-conflict-with-guava/listenablefuture-9999.0-empty-to-avoid-conflict-with-guava.jar" + }, + { + "coord": "com.google.guava:listenablefuture:jar:sources:9999.0-empty-to-avoid-conflict-with-guava", + "dependencies": [], + "directDependencies": [], + "file": null + }, + { + "coord": "com.google.http-client:google-http-client-gson:1.41.0", + "dependencies": [ + "com.google.code.findbugs:jsr305:3.0.2", + "com.google.code.gson:gson:2.9.0", + "com.google.guava:guava:31.1-android", + "com.google.http-client:google-http-client:1.41.0", + "com.google.j2objc:j2objc-annotations:1.3", + "commons-codec:commons-codec:1.11", + "commons-logging:commons-logging:1.2", + "io.grpc:grpc-context:1.51.1", + "io.opencensus:opencensus-api:0.28.0", + "io.opencensus:opencensus-contrib-http-util:0.28.0", + "org.apache.httpcomponents:httpclient:4.5.13", + "org.apache.httpcomponents:httpcore:4.4.15" + ], + "directDependencies": [ + "com.google.code.gson:gson:2.9.0", + "com.google.http-client:google-http-client:1.41.0" + ], + "file": "v1/https/repo1.maven.org/maven2/com/google/http-client/google-http-client-gson/1.41.0/google-http-client-gson-1.41.0.jar", + "mirror_urls": [ + "https://repo1.maven.org/maven2/com/google/http-client/google-http-client-gson/1.41.0/google-http-client-gson-1.41.0.jar" + ], + "packages": ["com.google.api.client.json.gson"], + "sha256": "18766d1bbeb6d363763ef725bc82ed3c8c45f88eadbf149965e6e8c8d9b70d9f", + "url": "https://repo1.maven.org/maven2/com/google/http-client/google-http-client-gson/1.41.0/google-http-client-gson-1.41.0.jar" + }, + { + "coord": "com.google.http-client:google-http-client-gson:jar:sources:1.41.0", + "dependencies": [ + "com.google.code.findbugs:jsr305:jar:sources:3.0.2", + "com.google.code.gson:gson:jar:sources:2.9.0", + "com.google.guava:guava:jar:sources:31.1-android", + "com.google.http-client:google-http-client:jar:sources:1.41.0", + "com.google.j2objc:j2objc-annotations:jar:sources:1.3", + "commons-codec:commons-codec:jar:sources:1.11", + "commons-logging:commons-logging:jar:sources:1.2", + "io.grpc:grpc-context:jar:sources:1.51.1", + "io.opencensus:opencensus-api:jar:sources:0.28.0", + "io.opencensus:opencensus-contrib-http-util:jar:sources:0.28.0", + "org.apache.httpcomponents:httpclient:jar:sources:4.5.13", + "org.apache.httpcomponents:httpcore:jar:sources:4.4.15" + ], + "directDependencies": [ + "com.google.code.gson:gson:jar:sources:2.9.0", + "com.google.http-client:google-http-client:jar:sources:1.41.0" + ], + "file": "v1/https/repo1.maven.org/maven2/com/google/http-client/google-http-client-gson/1.41.0/google-http-client-gson-1.41.0-sources.jar", + "mirror_urls": [ + "https://repo1.maven.org/maven2/com/google/http-client/google-http-client-gson/1.41.0/google-http-client-gson-1.41.0-sources.jar" + ], + "packages": [], + "sha256": "d57cf3a5ba02a65e03d1b35e0164502f09dfca08a7547f682b63bff3951aeae6", + "url": "https://repo1.maven.org/maven2/com/google/http-client/google-http-client-gson/1.41.0/google-http-client-gson-1.41.0-sources.jar" + }, + { + "coord": "com.google.http-client:google-http-client:1.41.0", + "dependencies": [ + "com.google.code.findbugs:jsr305:3.0.2", + "com.google.guava:guava:31.1-android", + "com.google.j2objc:j2objc-annotations:1.3", + "commons-codec:commons-codec:1.11", + "commons-logging:commons-logging:1.2", + "io.grpc:grpc-context:1.51.1", + "io.opencensus:opencensus-api:0.28.0", + "io.opencensus:opencensus-contrib-http-util:0.28.0", + "org.apache.httpcomponents:httpclient:4.5.13", + "org.apache.httpcomponents:httpcore:4.4.15" + ], + "directDependencies": [ + "com.google.code.findbugs:jsr305:3.0.2", + "com.google.guava:guava:31.1-android", + "com.google.j2objc:j2objc-annotations:1.3", + "io.opencensus:opencensus-api:0.28.0", + "io.opencensus:opencensus-contrib-http-util:0.28.0", + "org.apache.httpcomponents:httpclient:4.5.13", + "org.apache.httpcomponents:httpcore:4.4.15" + ], + "file": "v1/https/repo1.maven.org/maven2/com/google/http-client/google-http-client/1.41.0/google-http-client-1.41.0.jar", + "mirror_urls": [ + "https://repo1.maven.org/maven2/com/google/http-client/google-http-client/1.41.0/google-http-client-1.41.0.jar" + ], + "packages": [ + "com.google.api.client.http", + "com.google.api.client.http.apache", + "com.google.api.client.http.javanet", + "com.google.api.client.http.json", + "com.google.api.client.json", + "com.google.api.client.json.rpc2", + "com.google.api.client.json.webtoken", + "com.google.api.client.testing.http", + "com.google.api.client.testing.http.apache", + "com.google.api.client.testing.http.javanet", + "com.google.api.client.testing.json", + "com.google.api.client.testing.json.webtoken", + "com.google.api.client.testing.util", + "com.google.api.client.util", + "com.google.api.client.util.escape", + "com.google.api.client.util.store" + ], + "sha256": "4a42d2c383373bf61c798f1882745989b9836bb032a8a4019890ecb6cd903ef3", + "url": "https://repo1.maven.org/maven2/com/google/http-client/google-http-client/1.41.0/google-http-client-1.41.0.jar" + }, + { + "coord": "com.google.http-client:google-http-client:jar:sources:1.41.0", + "dependencies": [ + "com.google.code.findbugs:jsr305:jar:sources:3.0.2", + "com.google.guava:guava:jar:sources:31.1-android", + "com.google.j2objc:j2objc-annotations:jar:sources:1.3", + "commons-codec:commons-codec:jar:sources:1.11", + "commons-logging:commons-logging:jar:sources:1.2", + "io.grpc:grpc-context:jar:sources:1.51.1", + "io.opencensus:opencensus-api:jar:sources:0.28.0", + "io.opencensus:opencensus-contrib-http-util:jar:sources:0.28.0", + "org.apache.httpcomponents:httpclient:jar:sources:4.5.13", + "org.apache.httpcomponents:httpcore:jar:sources:4.4.15" + ], + "directDependencies": [ + "com.google.code.findbugs:jsr305:jar:sources:3.0.2", + "com.google.guava:guava:jar:sources:31.1-android", + "com.google.j2objc:j2objc-annotations:jar:sources:1.3", + "io.opencensus:opencensus-api:jar:sources:0.28.0", + "io.opencensus:opencensus-contrib-http-util:jar:sources:0.28.0", + "org.apache.httpcomponents:httpclient:jar:sources:4.5.13", + "org.apache.httpcomponents:httpcore:jar:sources:4.4.15" + ], + "file": "v1/https/repo1.maven.org/maven2/com/google/http-client/google-http-client/1.41.0/google-http-client-1.41.0-sources.jar", + "mirror_urls": [ + "https://repo1.maven.org/maven2/com/google/http-client/google-http-client/1.41.0/google-http-client-1.41.0-sources.jar" + ], + "packages": [], + "sha256": "e01bf612119655934574002ad15c0e80b174949d118ab2378d291d065cab3ebd", + "url": "https://repo1.maven.org/maven2/com/google/http-client/google-http-client/1.41.0/google-http-client-1.41.0-sources.jar" + }, + { + "coord": "com.google.j2objc:j2objc-annotations:1.3", + "dependencies": [], + "directDependencies": [], + "file": "v1/https/repo1.maven.org/maven2/com/google/j2objc/j2objc-annotations/1.3/j2objc-annotations-1.3.jar", + "mirror_urls": [ + "https://repo1.maven.org/maven2/com/google/j2objc/j2objc-annotations/1.3/j2objc-annotations-1.3.jar" + ], + "packages": ["com.google.j2objc.annotations"], + "sha256": "21af30c92267bd6122c0e0b4d20cccb6641a37eaf956c6540ec471d584e64a7b", + "url": "https://repo1.maven.org/maven2/com/google/j2objc/j2objc-annotations/1.3/j2objc-annotations-1.3.jar" + }, + { + "coord": "com.google.j2objc:j2objc-annotations:jar:sources:1.3", + "dependencies": [], + "directDependencies": [], + "file": "v1/https/repo1.maven.org/maven2/com/google/j2objc/j2objc-annotations/1.3/j2objc-annotations-1.3-sources.jar", + "mirror_urls": [ + "https://repo1.maven.org/maven2/com/google/j2objc/j2objc-annotations/1.3/j2objc-annotations-1.3-sources.jar" + ], + "packages": [], + "sha256": "ba4df669fec153fa4cd0ef8d02c6d3ef0702b7ac4cabe080facf3b6e490bb972", + "url": "https://repo1.maven.org/maven2/com/google/j2objc/j2objc-annotations/1.3/j2objc-annotations-1.3-sources.jar" + }, + { + "coord": "com.google.protobuf:protobuf-java-util:3.21.7", + "dependencies": [ + "com.google.code.findbugs:jsr305:3.0.2", + "com.google.code.gson:gson:2.9.0", + "com.google.errorprone:error_prone_annotations:2.14.0", + "com.google.guava:failureaccess:1.0.1", + "com.google.guava:guava:31.1-android", + "com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava", + "com.google.j2objc:j2objc-annotations:1.3", + "com.google.protobuf:protobuf-java:3.21.7", + "org.checkerframework:checker-qual:3.12.0" + ], + "directDependencies": [ + "com.google.code.findbugs:jsr305:3.0.2", + "com.google.code.gson:gson:2.9.0", + "com.google.errorprone:error_prone_annotations:2.14.0", + "com.google.guava:guava:31.1-android", + "com.google.j2objc:j2objc-annotations:1.3", + "com.google.protobuf:protobuf-java:3.21.7" + ], + "file": "v1/https/repo1.maven.org/maven2/com/google/protobuf/protobuf-java-util/3.21.7/protobuf-java-util-3.21.7.jar", + "mirror_urls": [ + "https://repo1.maven.org/maven2/com/google/protobuf/protobuf-java-util/3.21.7/protobuf-java-util-3.21.7.jar" + ], + "packages": ["com.google.protobuf.util"], + "sha256": "9b98a2a4eb9ebc6103b14ab81badb82e32c8fe1d751aa4055830424974b7e142", + "url": "https://repo1.maven.org/maven2/com/google/protobuf/protobuf-java-util/3.21.7/protobuf-java-util-3.21.7.jar" + }, + { + "coord": "com.google.protobuf:protobuf-java-util:jar:sources:3.21.7", + "dependencies": [ + "com.google.code.findbugs:jsr305:jar:sources:3.0.2", + "com.google.code.gson:gson:jar:sources:2.9.0", + "com.google.errorprone:error_prone_annotations:jar:sources:2.14.0", + "com.google.guava:failureaccess:jar:sources:1.0.1", + "com.google.guava:guava:jar:sources:31.1-android", + "com.google.guava:listenablefuture:jar:sources:9999.0-empty-to-avoid-conflict-with-guava", + "com.google.j2objc:j2objc-annotations:jar:sources:1.3", + "com.google.protobuf:protobuf-java:jar:sources:3.21.7", + "org.checkerframework:checker-qual:jar:sources:3.12.0" + ], + "directDependencies": [ + "com.google.code.findbugs:jsr305:jar:sources:3.0.2", + "com.google.code.gson:gson:jar:sources:2.9.0", + "com.google.errorprone:error_prone_annotations:jar:sources:2.14.0", + "com.google.guava:guava:jar:sources:31.1-android", + "com.google.j2objc:j2objc-annotations:jar:sources:1.3", + "com.google.protobuf:protobuf-java:jar:sources:3.21.7" + ], + "file": "v1/https/repo1.maven.org/maven2/com/google/protobuf/protobuf-java-util/3.21.7/protobuf-java-util-3.21.7-sources.jar", + "mirror_urls": [ + "https://repo1.maven.org/maven2/com/google/protobuf/protobuf-java-util/3.21.7/protobuf-java-util-3.21.7-sources.jar" + ], + "packages": [], + "sha256": "43b9188848b01cec71d34326868e25c102b2a344c6ef1072d54c3681559c5f57", + "url": "https://repo1.maven.org/maven2/com/google/protobuf/protobuf-java-util/3.21.7/protobuf-java-util-3.21.7-sources.jar" + }, + { + "coord": "com.google.protobuf:protobuf-java:3.21.7", + "dependencies": [], + "directDependencies": [], + "file": "v1/https/repo1.maven.org/maven2/com/google/protobuf/protobuf-java/3.21.7/protobuf-java-3.21.7.jar", + "mirror_urls": [ + "https://repo1.maven.org/maven2/com/google/protobuf/protobuf-java/3.21.7/protobuf-java-3.21.7.jar" + ], + "packages": ["com.google.protobuf", "com.google.protobuf.compiler"], + "sha256": "a204ec68748a7b26351ae37a311e8de468f248d1916d5f8dbe812c1289d0a0ff", + "url": "https://repo1.maven.org/maven2/com/google/protobuf/protobuf-java/3.21.7/protobuf-java-3.21.7.jar" + }, + { + "coord": "com.google.protobuf:protobuf-java:jar:sources:3.21.7", + "dependencies": [], + "directDependencies": [], + "file": "v1/https/repo1.maven.org/maven2/com/google/protobuf/protobuf-java/3.21.7/protobuf-java-3.21.7-sources.jar", + "mirror_urls": [ + "https://repo1.maven.org/maven2/com/google/protobuf/protobuf-java/3.21.7/protobuf-java-3.21.7-sources.jar" + ], + "packages": [], + "sha256": "c664e12e6e3fea801477edf95014980a8a96528d3904d2add90c68b5d047a6c2", + "url": "https://repo1.maven.org/maven2/com/google/protobuf/protobuf-java/3.21.7/protobuf-java-3.21.7-sources.jar" + }, + { + "coord": "com.google.re2j:re2j:1.6", + "dependencies": [], + "directDependencies": [], + "file": "v1/https/repo1.maven.org/maven2/com/google/re2j/re2j/1.6/re2j-1.6.jar", + "mirror_urls": [ + "https://repo1.maven.org/maven2/com/google/re2j/re2j/1.6/re2j-1.6.jar" + ], + "packages": ["com.google.re2j"], + "sha256": "c8b5c3472d4db594a865b2e47f835d07fb8b1415eeba559dccfb0a6945f033cd", + "url": "https://repo1.maven.org/maven2/com/google/re2j/re2j/1.6/re2j-1.6.jar" + }, + { + "coord": "com.google.re2j:re2j:jar:sources:1.6", + "dependencies": [], + "directDependencies": [], + "file": "v1/https/repo1.maven.org/maven2/com/google/re2j/re2j/1.6/re2j-1.6-sources.jar", + "mirror_urls": [ + "https://repo1.maven.org/maven2/com/google/re2j/re2j/1.6/re2j-1.6-sources.jar" + ], + "packages": [], + "sha256": "93cddb0d06f582f6133d0a6d713efae558a1cfb92646cbd27ade5e7912134a95", + "url": "https://repo1.maven.org/maven2/com/google/re2j/re2j/1.6/re2j-1.6-sources.jar" + }, + { + "coord": "com.squareup.okio:okio:1.17.5", + "dependencies": [], + "directDependencies": [], + "file": "v1/https/repo1.maven.org/maven2/com/squareup/okio/okio/1.17.5/okio-1.17.5.jar", + "mirror_urls": [ + "https://repo1.maven.org/maven2/com/squareup/okio/okio/1.17.5/okio-1.17.5.jar" + ], + "packages": ["okio"], + "sha256": "19a7ff48d86d3cf4497f7f250fbf295f430c13a528dd5b7b203f821802b886ad", + "url": "https://repo1.maven.org/maven2/com/squareup/okio/okio/1.17.5/okio-1.17.5.jar" + }, + { + "coord": "com.squareup.okio:okio:jar:sources:1.17.5", + "dependencies": [], + "directDependencies": [], + "file": "v1/https/repo1.maven.org/maven2/com/squareup/okio/okio/1.17.5/okio-1.17.5-sources.jar", + "mirror_urls": [ + "https://repo1.maven.org/maven2/com/squareup/okio/okio/1.17.5/okio-1.17.5-sources.jar" + ], + "packages": [], + "sha256": "537b41075d390d888aec040d0798211b1702d34f558efc09364b5f7d388ec496", + "url": "https://repo1.maven.org/maven2/com/squareup/okio/okio/1.17.5/okio-1.17.5-sources.jar" + }, + { + "coord": "commons-codec:commons-codec:1.11", + "dependencies": [], + "directDependencies": [], + "file": "v1/https/repo1.maven.org/maven2/commons-codec/commons-codec/1.11/commons-codec-1.11.jar", + "mirror_urls": [ + "https://repo1.maven.org/maven2/commons-codec/commons-codec/1.11/commons-codec-1.11.jar" + ], + "packages": [ + "org.apache.commons.codec", + "org.apache.commons.codec.binary", + "org.apache.commons.codec.cli", + "org.apache.commons.codec.digest", + "org.apache.commons.codec.language", + "org.apache.commons.codec.language.bm", + "org.apache.commons.codec.net" + ], + "sha256": "e599d5318e97aa48f42136a2927e6dfa4e8881dff0e6c8e3109ddbbff51d7b7d", + "url": "https://repo1.maven.org/maven2/commons-codec/commons-codec/1.11/commons-codec-1.11.jar" + }, + { + "coord": "commons-codec:commons-codec:jar:sources:1.11", + "dependencies": [], + "directDependencies": [], + "file": "v1/https/repo1.maven.org/maven2/commons-codec/commons-codec/1.11/commons-codec-1.11-sources.jar", + "mirror_urls": [ + "https://repo1.maven.org/maven2/commons-codec/commons-codec/1.11/commons-codec-1.11-sources.jar" + ], + "packages": [], + "sha256": "901cb5d1f7c2877017c95d3c5efd5a497738d0162ef72cdf58e9cb13f50b2e9c", + "url": "https://repo1.maven.org/maven2/commons-codec/commons-codec/1.11/commons-codec-1.11-sources.jar" + }, + { + "coord": "commons-logging:commons-logging:1.2", + "dependencies": [], + "directDependencies": [], + "file": "v1/https/repo1.maven.org/maven2/commons-logging/commons-logging/1.2/commons-logging-1.2.jar", + "mirror_urls": [ + "https://repo1.maven.org/maven2/commons-logging/commons-logging/1.2/commons-logging-1.2.jar" + ], + "packages": [ + "org.apache.commons.logging", + "org.apache.commons.logging.impl" + ], + "sha256": "daddea1ea0be0f56978ab3006b8ac92834afeefbd9b7e4e6316fca57df0fa636", + "url": "https://repo1.maven.org/maven2/commons-logging/commons-logging/1.2/commons-logging-1.2.jar" + }, + { + "coord": "commons-logging:commons-logging:jar:sources:1.2", + "dependencies": [], + "directDependencies": [], + "file": "v1/https/repo1.maven.org/maven2/commons-logging/commons-logging/1.2/commons-logging-1.2-sources.jar", + "mirror_urls": [ + "https://repo1.maven.org/maven2/commons-logging/commons-logging/1.2/commons-logging-1.2-sources.jar" + ], + "packages": [], + "sha256": "44347acfe5860461728e9cb33251e97345be36f8a0dfd5c5130c172559455f41", + "url": "https://repo1.maven.org/maven2/commons-logging/commons-logging/1.2/commons-logging-1.2-sources.jar" + }, + { + "coord": "io.grpc:grpc-all:1.51.1", + "dependencies": [ + "com.google.android:annotations:4.1.1.4", + "com.google.api.grpc:proto-google-common-protos:2.9.0", + "com.google.auth:google-auth-library-credentials:1.4.0", + "com.google.auth:google-auth-library-oauth2-http:1.4.0", + "com.google.auto.value:auto-value-annotations:1.9", + "com.google.code.findbugs:jsr305:3.0.2", + "com.google.code.gson:gson:2.9.0", + "com.google.errorprone:error_prone_annotations:2.14.0", + "com.google.guava:failureaccess:1.0.1", + "com.google.guava:guava:31.1-android", + "com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava", + "com.google.http-client:google-http-client-gson:1.41.0", + "com.google.http-client:google-http-client:1.41.0", + "com.google.j2objc:j2objc-annotations:1.3", + "com.google.protobuf:protobuf-java-util:3.21.7", + "com.google.protobuf:protobuf-java:3.21.7", + "com.google.re2j:re2j:1.6", + "com.squareup.okio:okio:1.17.5", + "commons-codec:commons-codec:1.11", + "commons-logging:commons-logging:1.2", + "io.grpc:grpc-alts:1.51.1", + "io.grpc:grpc-api:1.51.1", + "io.grpc:grpc-auth:1.51.1", + "io.grpc:grpc-context:1.51.1", + "io.grpc:grpc-core:1.51.1", + "io.grpc:grpc-grpclb:1.51.1", + "io.grpc:grpc-netty-shaded:1.51.1", + "io.grpc:grpc-netty:1.51.1", + "io.grpc:grpc-okhttp:1.51.1", + "io.grpc:grpc-protobuf-lite:1.51.1", + "io.grpc:grpc-protobuf:1.51.1", + "io.grpc:grpc-rls:1.51.1", + "io.grpc:grpc-services:1.51.1", + "io.grpc:grpc-stub:1.51.1", + "io.grpc:grpc-testing:1.51.1", + "io.grpc:grpc-xds:1.51.1", + "io.netty:netty-buffer:4.1.79.Final", + "io.netty:netty-codec-http2:4.1.79.Final", + "io.netty:netty-codec-http:4.1.79.Final", + "io.netty:netty-codec-socks:4.1.79.Final", + "io.netty:netty-codec:4.1.79.Final", + "io.netty:netty-common:4.1.79.Final", + "io.netty:netty-handler-proxy:4.1.79.Final", + "io.netty:netty-handler:4.1.79.Final", + "io.netty:netty-resolver:4.1.79.Final", + "io.netty:netty-transport-native-unix-common:4.1.79.Final", + "io.netty:netty-transport:4.1.79.Final", + "io.opencensus:opencensus-api:0.28.0", + "io.opencensus:opencensus-contrib-http-util:0.28.0", + "io.opencensus:opencensus-proto:0.2.0", + "io.perfmark:perfmark-api:0.25.0", + "junit:junit:4.12", + "org.apache.httpcomponents:httpclient:4.5.13", + "org.apache.httpcomponents:httpcore:4.4.15", + "org.checkerframework:checker-qual:3.12.0", + "org.codehaus.mojo:animal-sniffer-annotations:1.21", + "org.conscrypt:conscrypt-openjdk-uber:2.5.2", + "org.hamcrest:hamcrest-core:1.3" + ], + "directDependencies": [ + "io.grpc:grpc-api:1.51.1", + "io.grpc:grpc-auth:1.51.1", + "io.grpc:grpc-context:1.51.1", + "io.grpc:grpc-core:1.51.1", + "io.grpc:grpc-grpclb:1.51.1", + "io.grpc:grpc-netty:1.51.1", + "io.grpc:grpc-okhttp:1.51.1", + "io.grpc:grpc-protobuf:1.51.1", + "io.grpc:grpc-rls:1.51.1", + "io.grpc:grpc-services:1.51.1", + "io.grpc:grpc-stub:1.51.1", + "io.grpc:grpc-testing:1.51.1", + "io.grpc:grpc-xds:1.51.1" + ], + "file": "v1/https/repo1.maven.org/maven2/io/grpc/grpc-all/1.51.1/grpc-all-1.51.1.jar", + "mirror_urls": [ + "https://repo1.maven.org/maven2/io/grpc/grpc-all/1.51.1/grpc-all-1.51.1.jar" + ], + "packages": [], + "sha256": "3053a6f62ac38fceccb96f5afa1e7dd9065e4953eda79f1dd175665b7d4116e6", + "url": "https://repo1.maven.org/maven2/io/grpc/grpc-all/1.51.1/grpc-all-1.51.1.jar" + }, + { + "coord": "io.grpc:grpc-all:jar:sources:1.51.1", + "dependencies": [ + "com.google.android:annotations:jar:sources:4.1.1.4", + "com.google.api.grpc:proto-google-common-protos:jar:sources:2.9.0", + "com.google.auth:google-auth-library-credentials:jar:sources:1.4.0", + "com.google.auth:google-auth-library-oauth2-http:jar:sources:1.4.0", + "com.google.auto.value:auto-value-annotations:jar:sources:1.9", + "com.google.code.findbugs:jsr305:jar:sources:3.0.2", + "com.google.code.gson:gson:jar:sources:2.9.0", + "com.google.errorprone:error_prone_annotations:jar:sources:2.14.0", + "com.google.guava:failureaccess:jar:sources:1.0.1", + "com.google.guava:guava:jar:sources:31.1-android", + "com.google.guava:listenablefuture:jar:sources:9999.0-empty-to-avoid-conflict-with-guava", + "com.google.http-client:google-http-client-gson:jar:sources:1.41.0", + "com.google.http-client:google-http-client:jar:sources:1.41.0", + "com.google.j2objc:j2objc-annotations:jar:sources:1.3", + "com.google.protobuf:protobuf-java-util:jar:sources:3.21.7", + "com.google.protobuf:protobuf-java:jar:sources:3.21.7", + "com.google.re2j:re2j:jar:sources:1.6", + "com.squareup.okio:okio:jar:sources:1.17.5", + "commons-codec:commons-codec:jar:sources:1.11", + "commons-logging:commons-logging:jar:sources:1.2", + "io.grpc:grpc-alts:jar:sources:1.51.1", + "io.grpc:grpc-api:jar:sources:1.51.1", + "io.grpc:grpc-auth:jar:sources:1.51.1", + "io.grpc:grpc-context:jar:sources:1.51.1", + "io.grpc:grpc-core:jar:sources:1.51.1", + "io.grpc:grpc-grpclb:jar:sources:1.51.1", + "io.grpc:grpc-netty-shaded:jar:sources:1.51.1", + "io.grpc:grpc-netty:jar:sources:1.51.1", + "io.grpc:grpc-okhttp:jar:sources:1.51.1", + "io.grpc:grpc-protobuf-lite:jar:sources:1.51.1", + "io.grpc:grpc-protobuf:jar:sources:1.51.1", + "io.grpc:grpc-rls:jar:sources:1.51.1", + "io.grpc:grpc-services:jar:sources:1.51.1", + "io.grpc:grpc-stub:jar:sources:1.51.1", + "io.grpc:grpc-testing:jar:sources:1.51.1", + "io.grpc:grpc-xds:jar:sources:1.51.1", + "io.netty:netty-buffer:jar:sources:4.1.79.Final", + "io.netty:netty-codec-http2:jar:sources:4.1.79.Final", + "io.netty:netty-codec-http:jar:sources:4.1.79.Final", + "io.netty:netty-codec-socks:jar:sources:4.1.79.Final", + "io.netty:netty-codec:jar:sources:4.1.79.Final", + "io.netty:netty-common:jar:sources:4.1.79.Final", + "io.netty:netty-handler-proxy:jar:sources:4.1.79.Final", + "io.netty:netty-handler:jar:sources:4.1.79.Final", + "io.netty:netty-resolver:jar:sources:4.1.79.Final", + "io.netty:netty-transport-native-unix-common:jar:sources:4.1.79.Final", + "io.netty:netty-transport:jar:sources:4.1.79.Final", + "io.opencensus:opencensus-api:jar:sources:0.28.0", + "io.opencensus:opencensus-contrib-http-util:jar:sources:0.28.0", + "io.opencensus:opencensus-proto:jar:sources:0.2.0", + "io.perfmark:perfmark-api:jar:sources:0.25.0", + "junit:junit:jar:sources:4.12", + "org.apache.httpcomponents:httpclient:jar:sources:4.5.13", + "org.apache.httpcomponents:httpcore:jar:sources:4.4.15", + "org.checkerframework:checker-qual:jar:sources:3.12.0", + "org.codehaus.mojo:animal-sniffer-annotations:jar:sources:1.21", + "org.conscrypt:conscrypt-openjdk-uber:jar:sources:2.5.2", + "org.hamcrest:hamcrest-core:jar:sources:1.3" + ], + "directDependencies": [ + "io.grpc:grpc-api:jar:sources:1.51.1", + "io.grpc:grpc-auth:jar:sources:1.51.1", + "io.grpc:grpc-context:jar:sources:1.51.1", + "io.grpc:grpc-core:jar:sources:1.51.1", + "io.grpc:grpc-grpclb:jar:sources:1.51.1", + "io.grpc:grpc-netty:jar:sources:1.51.1", + "io.grpc:grpc-okhttp:jar:sources:1.51.1", + "io.grpc:grpc-protobuf:jar:sources:1.51.1", + "io.grpc:grpc-rls:jar:sources:1.51.1", + "io.grpc:grpc-services:jar:sources:1.51.1", + "io.grpc:grpc-stub:jar:sources:1.51.1", + "io.grpc:grpc-testing:jar:sources:1.51.1", + "io.grpc:grpc-xds:jar:sources:1.51.1" + ], + "file": "v1/https/repo1.maven.org/maven2/io/grpc/grpc-all/1.51.1/grpc-all-1.51.1-sources.jar", + "mirror_urls": [ + "https://repo1.maven.org/maven2/io/grpc/grpc-all/1.51.1/grpc-all-1.51.1-sources.jar" + ], + "packages": [], + "sha256": "3f026f29f85b6344677ef064aba7fb2d51022c7468e0b1a41316576774a42576", + "url": "https://repo1.maven.org/maven2/io/grpc/grpc-all/1.51.1/grpc-all-1.51.1-sources.jar" + }, + { + "coord": "io.grpc:grpc-alts:1.51.1", + "dependencies": [ + "com.google.android:annotations:4.1.1.4", + "com.google.api.grpc:proto-google-common-protos:2.9.0", + "com.google.auth:google-auth-library-credentials:1.4.0", + "com.google.auth:google-auth-library-oauth2-http:1.4.0", + "com.google.auto.value:auto-value-annotations:1.9", + "com.google.code.findbugs:jsr305:3.0.2", + "com.google.code.gson:gson:2.9.0", + "com.google.errorprone:error_prone_annotations:2.14.0", + "com.google.guava:failureaccess:1.0.1", + "com.google.guava:guava:31.1-android", + "com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava", + "com.google.http-client:google-http-client-gson:1.41.0", + "com.google.http-client:google-http-client:1.41.0", + "com.google.j2objc:j2objc-annotations:1.3", + "com.google.protobuf:protobuf-java-util:3.21.7", + "com.google.protobuf:protobuf-java:3.21.7", + "commons-codec:commons-codec:1.11", + "commons-logging:commons-logging:1.2", + "io.grpc:grpc-api:1.51.1", + "io.grpc:grpc-auth:1.51.1", + "io.grpc:grpc-context:1.51.1", + "io.grpc:grpc-core:1.51.1", + "io.grpc:grpc-grpclb:1.51.1", + "io.grpc:grpc-netty-shaded:1.51.1", + "io.grpc:grpc-protobuf-lite:1.51.1", + "io.grpc:grpc-protobuf:1.51.1", + "io.grpc:grpc-stub:1.51.1", + "io.opencensus:opencensus-api:0.28.0", + "io.opencensus:opencensus-contrib-http-util:0.28.0", + "io.perfmark:perfmark-api:0.25.0", + "org.apache.httpcomponents:httpclient:4.5.13", + "org.apache.httpcomponents:httpcore:4.4.15", + "org.checkerframework:checker-qual:3.12.0", + "org.codehaus.mojo:animal-sniffer-annotations:1.21", + "org.conscrypt:conscrypt-openjdk-uber:2.5.2" + ], + "directDependencies": [ + "com.google.auth:google-auth-library-oauth2-http:1.4.0", + "com.google.guava:guava:31.1-android", + "com.google.protobuf:protobuf-java:3.21.7", + "io.grpc:grpc-auth:1.51.1", + "io.grpc:grpc-grpclb:1.51.1", + "io.grpc:grpc-netty-shaded:1.51.1", + "io.grpc:grpc-protobuf:1.51.1", + "io.grpc:grpc-stub:1.51.1", + "org.conscrypt:conscrypt-openjdk-uber:2.5.2" + ], + "file": "v1/https/repo1.maven.org/maven2/io/grpc/grpc-alts/1.51.1/grpc-alts-1.51.1.jar", + "mirror_urls": [ + "https://repo1.maven.org/maven2/io/grpc/grpc-alts/1.51.1/grpc-alts-1.51.1.jar" + ], + "packages": ["io.grpc.alts", "io.grpc.alts.internal"], + "sha256": "2bc4450158f57b5deb7141f1727f975dfa776b9ce46a2928f1e3648918c2dd99", + "url": "https://repo1.maven.org/maven2/io/grpc/grpc-alts/1.51.1/grpc-alts-1.51.1.jar" + }, + { + "coord": "io.grpc:grpc-alts:jar:sources:1.51.1", + "dependencies": [ + "com.google.android:annotations:jar:sources:4.1.1.4", + "com.google.api.grpc:proto-google-common-protos:jar:sources:2.9.0", + "com.google.auth:google-auth-library-credentials:jar:sources:1.4.0", + "com.google.auth:google-auth-library-oauth2-http:jar:sources:1.4.0", + "com.google.auto.value:auto-value-annotations:jar:sources:1.9", + "com.google.code.findbugs:jsr305:jar:sources:3.0.2", + "com.google.code.gson:gson:jar:sources:2.9.0", + "com.google.errorprone:error_prone_annotations:jar:sources:2.14.0", + "com.google.guava:failureaccess:jar:sources:1.0.1", + "com.google.guava:guava:jar:sources:31.1-android", + "com.google.guava:listenablefuture:jar:sources:9999.0-empty-to-avoid-conflict-with-guava", + "com.google.http-client:google-http-client-gson:jar:sources:1.41.0", + "com.google.http-client:google-http-client:jar:sources:1.41.0", + "com.google.j2objc:j2objc-annotations:jar:sources:1.3", + "com.google.protobuf:protobuf-java-util:jar:sources:3.21.7", + "com.google.protobuf:protobuf-java:jar:sources:3.21.7", + "commons-codec:commons-codec:jar:sources:1.11", + "commons-logging:commons-logging:jar:sources:1.2", + "io.grpc:grpc-api:jar:sources:1.51.1", + "io.grpc:grpc-auth:jar:sources:1.51.1", + "io.grpc:grpc-context:jar:sources:1.51.1", + "io.grpc:grpc-core:jar:sources:1.51.1", + "io.grpc:grpc-grpclb:jar:sources:1.51.1", + "io.grpc:grpc-netty-shaded:jar:sources:1.51.1", + "io.grpc:grpc-protobuf-lite:jar:sources:1.51.1", + "io.grpc:grpc-protobuf:jar:sources:1.51.1", + "io.grpc:grpc-stub:jar:sources:1.51.1", + "io.opencensus:opencensus-api:jar:sources:0.28.0", + "io.opencensus:opencensus-contrib-http-util:jar:sources:0.28.0", + "io.perfmark:perfmark-api:jar:sources:0.25.0", + "org.apache.httpcomponents:httpclient:jar:sources:4.5.13", + "org.apache.httpcomponents:httpcore:jar:sources:4.4.15", + "org.checkerframework:checker-qual:jar:sources:3.12.0", + "org.codehaus.mojo:animal-sniffer-annotations:jar:sources:1.21", + "org.conscrypt:conscrypt-openjdk-uber:jar:sources:2.5.2" + ], + "directDependencies": [ + "com.google.auth:google-auth-library-oauth2-http:jar:sources:1.4.0", + "com.google.guava:guava:jar:sources:31.1-android", + "com.google.protobuf:protobuf-java:jar:sources:3.21.7", + "io.grpc:grpc-auth:jar:sources:1.51.1", + "io.grpc:grpc-grpclb:jar:sources:1.51.1", + "io.grpc:grpc-netty-shaded:jar:sources:1.51.1", + "io.grpc:grpc-protobuf:jar:sources:1.51.1", + "io.grpc:grpc-stub:jar:sources:1.51.1", + "org.conscrypt:conscrypt-openjdk-uber:jar:sources:2.5.2" + ], + "file": "v1/https/repo1.maven.org/maven2/io/grpc/grpc-alts/1.51.1/grpc-alts-1.51.1-sources.jar", + "mirror_urls": [ + "https://repo1.maven.org/maven2/io/grpc/grpc-alts/1.51.1/grpc-alts-1.51.1-sources.jar" + ], + "packages": [], + "sha256": "b6110f3e48304edd7660e583004ca570f581cd016093b65a464008ad2bc3b89e", + "url": "https://repo1.maven.org/maven2/io/grpc/grpc-alts/1.51.1/grpc-alts-1.51.1-sources.jar" + }, + { + "coord": "io.grpc:grpc-api:1.51.1", + "dependencies": [ + "com.google.code.findbugs:jsr305:3.0.2", + "com.google.errorprone:error_prone_annotations:2.14.0", + "com.google.guava:failureaccess:1.0.1", + "com.google.guava:guava:31.1-android", + "com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava", + "com.google.j2objc:j2objc-annotations:1.3", + "io.grpc:grpc-context:1.51.1", + "org.checkerframework:checker-qual:3.12.0" + ], + "directDependencies": [ + "com.google.code.findbugs:jsr305:3.0.2", + "com.google.errorprone:error_prone_annotations:2.14.0", + "com.google.guava:guava:31.1-android", + "io.grpc:grpc-context:1.51.1" + ], + "file": "v1/https/repo1.maven.org/maven2/io/grpc/grpc-api/1.51.1/grpc-api-1.51.1.jar", + "mirror_urls": [ + "https://repo1.maven.org/maven2/io/grpc/grpc-api/1.51.1/grpc-api-1.51.1.jar" + ], + "packages": ["io.grpc"], + "sha256": "b38d9c8a8a3099f0f23d21c4cc638bedd86c9715a5663586125f68e9515de945", + "url": "https://repo1.maven.org/maven2/io/grpc/grpc-api/1.51.1/grpc-api-1.51.1.jar" + }, + { + "coord": "io.grpc:grpc-api:jar:sources:1.51.1", + "dependencies": [ + "com.google.code.findbugs:jsr305:jar:sources:3.0.2", + "com.google.errorprone:error_prone_annotations:jar:sources:2.14.0", + "com.google.guava:failureaccess:jar:sources:1.0.1", + "com.google.guava:guava:jar:sources:31.1-android", + "com.google.guava:listenablefuture:jar:sources:9999.0-empty-to-avoid-conflict-with-guava", + "com.google.j2objc:j2objc-annotations:jar:sources:1.3", + "io.grpc:grpc-context:jar:sources:1.51.1", + "org.checkerframework:checker-qual:jar:sources:3.12.0" + ], + "directDependencies": [ + "com.google.code.findbugs:jsr305:jar:sources:3.0.2", + "com.google.errorprone:error_prone_annotations:jar:sources:2.14.0", + "com.google.guava:guava:jar:sources:31.1-android", + "io.grpc:grpc-context:jar:sources:1.51.1" + ], + "file": "v1/https/repo1.maven.org/maven2/io/grpc/grpc-api/1.51.1/grpc-api-1.51.1-sources.jar", + "mirror_urls": [ + "https://repo1.maven.org/maven2/io/grpc/grpc-api/1.51.1/grpc-api-1.51.1-sources.jar" + ], + "packages": [], + "sha256": "9340b3bf59f54773cdaed72ed50c67ccda4eb545bd6baf2a7203ba4fdd705c40", + "url": "https://repo1.maven.org/maven2/io/grpc/grpc-api/1.51.1/grpc-api-1.51.1-sources.jar" + }, + { + "coord": "io.grpc:grpc-auth:1.51.1", + "dependencies": [ + "com.google.auth:google-auth-library-credentials:1.4.0", + "com.google.code.findbugs:jsr305:3.0.2", + "com.google.errorprone:error_prone_annotations:2.14.0", + "com.google.guava:failureaccess:1.0.1", + "com.google.guava:guava:31.1-android", + "com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava", + "com.google.j2objc:j2objc-annotations:1.3", + "io.grpc:grpc-api:1.51.1", + "io.grpc:grpc-context:1.51.1", + "org.checkerframework:checker-qual:3.12.0" + ], + "directDependencies": [ + "com.google.auth:google-auth-library-credentials:1.4.0", + "com.google.guava:guava:31.1-android", + "io.grpc:grpc-api:1.51.1" + ], + "file": "v1/https/repo1.maven.org/maven2/io/grpc/grpc-auth/1.51.1/grpc-auth-1.51.1.jar", + "mirror_urls": [ + "https://repo1.maven.org/maven2/io/grpc/grpc-auth/1.51.1/grpc-auth-1.51.1.jar" + ], + "packages": ["io.grpc.auth"], + "sha256": "5cb22a9aa5aa4a1e07c99a8011cbe2d1b4913ba43f1d770affc23f4086087a28", + "url": "https://repo1.maven.org/maven2/io/grpc/grpc-auth/1.51.1/grpc-auth-1.51.1.jar" + }, + { + "coord": "io.grpc:grpc-auth:jar:sources:1.51.1", + "dependencies": [ + "com.google.auth:google-auth-library-credentials:jar:sources:1.4.0", + "com.google.code.findbugs:jsr305:jar:sources:3.0.2", + "com.google.errorprone:error_prone_annotations:jar:sources:2.14.0", + "com.google.guava:failureaccess:jar:sources:1.0.1", + "com.google.guava:guava:jar:sources:31.1-android", + "com.google.guava:listenablefuture:jar:sources:9999.0-empty-to-avoid-conflict-with-guava", + "com.google.j2objc:j2objc-annotations:jar:sources:1.3", + "io.grpc:grpc-api:jar:sources:1.51.1", + "io.grpc:grpc-context:jar:sources:1.51.1", + "org.checkerframework:checker-qual:jar:sources:3.12.0" + ], + "directDependencies": [ + "com.google.auth:google-auth-library-credentials:jar:sources:1.4.0", + "com.google.guava:guava:jar:sources:31.1-android", + "io.grpc:grpc-api:jar:sources:1.51.1" + ], + "file": "v1/https/repo1.maven.org/maven2/io/grpc/grpc-auth/1.51.1/grpc-auth-1.51.1-sources.jar", + "mirror_urls": [ + "https://repo1.maven.org/maven2/io/grpc/grpc-auth/1.51.1/grpc-auth-1.51.1-sources.jar" + ], + "packages": [], + "sha256": "7c4e698bd39203c7705a18a8b6ea1d34f32a85ce94449fc077e85246daf3bd00", + "url": "https://repo1.maven.org/maven2/io/grpc/grpc-auth/1.51.1/grpc-auth-1.51.1-sources.jar" + }, + { + "coord": "io.grpc:grpc-context:1.51.1", + "dependencies": [], + "directDependencies": [], + "file": "v1/https/repo1.maven.org/maven2/io/grpc/grpc-context/1.51.1/grpc-context-1.51.1.jar", + "mirror_urls": [ + "https://repo1.maven.org/maven2/io/grpc/grpc-context/1.51.1/grpc-context-1.51.1.jar" + ], + "packages": ["io.grpc"], + "sha256": "d37d0c69abbb151884259dc113d50a93aa1f0870c4d7c808a033c5be2b735b0b", + "url": "https://repo1.maven.org/maven2/io/grpc/grpc-context/1.51.1/grpc-context-1.51.1.jar" + }, + { + "coord": "io.grpc:grpc-context:jar:sources:1.51.1", + "dependencies": [], + "directDependencies": [], + "file": "v1/https/repo1.maven.org/maven2/io/grpc/grpc-context/1.51.1/grpc-context-1.51.1-sources.jar", + "mirror_urls": [ + "https://repo1.maven.org/maven2/io/grpc/grpc-context/1.51.1/grpc-context-1.51.1-sources.jar" + ], + "packages": [], + "sha256": "bf85d637d9bd38746a9bbb37ed9db950b6f3143e2ee696e74de72b7951d1cc04", + "url": "https://repo1.maven.org/maven2/io/grpc/grpc-context/1.51.1/grpc-context-1.51.1-sources.jar" + }, + { + "coord": "io.grpc:grpc-core:1.51.1", + "dependencies": [ + "com.google.android:annotations:4.1.1.4", + "com.google.code.findbugs:jsr305:3.0.2", + "com.google.code.gson:gson:2.9.0", + "com.google.errorprone:error_prone_annotations:2.14.0", + "com.google.guava:failureaccess:1.0.1", + "com.google.guava:guava:31.1-android", + "com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava", + "com.google.j2objc:j2objc-annotations:1.3", + "io.grpc:grpc-api:1.51.1", + "io.grpc:grpc-context:1.51.1", + "io.perfmark:perfmark-api:0.25.0", + "org.checkerframework:checker-qual:3.12.0", + "org.codehaus.mojo:animal-sniffer-annotations:1.21" + ], + "directDependencies": [ + "com.google.android:annotations:4.1.1.4", + "com.google.code.gson:gson:2.9.0", + "com.google.errorprone:error_prone_annotations:2.14.0", + "com.google.guava:guava:31.1-android", + "io.grpc:grpc-api:1.51.1", + "io.perfmark:perfmark-api:0.25.0", + "org.codehaus.mojo:animal-sniffer-annotations:1.21" + ], + "file": "v1/https/repo1.maven.org/maven2/io/grpc/grpc-core/1.51.1/grpc-core-1.51.1.jar", + "mirror_urls": [ + "https://repo1.maven.org/maven2/io/grpc/grpc-core/1.51.1/grpc-core-1.51.1.jar" + ], + "packages": ["io.grpc.inprocess", "io.grpc.internal", "io.grpc.util"], + "sha256": "e309917b4eaf033b90857e4ef9bf474004910498f87a3e5785f2aa7a1cd26efe", + "url": "https://repo1.maven.org/maven2/io/grpc/grpc-core/1.51.1/grpc-core-1.51.1.jar" + }, + { + "coord": "io.grpc:grpc-core:jar:sources:1.51.1", + "dependencies": [ + "com.google.android:annotations:jar:sources:4.1.1.4", + "com.google.code.findbugs:jsr305:jar:sources:3.0.2", + "com.google.code.gson:gson:jar:sources:2.9.0", + "com.google.errorprone:error_prone_annotations:jar:sources:2.14.0", + "com.google.guava:failureaccess:jar:sources:1.0.1", + "com.google.guava:guava:jar:sources:31.1-android", + "com.google.guava:listenablefuture:jar:sources:9999.0-empty-to-avoid-conflict-with-guava", + "com.google.j2objc:j2objc-annotations:jar:sources:1.3", + "io.grpc:grpc-api:jar:sources:1.51.1", + "io.grpc:grpc-context:jar:sources:1.51.1", + "io.perfmark:perfmark-api:jar:sources:0.25.0", + "org.checkerframework:checker-qual:jar:sources:3.12.0", + "org.codehaus.mojo:animal-sniffer-annotations:jar:sources:1.21" + ], + "directDependencies": [ + "com.google.android:annotations:jar:sources:4.1.1.4", + "com.google.code.gson:gson:jar:sources:2.9.0", + "com.google.errorprone:error_prone_annotations:jar:sources:2.14.0", + "com.google.guava:guava:jar:sources:31.1-android", + "io.grpc:grpc-api:jar:sources:1.51.1", + "io.perfmark:perfmark-api:jar:sources:0.25.0", + "org.codehaus.mojo:animal-sniffer-annotations:jar:sources:1.21" + ], + "file": "v1/https/repo1.maven.org/maven2/io/grpc/grpc-core/1.51.1/grpc-core-1.51.1-sources.jar", + "mirror_urls": [ + "https://repo1.maven.org/maven2/io/grpc/grpc-core/1.51.1/grpc-core-1.51.1-sources.jar" + ], + "packages": [], + "sha256": "64c2a24d6a0b4ced6b507d47bbe4cec719c3e87ec60e51a8ef04426b2c2299bb", + "url": "https://repo1.maven.org/maven2/io/grpc/grpc-core/1.51.1/grpc-core-1.51.1-sources.jar" + }, + { + "coord": "io.grpc:grpc-grpclb:1.51.1", + "dependencies": [ + "com.google.android:annotations:4.1.1.4", + "com.google.api.grpc:proto-google-common-protos:2.9.0", + "com.google.code.findbugs:jsr305:3.0.2", + "com.google.code.gson:gson:2.9.0", + "com.google.errorprone:error_prone_annotations:2.14.0", + "com.google.guava:failureaccess:1.0.1", + "com.google.guava:guava:31.1-android", + "com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava", + "com.google.j2objc:j2objc-annotations:1.3", + "com.google.protobuf:protobuf-java-util:3.21.7", + "com.google.protobuf:protobuf-java:3.21.7", + "io.grpc:grpc-api:1.51.1", + "io.grpc:grpc-context:1.51.1", + "io.grpc:grpc-core:1.51.1", + "io.grpc:grpc-protobuf-lite:1.51.1", + "io.grpc:grpc-protobuf:1.51.1", + "io.grpc:grpc-stub:1.51.1", + "io.perfmark:perfmark-api:0.25.0", + "org.checkerframework:checker-qual:3.12.0", + "org.codehaus.mojo:animal-sniffer-annotations:1.21" + ], + "directDependencies": [ + "com.google.errorprone:error_prone_annotations:2.14.0", + "com.google.guava:guava:31.1-android", + "com.google.protobuf:protobuf-java-util:3.21.7", + "com.google.protobuf:protobuf-java:3.21.7", + "io.grpc:grpc-core:1.51.1", + "io.grpc:grpc-protobuf:1.51.1", + "io.grpc:grpc-stub:1.51.1" + ], + "file": "v1/https/repo1.maven.org/maven2/io/grpc/grpc-grpclb/1.51.1/grpc-grpclb-1.51.1.jar", + "mirror_urls": [ + "https://repo1.maven.org/maven2/io/grpc/grpc-grpclb/1.51.1/grpc-grpclb-1.51.1.jar" + ], + "packages": ["io.grpc.grpclb", "io.grpc.lb.v1"], + "sha256": "04cc8ea98ecc0ff75935f87b2ded618ef3c57de8bae53a2d5ac8a079401d1451", + "url": "https://repo1.maven.org/maven2/io/grpc/grpc-grpclb/1.51.1/grpc-grpclb-1.51.1.jar" + }, + { + "coord": "io.grpc:grpc-grpclb:jar:sources:1.51.1", + "dependencies": [ + "com.google.android:annotations:jar:sources:4.1.1.4", + "com.google.api.grpc:proto-google-common-protos:jar:sources:2.9.0", + "com.google.code.findbugs:jsr305:jar:sources:3.0.2", + "com.google.code.gson:gson:jar:sources:2.9.0", + "com.google.errorprone:error_prone_annotations:jar:sources:2.14.0", + "com.google.guava:failureaccess:jar:sources:1.0.1", + "com.google.guava:guava:jar:sources:31.1-android", + "com.google.guava:listenablefuture:jar:sources:9999.0-empty-to-avoid-conflict-with-guava", + "com.google.j2objc:j2objc-annotations:jar:sources:1.3", + "com.google.protobuf:protobuf-java-util:jar:sources:3.21.7", + "com.google.protobuf:protobuf-java:jar:sources:3.21.7", + "io.grpc:grpc-api:jar:sources:1.51.1", + "io.grpc:grpc-context:jar:sources:1.51.1", + "io.grpc:grpc-core:jar:sources:1.51.1", + "io.grpc:grpc-protobuf-lite:jar:sources:1.51.1", + "io.grpc:grpc-protobuf:jar:sources:1.51.1", + "io.grpc:grpc-stub:jar:sources:1.51.1", + "io.perfmark:perfmark-api:jar:sources:0.25.0", + "org.checkerframework:checker-qual:jar:sources:3.12.0", + "org.codehaus.mojo:animal-sniffer-annotations:jar:sources:1.21" + ], + "directDependencies": [ + "com.google.errorprone:error_prone_annotations:jar:sources:2.14.0", + "com.google.guava:guava:jar:sources:31.1-android", + "com.google.protobuf:protobuf-java-util:jar:sources:3.21.7", + "com.google.protobuf:protobuf-java:jar:sources:3.21.7", + "io.grpc:grpc-core:jar:sources:1.51.1", + "io.grpc:grpc-protobuf:jar:sources:1.51.1", + "io.grpc:grpc-stub:jar:sources:1.51.1" + ], + "file": "v1/https/repo1.maven.org/maven2/io/grpc/grpc-grpclb/1.51.1/grpc-grpclb-1.51.1-sources.jar", + "mirror_urls": [ + "https://repo1.maven.org/maven2/io/grpc/grpc-grpclb/1.51.1/grpc-grpclb-1.51.1-sources.jar" + ], + "packages": [], + "sha256": "36c57eddb3c4174364b540c5df3d5849c70ca5618ef521d308e2907acbd3c2e1", + "url": "https://repo1.maven.org/maven2/io/grpc/grpc-grpclb/1.51.1/grpc-grpclb-1.51.1-sources.jar" + }, + { + "coord": "io.grpc:grpc-netty-shaded:1.51.1", + "dependencies": [ + "com.google.android:annotations:4.1.1.4", + "com.google.code.findbugs:jsr305:3.0.2", + "com.google.code.gson:gson:2.9.0", + "com.google.errorprone:error_prone_annotations:2.14.0", + "com.google.guava:failureaccess:1.0.1", + "com.google.guava:guava:31.1-android", + "com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava", + "com.google.j2objc:j2objc-annotations:1.3", + "io.grpc:grpc-api:1.51.1", + "io.grpc:grpc-context:1.51.1", + "io.grpc:grpc-core:1.51.1", + "io.perfmark:perfmark-api:0.25.0", + "org.checkerframework:checker-qual:3.12.0", + "org.codehaus.mojo:animal-sniffer-annotations:1.21" + ], + "directDependencies": [ + "com.google.errorprone:error_prone_annotations:2.14.0", + "com.google.guava:guava:31.1-android", + "io.grpc:grpc-core:1.51.1", + "io.perfmark:perfmark-api:0.25.0" + ], + "file": "v1/https/repo1.maven.org/maven2/io/grpc/grpc-netty-shaded/1.51.1/grpc-netty-shaded-1.51.1.jar", + "mirror_urls": [ + "https://repo1.maven.org/maven2/io/grpc/grpc-netty-shaded/1.51.1/grpc-netty-shaded-1.51.1.jar" + ], + "packages": [ + "io.grpc.netty.shaded.io.grpc.netty", + "io.grpc.netty.shaded.io.netty.bootstrap", + "io.grpc.netty.shaded.io.netty.buffer", + "io.grpc.netty.shaded.io.netty.buffer.search", + "io.grpc.netty.shaded.io.netty.channel", + "io.grpc.netty.shaded.io.netty.channel.embedded", + "io.grpc.netty.shaded.io.netty.channel.epoll", + "io.grpc.netty.shaded.io.netty.channel.group", + "io.grpc.netty.shaded.io.netty.channel.internal", + "io.grpc.netty.shaded.io.netty.channel.local", + "io.grpc.netty.shaded.io.netty.channel.nio", + "io.grpc.netty.shaded.io.netty.channel.oio", + "io.grpc.netty.shaded.io.netty.channel.pool", + "io.grpc.netty.shaded.io.netty.channel.socket", + "io.grpc.netty.shaded.io.netty.channel.socket.nio", + "io.grpc.netty.shaded.io.netty.channel.socket.oio", + "io.grpc.netty.shaded.io.netty.channel.unix", + "io.grpc.netty.shaded.io.netty.handler.address", + "io.grpc.netty.shaded.io.netty.handler.codec", + "io.grpc.netty.shaded.io.netty.handler.codec.base64", + "io.grpc.netty.shaded.io.netty.handler.codec.bytes", + "io.grpc.netty.shaded.io.netty.handler.codec.compression", + "io.grpc.netty.shaded.io.netty.handler.codec.http", + "io.grpc.netty.shaded.io.netty.handler.codec.http.cookie", + "io.grpc.netty.shaded.io.netty.handler.codec.http.cors", + "io.grpc.netty.shaded.io.netty.handler.codec.http.multipart", + "io.grpc.netty.shaded.io.netty.handler.codec.http.websocketx", + "io.grpc.netty.shaded.io.netty.handler.codec.http.websocketx.extensions", + "io.grpc.netty.shaded.io.netty.handler.codec.http.websocketx.extensions.compression", + "io.grpc.netty.shaded.io.netty.handler.codec.http2", + "io.grpc.netty.shaded.io.netty.handler.codec.json", + "io.grpc.netty.shaded.io.netty.handler.codec.marshalling", + "io.grpc.netty.shaded.io.netty.handler.codec.protobuf", + "io.grpc.netty.shaded.io.netty.handler.codec.rtsp", + "io.grpc.netty.shaded.io.netty.handler.codec.serialization", + "io.grpc.netty.shaded.io.netty.handler.codec.socks", + "io.grpc.netty.shaded.io.netty.handler.codec.socksx", + "io.grpc.netty.shaded.io.netty.handler.codec.socksx.v4", + "io.grpc.netty.shaded.io.netty.handler.codec.socksx.v5", + "io.grpc.netty.shaded.io.netty.handler.codec.spdy", + "io.grpc.netty.shaded.io.netty.handler.codec.string", + "io.grpc.netty.shaded.io.netty.handler.codec.xml", + "io.grpc.netty.shaded.io.netty.handler.flow", + "io.grpc.netty.shaded.io.netty.handler.flush", + "io.grpc.netty.shaded.io.netty.handler.ipfilter", + "io.grpc.netty.shaded.io.netty.handler.logging", + "io.grpc.netty.shaded.io.netty.handler.pcap", + "io.grpc.netty.shaded.io.netty.handler.proxy", + "io.grpc.netty.shaded.io.netty.handler.ssl", + "io.grpc.netty.shaded.io.netty.handler.ssl.ocsp", + "io.grpc.netty.shaded.io.netty.handler.ssl.util", + "io.grpc.netty.shaded.io.netty.handler.stream", + "io.grpc.netty.shaded.io.netty.handler.timeout", + "io.grpc.netty.shaded.io.netty.handler.traffic", + "io.grpc.netty.shaded.io.netty.internal.tcnative", + "io.grpc.netty.shaded.io.netty.resolver", + "io.grpc.netty.shaded.io.netty.util", + "io.grpc.netty.shaded.io.netty.util.collection", + "io.grpc.netty.shaded.io.netty.util.concurrent", + "io.grpc.netty.shaded.io.netty.util.internal", + "io.grpc.netty.shaded.io.netty.util.internal.logging", + "io.grpc.netty.shaded.io.netty.util.internal.shaded.org.jctools.queues", + "io.grpc.netty.shaded.io.netty.util.internal.shaded.org.jctools.queues.atomic", + "io.grpc.netty.shaded.io.netty.util.internal.shaded.org.jctools.util", + "io.grpc.netty.shaded.io.netty.util.internal.svm" + ], + "sha256": "87600c4f5045c47c9138de8a3111f59ed0ebe6317918f47daa7e7b2423d1000e", + "url": "https://repo1.maven.org/maven2/io/grpc/grpc-netty-shaded/1.51.1/grpc-netty-shaded-1.51.1.jar" + }, + { + "coord": "io.grpc:grpc-netty-shaded:jar:sources:1.51.1", + "dependencies": [ + "com.google.android:annotations:jar:sources:4.1.1.4", + "com.google.code.findbugs:jsr305:jar:sources:3.0.2", + "com.google.code.gson:gson:jar:sources:2.9.0", + "com.google.errorprone:error_prone_annotations:jar:sources:2.14.0", + "com.google.guava:failureaccess:jar:sources:1.0.1", + "com.google.guava:guava:jar:sources:31.1-android", + "com.google.guava:listenablefuture:jar:sources:9999.0-empty-to-avoid-conflict-with-guava", + "com.google.j2objc:j2objc-annotations:jar:sources:1.3", + "io.grpc:grpc-api:jar:sources:1.51.1", + "io.grpc:grpc-context:jar:sources:1.51.1", + "io.grpc:grpc-core:jar:sources:1.51.1", + "io.perfmark:perfmark-api:jar:sources:0.25.0", + "org.checkerframework:checker-qual:jar:sources:3.12.0", + "org.codehaus.mojo:animal-sniffer-annotations:jar:sources:1.21" + ], + "directDependencies": [ + "com.google.errorprone:error_prone_annotations:jar:sources:2.14.0", + "com.google.guava:guava:jar:sources:31.1-android", + "io.grpc:grpc-core:jar:sources:1.51.1", + "io.perfmark:perfmark-api:jar:sources:0.25.0" + ], + "file": "v1/https/repo1.maven.org/maven2/io/grpc/grpc-netty-shaded/1.51.1/grpc-netty-shaded-1.51.1-sources.jar", + "mirror_urls": [ + "https://repo1.maven.org/maven2/io/grpc/grpc-netty-shaded/1.51.1/grpc-netty-shaded-1.51.1-sources.jar" + ], + "packages": [], + "sha256": "3f026f29f85b6344677ef064aba7fb2d51022c7468e0b1a41316576774a42576", + "url": "https://repo1.maven.org/maven2/io/grpc/grpc-netty-shaded/1.51.1/grpc-netty-shaded-1.51.1-sources.jar" + }, + { + "coord": "io.grpc:grpc-netty:1.51.1", + "dependencies": [ + "com.google.android:annotations:4.1.1.4", + "com.google.code.findbugs:jsr305:3.0.2", + "com.google.code.gson:gson:2.9.0", + "com.google.errorprone:error_prone_annotations:2.14.0", + "com.google.guava:failureaccess:1.0.1", + "com.google.guava:guava:31.1-android", + "com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava", + "com.google.j2objc:j2objc-annotations:1.3", + "io.grpc:grpc-api:1.51.1", + "io.grpc:grpc-context:1.51.1", + "io.grpc:grpc-core:1.51.1", + "io.netty:netty-buffer:4.1.79.Final", + "io.netty:netty-codec-http2:4.1.79.Final", + "io.netty:netty-codec-http:4.1.79.Final", + "io.netty:netty-codec-socks:4.1.79.Final", + "io.netty:netty-codec:4.1.79.Final", + "io.netty:netty-common:4.1.79.Final", + "io.netty:netty-handler-proxy:4.1.79.Final", + "io.netty:netty-handler:4.1.79.Final", + "io.netty:netty-resolver:4.1.79.Final", + "io.netty:netty-transport-native-unix-common:4.1.79.Final", + "io.netty:netty-transport:4.1.79.Final", + "io.perfmark:perfmark-api:0.25.0", + "org.checkerframework:checker-qual:3.12.0", + "org.codehaus.mojo:animal-sniffer-annotations:1.21" + ], + "directDependencies": [ + "com.google.errorprone:error_prone_annotations:2.14.0", + "com.google.guava:guava:31.1-android", + "io.grpc:grpc-core:1.51.1", + "io.netty:netty-codec-http2:4.1.79.Final", + "io.netty:netty-handler-proxy:4.1.79.Final", + "io.netty:netty-transport-native-unix-common:4.1.79.Final", + "io.perfmark:perfmark-api:0.25.0" + ], + "file": "v1/https/repo1.maven.org/maven2/io/grpc/grpc-netty/1.51.1/grpc-netty-1.51.1.jar", + "mirror_urls": [ + "https://repo1.maven.org/maven2/io/grpc/grpc-netty/1.51.1/grpc-netty-1.51.1.jar" + ], + "packages": ["io.grpc.netty"], + "sha256": "3b1df5ca3c45b010f00e2e7f76579b90920dfacb112466f36762555fbe5f1c9b", + "url": "https://repo1.maven.org/maven2/io/grpc/grpc-netty/1.51.1/grpc-netty-1.51.1.jar" + }, + { + "coord": "io.grpc:grpc-netty:jar:sources:1.51.1", + "dependencies": [ + "com.google.android:annotations:jar:sources:4.1.1.4", + "com.google.code.findbugs:jsr305:jar:sources:3.0.2", + "com.google.code.gson:gson:jar:sources:2.9.0", + "com.google.errorprone:error_prone_annotations:jar:sources:2.14.0", + "com.google.guava:failureaccess:jar:sources:1.0.1", + "com.google.guava:guava:jar:sources:31.1-android", + "com.google.guava:listenablefuture:jar:sources:9999.0-empty-to-avoid-conflict-with-guava", + "com.google.j2objc:j2objc-annotations:jar:sources:1.3", + "io.grpc:grpc-api:jar:sources:1.51.1", + "io.grpc:grpc-context:jar:sources:1.51.1", + "io.grpc:grpc-core:jar:sources:1.51.1", + "io.netty:netty-buffer:jar:sources:4.1.79.Final", + "io.netty:netty-codec-http2:jar:sources:4.1.79.Final", + "io.netty:netty-codec-http:jar:sources:4.1.79.Final", + "io.netty:netty-codec-socks:jar:sources:4.1.79.Final", + "io.netty:netty-codec:jar:sources:4.1.79.Final", + "io.netty:netty-common:jar:sources:4.1.79.Final", + "io.netty:netty-handler-proxy:jar:sources:4.1.79.Final", + "io.netty:netty-handler:jar:sources:4.1.79.Final", + "io.netty:netty-resolver:jar:sources:4.1.79.Final", + "io.netty:netty-transport-native-unix-common:jar:sources:4.1.79.Final", + "io.netty:netty-transport:jar:sources:4.1.79.Final", + "io.perfmark:perfmark-api:jar:sources:0.25.0", + "org.checkerframework:checker-qual:jar:sources:3.12.0", + "org.codehaus.mojo:animal-sniffer-annotations:jar:sources:1.21" + ], + "directDependencies": [ + "com.google.errorprone:error_prone_annotations:jar:sources:2.14.0", + "com.google.guava:guava:jar:sources:31.1-android", + "io.grpc:grpc-core:jar:sources:1.51.1", + "io.netty:netty-codec-http2:jar:sources:4.1.79.Final", + "io.netty:netty-handler-proxy:jar:sources:4.1.79.Final", + "io.netty:netty-transport-native-unix-common:jar:sources:4.1.79.Final", + "io.perfmark:perfmark-api:jar:sources:0.25.0" + ], + "file": "v1/https/repo1.maven.org/maven2/io/grpc/grpc-netty/1.51.1/grpc-netty-1.51.1-sources.jar", + "mirror_urls": [ + "https://repo1.maven.org/maven2/io/grpc/grpc-netty/1.51.1/grpc-netty-1.51.1-sources.jar" + ], + "packages": [], + "sha256": "b44948fa2cf150e0980714a1e3013c26f56b1f40854a70ce62d259ec2b32c1ed", + "url": "https://repo1.maven.org/maven2/io/grpc/grpc-netty/1.51.1/grpc-netty-1.51.1-sources.jar" + }, + { + "coord": "io.grpc:grpc-okhttp:1.51.1", + "dependencies": [ + "com.google.android:annotations:4.1.1.4", + "com.google.code.findbugs:jsr305:3.0.2", + "com.google.code.gson:gson:2.9.0", + "com.google.errorprone:error_prone_annotations:2.14.0", + "com.google.guava:failureaccess:1.0.1", + "com.google.guava:guava:31.1-android", + "com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava", + "com.google.j2objc:j2objc-annotations:1.3", + "com.squareup.okio:okio:1.17.5", + "io.grpc:grpc-api:1.51.1", + "io.grpc:grpc-context:1.51.1", + "io.grpc:grpc-core:1.51.1", + "io.perfmark:perfmark-api:0.25.0", + "org.checkerframework:checker-qual:3.12.0", + "org.codehaus.mojo:animal-sniffer-annotations:1.21" + ], + "directDependencies": [ + "com.google.guava:guava:31.1-android", + "com.squareup.okio:okio:1.17.5", + "io.grpc:grpc-core:1.51.1", + "io.perfmark:perfmark-api:0.25.0" + ], + "file": "v1/https/repo1.maven.org/maven2/io/grpc/grpc-okhttp/1.51.1/grpc-okhttp-1.51.1.jar", + "mirror_urls": [ + "https://repo1.maven.org/maven2/io/grpc/grpc-okhttp/1.51.1/grpc-okhttp-1.51.1.jar" + ], + "packages": [ + "io.grpc.okhttp", + "io.grpc.okhttp.internal", + "io.grpc.okhttp.internal.framed", + "io.grpc.okhttp.internal.proxy" + ], + "sha256": "05b99f2460a49db65cb32a534087c85d4634590de5fc3c5006885a6ed6851101", + "url": "https://repo1.maven.org/maven2/io/grpc/grpc-okhttp/1.51.1/grpc-okhttp-1.51.1.jar" + }, + { + "coord": "io.grpc:grpc-okhttp:jar:sources:1.51.1", + "dependencies": [ + "com.google.android:annotations:jar:sources:4.1.1.4", + "com.google.code.findbugs:jsr305:jar:sources:3.0.2", + "com.google.code.gson:gson:jar:sources:2.9.0", + "com.google.errorprone:error_prone_annotations:jar:sources:2.14.0", + "com.google.guava:failureaccess:jar:sources:1.0.1", + "com.google.guava:guava:jar:sources:31.1-android", + "com.google.guava:listenablefuture:jar:sources:9999.0-empty-to-avoid-conflict-with-guava", + "com.google.j2objc:j2objc-annotations:jar:sources:1.3", + "com.squareup.okio:okio:jar:sources:1.17.5", + "io.grpc:grpc-api:jar:sources:1.51.1", + "io.grpc:grpc-context:jar:sources:1.51.1", + "io.grpc:grpc-core:jar:sources:1.51.1", + "io.perfmark:perfmark-api:jar:sources:0.25.0", + "org.checkerframework:checker-qual:jar:sources:3.12.0", + "org.codehaus.mojo:animal-sniffer-annotations:jar:sources:1.21" + ], + "directDependencies": [ + "com.google.guava:guava:jar:sources:31.1-android", + "com.squareup.okio:okio:jar:sources:1.17.5", + "io.grpc:grpc-core:jar:sources:1.51.1", + "io.perfmark:perfmark-api:jar:sources:0.25.0" + ], + "file": "v1/https/repo1.maven.org/maven2/io/grpc/grpc-okhttp/1.51.1/grpc-okhttp-1.51.1-sources.jar", + "mirror_urls": [ + "https://repo1.maven.org/maven2/io/grpc/grpc-okhttp/1.51.1/grpc-okhttp-1.51.1-sources.jar" + ], + "packages": [], + "sha256": "72047a6d2a4abe6193fd2e7bf5ec6eb9253404644f15702a69dd87cdd561fb9b", + "url": "https://repo1.maven.org/maven2/io/grpc/grpc-okhttp/1.51.1/grpc-okhttp-1.51.1-sources.jar" + }, + { + "coord": "io.grpc:grpc-protobuf-lite:1.51.1", + "dependencies": [ + "com.google.code.findbugs:jsr305:3.0.2", + "com.google.errorprone:error_prone_annotations:2.14.0", + "com.google.guava:failureaccess:1.0.1", + "com.google.guava:guava:31.1-android", + "com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava", + "com.google.j2objc:j2objc-annotations:1.3", + "io.grpc:grpc-api:1.51.1", + "io.grpc:grpc-context:1.51.1", + "org.checkerframework:checker-qual:3.12.0" + ], + "directDependencies": [ + "com.google.code.findbugs:jsr305:3.0.2", + "com.google.guava:guava:31.1-android", + "io.grpc:grpc-api:1.51.1" + ], + "exclusions": ["com.google.protobuf:protobuf-javalite"], + "file": "v1/https/repo1.maven.org/maven2/io/grpc/grpc-protobuf-lite/1.51.1/grpc-protobuf-lite-1.51.1.jar", + "mirror_urls": [ + "https://repo1.maven.org/maven2/io/grpc/grpc-protobuf-lite/1.51.1/grpc-protobuf-lite-1.51.1.jar" + ], + "packages": ["io.grpc.protobuf.lite"], + "sha256": "9b13eab2b7c6e10b85547c1fedae0bb3513c0b3d2133bd46b9ed23bf2e319378", + "url": "https://repo1.maven.org/maven2/io/grpc/grpc-protobuf-lite/1.51.1/grpc-protobuf-lite-1.51.1.jar" + }, + { + "coord": "io.grpc:grpc-protobuf-lite:jar:sources:1.51.1", + "dependencies": [ + "com.google.code.findbugs:jsr305:jar:sources:3.0.2", + "com.google.errorprone:error_prone_annotations:jar:sources:2.14.0", + "com.google.guava:failureaccess:jar:sources:1.0.1", + "com.google.guava:guava:jar:sources:31.1-android", + "com.google.guava:listenablefuture:jar:sources:9999.0-empty-to-avoid-conflict-with-guava", + "com.google.j2objc:j2objc-annotations:jar:sources:1.3", + "io.grpc:grpc-api:jar:sources:1.51.1", + "io.grpc:grpc-context:jar:sources:1.51.1", + "org.checkerframework:checker-qual:jar:sources:3.12.0" + ], + "directDependencies": [ + "com.google.code.findbugs:jsr305:jar:sources:3.0.2", + "com.google.guava:guava:jar:sources:31.1-android", + "io.grpc:grpc-api:jar:sources:1.51.1" + ], + "exclusions": ["com.google.protobuf:protobuf-javalite"], + "file": "v1/https/repo1.maven.org/maven2/io/grpc/grpc-protobuf-lite/1.51.1/grpc-protobuf-lite-1.51.1-sources.jar", + "mirror_urls": [ + "https://repo1.maven.org/maven2/io/grpc/grpc-protobuf-lite/1.51.1/grpc-protobuf-lite-1.51.1-sources.jar" + ], + "packages": [], + "sha256": "aeff2e57a73890d0c996dafab7b6b04676c8c2b185070989e8bc62f6fa7f5e27", + "url": "https://repo1.maven.org/maven2/io/grpc/grpc-protobuf-lite/1.51.1/grpc-protobuf-lite-1.51.1-sources.jar" + }, + { + "coord": "io.grpc:grpc-protobuf:1.51.1", + "dependencies": [ + "com.google.api.grpc:proto-google-common-protos:2.9.0", + "com.google.code.findbugs:jsr305:3.0.2", + "com.google.errorprone:error_prone_annotations:2.14.0", + "com.google.guava:failureaccess:1.0.1", + "com.google.guava:guava:31.1-android", + "com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava", + "com.google.j2objc:j2objc-annotations:1.3", + "com.google.protobuf:protobuf-java:3.21.7", + "io.grpc:grpc-api:1.51.1", + "io.grpc:grpc-context:1.51.1", + "io.grpc:grpc-protobuf-lite:1.51.1", + "org.checkerframework:checker-qual:3.12.0" + ], + "directDependencies": [ + "com.google.api.grpc:proto-google-common-protos:2.9.0", + "com.google.code.findbugs:jsr305:3.0.2", + "com.google.guava:guava:31.1-android", + "com.google.protobuf:protobuf-java:3.21.7", + "io.grpc:grpc-api:1.51.1", + "io.grpc:grpc-protobuf-lite:1.51.1" + ], + "file": "v1/https/repo1.maven.org/maven2/io/grpc/grpc-protobuf/1.51.1/grpc-protobuf-1.51.1.jar", + "mirror_urls": [ + "https://repo1.maven.org/maven2/io/grpc/grpc-protobuf/1.51.1/grpc-protobuf-1.51.1.jar" + ], + "packages": ["io.grpc.protobuf"], + "sha256": "3881b3d2f6b7d863d603567fe490172174a84142354d2e851b0a31f9473931a7", + "url": "https://repo1.maven.org/maven2/io/grpc/grpc-protobuf/1.51.1/grpc-protobuf-1.51.1.jar" + }, + { + "coord": "io.grpc:grpc-protobuf:jar:sources:1.51.1", + "dependencies": [ + "com.google.api.grpc:proto-google-common-protos:jar:sources:2.9.0", + "com.google.code.findbugs:jsr305:jar:sources:3.0.2", + "com.google.errorprone:error_prone_annotations:jar:sources:2.14.0", + "com.google.guava:failureaccess:jar:sources:1.0.1", + "com.google.guava:guava:jar:sources:31.1-android", + "com.google.guava:listenablefuture:jar:sources:9999.0-empty-to-avoid-conflict-with-guava", + "com.google.j2objc:j2objc-annotations:jar:sources:1.3", + "com.google.protobuf:protobuf-java:jar:sources:3.21.7", + "io.grpc:grpc-api:jar:sources:1.51.1", + "io.grpc:grpc-context:jar:sources:1.51.1", + "io.grpc:grpc-protobuf-lite:jar:sources:1.51.1", + "org.checkerframework:checker-qual:jar:sources:3.12.0" + ], + "directDependencies": [ + "com.google.api.grpc:proto-google-common-protos:jar:sources:2.9.0", + "com.google.code.findbugs:jsr305:jar:sources:3.0.2", + "com.google.guava:guava:jar:sources:31.1-android", + "com.google.protobuf:protobuf-java:jar:sources:3.21.7", + "io.grpc:grpc-api:jar:sources:1.51.1", + "io.grpc:grpc-protobuf-lite:jar:sources:1.51.1" + ], + "file": "v1/https/repo1.maven.org/maven2/io/grpc/grpc-protobuf/1.51.1/grpc-protobuf-1.51.1-sources.jar", + "mirror_urls": [ + "https://repo1.maven.org/maven2/io/grpc/grpc-protobuf/1.51.1/grpc-protobuf-1.51.1-sources.jar" + ], + "packages": [], + "sha256": "db7911bab721f564f89f579da47e367300d428d3525b5ee98a4a1e6d5474bf99", + "url": "https://repo1.maven.org/maven2/io/grpc/grpc-protobuf/1.51.1/grpc-protobuf-1.51.1-sources.jar" + }, + { + "coord": "io.grpc:grpc-rls:1.51.1", + "dependencies": [ + "com.google.android:annotations:4.1.1.4", + "com.google.api.grpc:proto-google-common-protos:2.9.0", + "com.google.auto.value:auto-value-annotations:1.9", + "com.google.code.findbugs:jsr305:3.0.2", + "com.google.code.gson:gson:2.9.0", + "com.google.errorprone:error_prone_annotations:2.14.0", + "com.google.guava:failureaccess:1.0.1", + "com.google.guava:guava:31.1-android", + "com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava", + "com.google.j2objc:j2objc-annotations:1.3", + "com.google.protobuf:protobuf-java:3.21.7", + "io.grpc:grpc-api:1.51.1", + "io.grpc:grpc-context:1.51.1", + "io.grpc:grpc-core:1.51.1", + "io.grpc:grpc-protobuf-lite:1.51.1", + "io.grpc:grpc-protobuf:1.51.1", + "io.grpc:grpc-stub:1.51.1", + "io.perfmark:perfmark-api:0.25.0", + "org.checkerframework:checker-qual:3.12.0", + "org.codehaus.mojo:animal-sniffer-annotations:1.21" + ], + "directDependencies": [ + "com.google.auto.value:auto-value-annotations:1.9", + "com.google.guava:guava:31.1-android", + "io.grpc:grpc-core:1.51.1", + "io.grpc:grpc-protobuf:1.51.1", + "io.grpc:grpc-stub:1.51.1" + ], + "file": "v1/https/repo1.maven.org/maven2/io/grpc/grpc-rls/1.51.1/grpc-rls-1.51.1.jar", + "mirror_urls": [ + "https://repo1.maven.org/maven2/io/grpc/grpc-rls/1.51.1/grpc-rls-1.51.1.jar" + ], + "packages": ["io.grpc.lookup.v1", "io.grpc.rls"], + "sha256": "1c511b8f46352ff2f793058806149d6c5355fc9b91d7105919f6a610a63c6550", + "url": "https://repo1.maven.org/maven2/io/grpc/grpc-rls/1.51.1/grpc-rls-1.51.1.jar" + }, + { + "coord": "io.grpc:grpc-rls:jar:sources:1.51.1", + "dependencies": [ + "com.google.android:annotations:jar:sources:4.1.1.4", + "com.google.api.grpc:proto-google-common-protos:jar:sources:2.9.0", + "com.google.auto.value:auto-value-annotations:jar:sources:1.9", + "com.google.code.findbugs:jsr305:jar:sources:3.0.2", + "com.google.code.gson:gson:jar:sources:2.9.0", + "com.google.errorprone:error_prone_annotations:jar:sources:2.14.0", + "com.google.guava:failureaccess:jar:sources:1.0.1", + "com.google.guava:guava:jar:sources:31.1-android", + "com.google.guava:listenablefuture:jar:sources:9999.0-empty-to-avoid-conflict-with-guava", + "com.google.j2objc:j2objc-annotations:jar:sources:1.3", + "com.google.protobuf:protobuf-java:jar:sources:3.21.7", + "io.grpc:grpc-api:jar:sources:1.51.1", + "io.grpc:grpc-context:jar:sources:1.51.1", + "io.grpc:grpc-core:jar:sources:1.51.1", + "io.grpc:grpc-protobuf-lite:jar:sources:1.51.1", + "io.grpc:grpc-protobuf:jar:sources:1.51.1", + "io.grpc:grpc-stub:jar:sources:1.51.1", + "io.perfmark:perfmark-api:jar:sources:0.25.0", + "org.checkerframework:checker-qual:jar:sources:3.12.0", + "org.codehaus.mojo:animal-sniffer-annotations:jar:sources:1.21" + ], + "directDependencies": [ + "com.google.auto.value:auto-value-annotations:jar:sources:1.9", + "com.google.guava:guava:jar:sources:31.1-android", + "io.grpc:grpc-core:jar:sources:1.51.1", + "io.grpc:grpc-protobuf:jar:sources:1.51.1", + "io.grpc:grpc-stub:jar:sources:1.51.1" + ], + "file": "v1/https/repo1.maven.org/maven2/io/grpc/grpc-rls/1.51.1/grpc-rls-1.51.1-sources.jar", + "mirror_urls": [ + "https://repo1.maven.org/maven2/io/grpc/grpc-rls/1.51.1/grpc-rls-1.51.1-sources.jar" + ], + "packages": [], + "sha256": "50de48ffd085bcc3eba05e8a11ba4e8d20601731bc16e8e2db1e0ddb96144978", + "url": "https://repo1.maven.org/maven2/io/grpc/grpc-rls/1.51.1/grpc-rls-1.51.1-sources.jar" + }, + { + "coord": "io.grpc:grpc-services:1.51.1", + "dependencies": [ + "com.google.android:annotations:4.1.1.4", + "com.google.api.grpc:proto-google-common-protos:2.9.0", + "com.google.code.findbugs:jsr305:3.0.2", + "com.google.code.gson:gson:2.9.0", + "com.google.errorprone:error_prone_annotations:2.14.0", + "com.google.guava:failureaccess:1.0.1", + "com.google.guava:guava:31.1-android", + "com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava", + "com.google.j2objc:j2objc-annotations:1.3", + "com.google.protobuf:protobuf-java-util:3.21.7", + "com.google.protobuf:protobuf-java:3.21.7", + "io.grpc:grpc-api:1.51.1", + "io.grpc:grpc-context:1.51.1", + "io.grpc:grpc-core:1.51.1", + "io.grpc:grpc-protobuf-lite:1.51.1", + "io.grpc:grpc-protobuf:1.51.1", + "io.grpc:grpc-stub:1.51.1", + "io.perfmark:perfmark-api:0.25.0", + "org.checkerframework:checker-qual:3.12.0", + "org.codehaus.mojo:animal-sniffer-annotations:1.21" + ], + "directDependencies": [ + "com.google.errorprone:error_prone_annotations:2.14.0", + "com.google.guava:guava:31.1-android", + "com.google.protobuf:protobuf-java-util:3.21.7", + "io.grpc:grpc-core:1.51.1", + "io.grpc:grpc-protobuf:1.51.1", + "io.grpc:grpc-stub:1.51.1" + ], + "file": "v1/https/repo1.maven.org/maven2/io/grpc/grpc-services/1.51.1/grpc-services-1.51.1.jar", + "mirror_urls": [ + "https://repo1.maven.org/maven2/io/grpc/grpc-services/1.51.1/grpc-services-1.51.1.jar" + ], + "packages": [ + "io.grpc.binarylog.v1", + "io.grpc.channelz.v1", + "io.grpc.health.v1", + "io.grpc.protobuf.services", + "io.grpc.protobuf.services.internal", + "io.grpc.reflection.v1alpha", + "io.grpc.services" + ], + "sha256": "59d054f885856a47939b1956857c5af8ea0567f78d4c7bc48213ad436af30d75", + "url": "https://repo1.maven.org/maven2/io/grpc/grpc-services/1.51.1/grpc-services-1.51.1.jar" + }, + { + "coord": "io.grpc:grpc-services:jar:sources:1.51.1", + "dependencies": [ + "com.google.android:annotations:jar:sources:4.1.1.4", + "com.google.api.grpc:proto-google-common-protos:jar:sources:2.9.0", + "com.google.code.findbugs:jsr305:jar:sources:3.0.2", + "com.google.code.gson:gson:jar:sources:2.9.0", + "com.google.errorprone:error_prone_annotations:jar:sources:2.14.0", + "com.google.guava:failureaccess:jar:sources:1.0.1", + "com.google.guava:guava:jar:sources:31.1-android", + "com.google.guava:listenablefuture:jar:sources:9999.0-empty-to-avoid-conflict-with-guava", + "com.google.j2objc:j2objc-annotations:jar:sources:1.3", + "com.google.protobuf:protobuf-java-util:jar:sources:3.21.7", + "com.google.protobuf:protobuf-java:jar:sources:3.21.7", + "io.grpc:grpc-api:jar:sources:1.51.1", + "io.grpc:grpc-context:jar:sources:1.51.1", + "io.grpc:grpc-core:jar:sources:1.51.1", + "io.grpc:grpc-protobuf-lite:jar:sources:1.51.1", + "io.grpc:grpc-protobuf:jar:sources:1.51.1", + "io.grpc:grpc-stub:jar:sources:1.51.1", + "io.perfmark:perfmark-api:jar:sources:0.25.0", + "org.checkerframework:checker-qual:jar:sources:3.12.0", + "org.codehaus.mojo:animal-sniffer-annotations:jar:sources:1.21" + ], + "directDependencies": [ + "com.google.errorprone:error_prone_annotations:jar:sources:2.14.0", + "com.google.guava:guava:jar:sources:31.1-android", + "com.google.protobuf:protobuf-java-util:jar:sources:3.21.7", + "io.grpc:grpc-core:jar:sources:1.51.1", + "io.grpc:grpc-protobuf:jar:sources:1.51.1", + "io.grpc:grpc-stub:jar:sources:1.51.1" + ], + "file": "v1/https/repo1.maven.org/maven2/io/grpc/grpc-services/1.51.1/grpc-services-1.51.1-sources.jar", + "mirror_urls": [ + "https://repo1.maven.org/maven2/io/grpc/grpc-services/1.51.1/grpc-services-1.51.1-sources.jar" + ], + "packages": [], + "sha256": "e33d8a733e50067afb83e7b90f098f24e449bc2cab81a0a763897a6264c7771c", + "url": "https://repo1.maven.org/maven2/io/grpc/grpc-services/1.51.1/grpc-services-1.51.1-sources.jar" + }, + { + "coord": "io.grpc:grpc-stub:1.51.1", + "dependencies": [ + "com.google.code.findbugs:jsr305:3.0.2", + "com.google.errorprone:error_prone_annotations:2.14.0", + "com.google.guava:failureaccess:1.0.1", + "com.google.guava:guava:31.1-android", + "com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava", + "com.google.j2objc:j2objc-annotations:1.3", + "io.grpc:grpc-api:1.51.1", + "io.grpc:grpc-context:1.51.1", + "org.checkerframework:checker-qual:3.12.0" + ], + "directDependencies": [ + "com.google.errorprone:error_prone_annotations:2.14.0", + "com.google.guava:guava:31.1-android", + "io.grpc:grpc-api:1.51.1" + ], + "file": "v1/https/repo1.maven.org/maven2/io/grpc/grpc-stub/1.51.1/grpc-stub-1.51.1.jar", + "mirror_urls": [ + "https://repo1.maven.org/maven2/io/grpc/grpc-stub/1.51.1/grpc-stub-1.51.1.jar" + ], + "packages": ["io.grpc.stub", "io.grpc.stub.annotations"], + "sha256": "c5f8f68f301dac328e89d18adf2a6aaa54546b1a0e7c32b77c60f30aa9c90085", + "url": "https://repo1.maven.org/maven2/io/grpc/grpc-stub/1.51.1/grpc-stub-1.51.1.jar" + }, + { + "coord": "io.grpc:grpc-stub:jar:sources:1.51.1", + "dependencies": [ + "com.google.code.findbugs:jsr305:jar:sources:3.0.2", + "com.google.errorprone:error_prone_annotations:jar:sources:2.14.0", + "com.google.guava:failureaccess:jar:sources:1.0.1", + "com.google.guava:guava:jar:sources:31.1-android", + "com.google.guava:listenablefuture:jar:sources:9999.0-empty-to-avoid-conflict-with-guava", + "com.google.j2objc:j2objc-annotations:jar:sources:1.3", + "io.grpc:grpc-api:jar:sources:1.51.1", + "io.grpc:grpc-context:jar:sources:1.51.1", + "org.checkerframework:checker-qual:jar:sources:3.12.0" + ], + "directDependencies": [ + "com.google.errorprone:error_prone_annotations:jar:sources:2.14.0", + "com.google.guava:guava:jar:sources:31.1-android", + "io.grpc:grpc-api:jar:sources:1.51.1" + ], + "file": "v1/https/repo1.maven.org/maven2/io/grpc/grpc-stub/1.51.1/grpc-stub-1.51.1-sources.jar", + "mirror_urls": [ + "https://repo1.maven.org/maven2/io/grpc/grpc-stub/1.51.1/grpc-stub-1.51.1-sources.jar" + ], + "packages": [], + "sha256": "c4f19353cf037c9e8c7d490d1138b09eb534b3347e74260de1743adba96eba36", + "url": "https://repo1.maven.org/maven2/io/grpc/grpc-stub/1.51.1/grpc-stub-1.51.1-sources.jar" + }, + { + "coord": "io.grpc:grpc-testing:1.51.1", + "dependencies": [ + "com.google.android:annotations:4.1.1.4", + "com.google.code.findbugs:jsr305:3.0.2", + "com.google.code.gson:gson:2.9.0", + "com.google.errorprone:error_prone_annotations:2.14.0", + "com.google.guava:failureaccess:1.0.1", + "com.google.guava:guava:31.1-android", + "com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava", + "com.google.j2objc:j2objc-annotations:1.3", + "io.grpc:grpc-api:1.51.1", + "io.grpc:grpc-context:1.51.1", + "io.grpc:grpc-core:1.51.1", + "io.grpc:grpc-stub:1.51.1", + "io.perfmark:perfmark-api:0.25.0", + "junit:junit:4.12", + "org.checkerframework:checker-qual:3.12.0", + "org.codehaus.mojo:animal-sniffer-annotations:1.21", + "org.hamcrest:hamcrest-core:1.3" + ], + "directDependencies": [ + "io.grpc:grpc-context:1.51.1", + "io.grpc:grpc-core:1.51.1", + "io.grpc:grpc-stub:1.51.1", + "junit:junit:4.12" + ], + "file": "v1/https/repo1.maven.org/maven2/io/grpc/grpc-testing/1.51.1/grpc-testing-1.51.1.jar", + "mirror_urls": [ + "https://repo1.maven.org/maven2/io/grpc/grpc-testing/1.51.1/grpc-testing-1.51.1.jar" + ], + "packages": [ + "io.grpc.internal", + "io.grpc.internal.testing", + "io.grpc.testing" + ], + "sha256": "5128c09df2bdf67ee4a6cb89516e868aee2bd6ab503c22d8d7c802b34145dd8a", + "url": "https://repo1.maven.org/maven2/io/grpc/grpc-testing/1.51.1/grpc-testing-1.51.1.jar" + }, + { + "coord": "io.grpc:grpc-testing:jar:sources:1.51.1", + "dependencies": [ + "com.google.android:annotations:jar:sources:4.1.1.4", + "com.google.code.findbugs:jsr305:jar:sources:3.0.2", + "com.google.code.gson:gson:jar:sources:2.9.0", + "com.google.errorprone:error_prone_annotations:jar:sources:2.14.0", + "com.google.guava:failureaccess:jar:sources:1.0.1", + "com.google.guava:guava:jar:sources:31.1-android", + "com.google.guava:listenablefuture:jar:sources:9999.0-empty-to-avoid-conflict-with-guava", + "com.google.j2objc:j2objc-annotations:jar:sources:1.3", + "io.grpc:grpc-api:jar:sources:1.51.1", + "io.grpc:grpc-context:jar:sources:1.51.1", + "io.grpc:grpc-core:jar:sources:1.51.1", + "io.grpc:grpc-stub:jar:sources:1.51.1", + "io.perfmark:perfmark-api:jar:sources:0.25.0", + "junit:junit:jar:sources:4.12", + "org.checkerframework:checker-qual:jar:sources:3.12.0", + "org.codehaus.mojo:animal-sniffer-annotations:jar:sources:1.21", + "org.hamcrest:hamcrest-core:jar:sources:1.3" + ], + "directDependencies": [ + "io.grpc:grpc-context:jar:sources:1.51.1", + "io.grpc:grpc-core:jar:sources:1.51.1", + "io.grpc:grpc-stub:jar:sources:1.51.1", + "junit:junit:jar:sources:4.12" + ], + "file": "v1/https/repo1.maven.org/maven2/io/grpc/grpc-testing/1.51.1/grpc-testing-1.51.1-sources.jar", + "mirror_urls": [ + "https://repo1.maven.org/maven2/io/grpc/grpc-testing/1.51.1/grpc-testing-1.51.1-sources.jar" + ], + "packages": [], + "sha256": "5a34dfc8c0d7a29d0267abec068434a158f1a0d2a877f7b60a98aee96a542303", + "url": "https://repo1.maven.org/maven2/io/grpc/grpc-testing/1.51.1/grpc-testing-1.51.1-sources.jar" + }, + { + "coord": "io.grpc:grpc-xds:1.51.1", + "dependencies": [ + "com.google.android:annotations:4.1.1.4", + "com.google.api.grpc:proto-google-common-protos:2.9.0", + "com.google.auth:google-auth-library-credentials:1.4.0", + "com.google.auth:google-auth-library-oauth2-http:1.4.0", + "com.google.auto.value:auto-value-annotations:1.9", + "com.google.code.findbugs:jsr305:3.0.2", + "com.google.code.gson:gson:2.9.0", + "com.google.errorprone:error_prone_annotations:2.14.0", + "com.google.guava:failureaccess:1.0.1", + "com.google.guava:guava:31.1-android", + "com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava", + "com.google.http-client:google-http-client-gson:1.41.0", + "com.google.http-client:google-http-client:1.41.0", + "com.google.j2objc:j2objc-annotations:1.3", + "com.google.protobuf:protobuf-java-util:3.21.7", + "com.google.protobuf:protobuf-java:3.21.7", + "com.google.re2j:re2j:1.6", + "commons-codec:commons-codec:1.11", + "commons-logging:commons-logging:1.2", + "io.grpc:grpc-alts:1.51.1", + "io.grpc:grpc-api:1.51.1", + "io.grpc:grpc-auth:1.51.1", + "io.grpc:grpc-context:1.51.1", + "io.grpc:grpc-core:1.51.1", + "io.grpc:grpc-grpclb:1.51.1", + "io.grpc:grpc-netty-shaded:1.51.1", + "io.grpc:grpc-protobuf-lite:1.51.1", + "io.grpc:grpc-protobuf:1.51.1", + "io.grpc:grpc-services:1.51.1", + "io.grpc:grpc-stub:1.51.1", + "io.opencensus:opencensus-api:0.28.0", + "io.opencensus:opencensus-contrib-http-util:0.28.0", + "io.opencensus:opencensus-proto:0.2.0", + "io.perfmark:perfmark-api:0.25.0", + "org.apache.httpcomponents:httpclient:4.5.13", + "org.apache.httpcomponents:httpcore:4.4.15", + "org.checkerframework:checker-qual:3.12.0", + "org.codehaus.mojo:animal-sniffer-annotations:1.21", + "org.conscrypt:conscrypt-openjdk-uber:2.5.2" + ], + "directDependencies": [ + "com.google.auto.value:auto-value-annotations:1.9", + "com.google.code.gson:gson:2.9.0", + "com.google.protobuf:protobuf-java-util:3.21.7", + "com.google.re2j:re2j:1.6", + "io.grpc:grpc-alts:1.51.1", + "io.grpc:grpc-auth:1.51.1", + "io.grpc:grpc-core:1.51.1", + "io.grpc:grpc-netty-shaded:1.51.1", + "io.grpc:grpc-protobuf:1.51.1", + "io.grpc:grpc-services:1.51.1", + "io.grpc:grpc-stub:1.51.1", + "io.opencensus:opencensus-proto:0.2.0" + ], + "file": "v1/https/repo1.maven.org/maven2/io/grpc/grpc-xds/1.51.1/grpc-xds-1.51.1.jar", + "mirror_urls": [ + "https://repo1.maven.org/maven2/io/grpc/grpc-xds/1.51.1/grpc-xds-1.51.1.jar" + ], + "packages": [ + "io.grpc.xds", + "io.grpc.xds.internal", + "io.grpc.xds.internal.rbac.engine", + "io.grpc.xds.internal.security", + "io.grpc.xds.internal.security.certprovider", + "io.grpc.xds.internal.security.trust", + "io.grpc.xds.orca", + "io.grpc.xds.shaded.com.github.udpa.udpa.type.v1", + "io.grpc.xds.shaded.com.github.xds.core.v3", + "io.grpc.xds.shaded.com.github.xds.data.orca.v3", + "io.grpc.xds.shaded.com.github.xds.service.orca.v3", + "io.grpc.xds.shaded.com.github.xds.type.matcher.v3", + "io.grpc.xds.shaded.com.github.xds.type.v3", + "io.grpc.xds.shaded.com.google.api.expr.v1alpha1", + "io.grpc.xds.shaded.envoy.annotations", + "io.grpc.xds.shaded.io.envoyproxy.envoy.admin.v3", + "io.grpc.xds.shaded.io.envoyproxy.envoy.api.v2", + "io.grpc.xds.shaded.io.envoyproxy.envoy.api.v2.auth", + "io.grpc.xds.shaded.io.envoyproxy.envoy.api.v2.cluster", + "io.grpc.xds.shaded.io.envoyproxy.envoy.api.v2.core", + "io.grpc.xds.shaded.io.envoyproxy.envoy.api.v2.endpoint", + "io.grpc.xds.shaded.io.envoyproxy.envoy.api.v2.listener", + "io.grpc.xds.shaded.io.envoyproxy.envoy.api.v2.route", + "io.grpc.xds.shaded.io.envoyproxy.envoy.config.accesslog.v3", + "io.grpc.xds.shaded.io.envoyproxy.envoy.config.bootstrap.v3", + "io.grpc.xds.shaded.io.envoyproxy.envoy.config.cluster.aggregate.v2alpha", + "io.grpc.xds.shaded.io.envoyproxy.envoy.config.cluster.v3", + "io.grpc.xds.shaded.io.envoyproxy.envoy.config.core.v3", + "io.grpc.xds.shaded.io.envoyproxy.envoy.config.endpoint.v3", + "io.grpc.xds.shaded.io.envoyproxy.envoy.config.filter.accesslog.v2", + "io.grpc.xds.shaded.io.envoyproxy.envoy.config.filter.fault.v2", + "io.grpc.xds.shaded.io.envoyproxy.envoy.config.filter.http.fault.v2", + "io.grpc.xds.shaded.io.envoyproxy.envoy.config.filter.http.router.v2", + "io.grpc.xds.shaded.io.envoyproxy.envoy.config.filter.network.http_connection_manager.v2", + "io.grpc.xds.shaded.io.envoyproxy.envoy.config.listener.v2", + "io.grpc.xds.shaded.io.envoyproxy.envoy.config.listener.v3", + "io.grpc.xds.shaded.io.envoyproxy.envoy.config.metrics.v3", + "io.grpc.xds.shaded.io.envoyproxy.envoy.config.overload.v3", + "io.grpc.xds.shaded.io.envoyproxy.envoy.config.rbac.v2", + "io.grpc.xds.shaded.io.envoyproxy.envoy.config.rbac.v3", + "io.grpc.xds.shaded.io.envoyproxy.envoy.config.route.v3", + "io.grpc.xds.shaded.io.envoyproxy.envoy.config.trace.v2", + "io.grpc.xds.shaded.io.envoyproxy.envoy.config.trace.v3", + "io.grpc.xds.shaded.io.envoyproxy.envoy.extensions.clusters.aggregate.v3", + "io.grpc.xds.shaded.io.envoyproxy.envoy.extensions.filters.common.fault.v3", + "io.grpc.xds.shaded.io.envoyproxy.envoy.extensions.filters.http.fault.v3", + "io.grpc.xds.shaded.io.envoyproxy.envoy.extensions.filters.http.rbac.v3", + "io.grpc.xds.shaded.io.envoyproxy.envoy.extensions.filters.http.router.v3", + "io.grpc.xds.shaded.io.envoyproxy.envoy.extensions.filters.network.http_connection_manager.v3", + "io.grpc.xds.shaded.io.envoyproxy.envoy.extensions.load_balancing_policies.least_request.v3", + "io.grpc.xds.shaded.io.envoyproxy.envoy.extensions.load_balancing_policies.ring_hash.v3", + "io.grpc.xds.shaded.io.envoyproxy.envoy.extensions.load_balancing_policies.round_robin.v3", + "io.grpc.xds.shaded.io.envoyproxy.envoy.extensions.load_balancing_policies.wrr_locality.v3", + "io.grpc.xds.shaded.io.envoyproxy.envoy.extensions.transport_sockets.tls.v3", + "io.grpc.xds.shaded.io.envoyproxy.envoy.service.discovery.v2", + "io.grpc.xds.shaded.io.envoyproxy.envoy.service.discovery.v3", + "io.grpc.xds.shaded.io.envoyproxy.envoy.service.load_stats.v2", + "io.grpc.xds.shaded.io.envoyproxy.envoy.service.load_stats.v3", + "io.grpc.xds.shaded.io.envoyproxy.envoy.service.status.v3", + "io.grpc.xds.shaded.io.envoyproxy.envoy.type", + "io.grpc.xds.shaded.io.envoyproxy.envoy.type.http.v3", + "io.grpc.xds.shaded.io.envoyproxy.envoy.type.matcher", + "io.grpc.xds.shaded.io.envoyproxy.envoy.type.matcher.v3", + "io.grpc.xds.shaded.io.envoyproxy.envoy.type.metadata.v2", + "io.grpc.xds.shaded.io.envoyproxy.envoy.type.metadata.v3", + "io.grpc.xds.shaded.io.envoyproxy.envoy.type.tracing.v2", + "io.grpc.xds.shaded.io.envoyproxy.envoy.type.tracing.v3", + "io.grpc.xds.shaded.io.envoyproxy.envoy.type.v3", + "io.grpc.xds.shaded.io.envoyproxy.pgv.validate", + "io.grpc.xds.shaded.udpa.annotations", + "io.grpc.xds.shaded.xds.annotations.v3" + ], + "sha256": "a7c8aaa13a06a31f77299fddacb3d3516cbadb897527d1dd6a5298f4c670f27f", + "url": "https://repo1.maven.org/maven2/io/grpc/grpc-xds/1.51.1/grpc-xds-1.51.1.jar" + }, + { + "coord": "io.grpc:grpc-xds:jar:sources:1.51.1", + "dependencies": [ + "com.google.android:annotations:jar:sources:4.1.1.4", + "com.google.api.grpc:proto-google-common-protos:jar:sources:2.9.0", + "com.google.auth:google-auth-library-credentials:jar:sources:1.4.0", + "com.google.auth:google-auth-library-oauth2-http:jar:sources:1.4.0", + "com.google.auto.value:auto-value-annotations:jar:sources:1.9", + "com.google.code.findbugs:jsr305:jar:sources:3.0.2", + "com.google.code.gson:gson:jar:sources:2.9.0", + "com.google.errorprone:error_prone_annotations:jar:sources:2.14.0", + "com.google.guava:failureaccess:jar:sources:1.0.1", + "com.google.guava:guava:jar:sources:31.1-android", + "com.google.guava:listenablefuture:jar:sources:9999.0-empty-to-avoid-conflict-with-guava", + "com.google.http-client:google-http-client-gson:jar:sources:1.41.0", + "com.google.http-client:google-http-client:jar:sources:1.41.0", + "com.google.j2objc:j2objc-annotations:jar:sources:1.3", + "com.google.protobuf:protobuf-java-util:jar:sources:3.21.7", + "com.google.protobuf:protobuf-java:jar:sources:3.21.7", + "com.google.re2j:re2j:jar:sources:1.6", + "commons-codec:commons-codec:jar:sources:1.11", + "commons-logging:commons-logging:jar:sources:1.2", + "io.grpc:grpc-alts:jar:sources:1.51.1", + "io.grpc:grpc-api:jar:sources:1.51.1", + "io.grpc:grpc-auth:jar:sources:1.51.1", + "io.grpc:grpc-context:jar:sources:1.51.1", + "io.grpc:grpc-core:jar:sources:1.51.1", + "io.grpc:grpc-grpclb:jar:sources:1.51.1", + "io.grpc:grpc-netty-shaded:jar:sources:1.51.1", + "io.grpc:grpc-protobuf-lite:jar:sources:1.51.1", + "io.grpc:grpc-protobuf:jar:sources:1.51.1", + "io.grpc:grpc-services:jar:sources:1.51.1", + "io.grpc:grpc-stub:jar:sources:1.51.1", + "io.opencensus:opencensus-api:jar:sources:0.28.0", + "io.opencensus:opencensus-contrib-http-util:jar:sources:0.28.0", + "io.opencensus:opencensus-proto:jar:sources:0.2.0", + "io.perfmark:perfmark-api:jar:sources:0.25.0", + "org.apache.httpcomponents:httpclient:jar:sources:4.5.13", + "org.apache.httpcomponents:httpcore:jar:sources:4.4.15", + "org.checkerframework:checker-qual:jar:sources:3.12.0", + "org.codehaus.mojo:animal-sniffer-annotations:jar:sources:1.21", + "org.conscrypt:conscrypt-openjdk-uber:jar:sources:2.5.2" + ], + "directDependencies": [ + "com.google.auto.value:auto-value-annotations:jar:sources:1.9", + "com.google.code.gson:gson:jar:sources:2.9.0", + "com.google.protobuf:protobuf-java-util:jar:sources:3.21.7", + "com.google.re2j:re2j:jar:sources:1.6", + "io.grpc:grpc-alts:jar:sources:1.51.1", + "io.grpc:grpc-auth:jar:sources:1.51.1", + "io.grpc:grpc-core:jar:sources:1.51.1", + "io.grpc:grpc-netty-shaded:jar:sources:1.51.1", + "io.grpc:grpc-protobuf:jar:sources:1.51.1", + "io.grpc:grpc-services:jar:sources:1.51.1", + "io.grpc:grpc-stub:jar:sources:1.51.1", + "io.opencensus:opencensus-proto:jar:sources:0.2.0" + ], + "file": "v1/https/repo1.maven.org/maven2/io/grpc/grpc-xds/1.51.1/grpc-xds-1.51.1-sources.jar", + "mirror_urls": [ + "https://repo1.maven.org/maven2/io/grpc/grpc-xds/1.51.1/grpc-xds-1.51.1-sources.jar" + ], + "packages": [], + "sha256": "f25d34a37c9a00f4d3e6109de8ccf748073fb91157670685c51b41afff30d9b9", + "url": "https://repo1.maven.org/maven2/io/grpc/grpc-xds/1.51.1/grpc-xds-1.51.1-sources.jar" + }, + { + "coord": "io.netty:netty-buffer:4.1.79.Final", + "dependencies": ["io.netty:netty-common:4.1.79.Final"], + "directDependencies": ["io.netty:netty-common:4.1.79.Final"], + "file": "v1/https/repo1.maven.org/maven2/io/netty/netty-buffer/4.1.79.Final/netty-buffer-4.1.79.Final.jar", + "mirror_urls": [ + "https://repo1.maven.org/maven2/io/netty/netty-buffer/4.1.79.Final/netty-buffer-4.1.79.Final.jar" + ], + "packages": ["io.netty.buffer", "io.netty.buffer.search"], + "sha256": "53b3c99c025f7344960d8a410df5792caba4444dd82c18606a572f7361127f98", + "url": "https://repo1.maven.org/maven2/io/netty/netty-buffer/4.1.79.Final/netty-buffer-4.1.79.Final.jar" + }, + { + "coord": "io.netty:netty-buffer:jar:sources:4.1.79.Final", + "dependencies": ["io.netty:netty-common:jar:sources:4.1.79.Final"], + "directDependencies": [ + "io.netty:netty-common:jar:sources:4.1.79.Final" + ], + "file": "v1/https/repo1.maven.org/maven2/io/netty/netty-buffer/4.1.79.Final/netty-buffer-4.1.79.Final-sources.jar", + "mirror_urls": [ + "https://repo1.maven.org/maven2/io/netty/netty-buffer/4.1.79.Final/netty-buffer-4.1.79.Final-sources.jar" + ], + "packages": [], + "sha256": "c803fec4e07a3b3ddfb280d0463d0f2a34800020177a3ed927c70ee64a352752", + "url": "https://repo1.maven.org/maven2/io/netty/netty-buffer/4.1.79.Final/netty-buffer-4.1.79.Final-sources.jar" + }, + { + "coord": "io.netty:netty-codec-http2:4.1.79.Final", + "dependencies": [ + "io.netty:netty-buffer:4.1.79.Final", + "io.netty:netty-codec-http:4.1.79.Final", + "io.netty:netty-codec:4.1.79.Final", + "io.netty:netty-common:4.1.79.Final", + "io.netty:netty-handler:4.1.79.Final", + "io.netty:netty-resolver:4.1.79.Final", + "io.netty:netty-transport-native-unix-common:4.1.79.Final", + "io.netty:netty-transport:4.1.79.Final" + ], + "directDependencies": [ + "io.netty:netty-buffer:4.1.79.Final", + "io.netty:netty-codec-http:4.1.79.Final", + "io.netty:netty-codec:4.1.79.Final", + "io.netty:netty-common:4.1.79.Final", + "io.netty:netty-handler:4.1.79.Final", + "io.netty:netty-transport:4.1.79.Final" + ], + "file": "v1/https/repo1.maven.org/maven2/io/netty/netty-codec-http2/4.1.79.Final/netty-codec-http2-4.1.79.Final.jar", + "mirror_urls": [ + "https://repo1.maven.org/maven2/io/netty/netty-codec-http2/4.1.79.Final/netty-codec-http2-4.1.79.Final.jar" + ], + "packages": ["io.netty.handler.codec.http2"], + "sha256": "9e767a904b0aab9c44aaac947abf0911055f341459520b2503c7014a4635c7f8", + "url": "https://repo1.maven.org/maven2/io/netty/netty-codec-http2/4.1.79.Final/netty-codec-http2-4.1.79.Final.jar" + }, + { + "coord": "io.netty:netty-codec-http2:jar:sources:4.1.79.Final", + "dependencies": [ + "io.netty:netty-buffer:jar:sources:4.1.79.Final", + "io.netty:netty-codec-http:jar:sources:4.1.79.Final", + "io.netty:netty-codec:jar:sources:4.1.79.Final", + "io.netty:netty-common:jar:sources:4.1.79.Final", + "io.netty:netty-handler:jar:sources:4.1.79.Final", + "io.netty:netty-resolver:jar:sources:4.1.79.Final", + "io.netty:netty-transport-native-unix-common:jar:sources:4.1.79.Final", + "io.netty:netty-transport:jar:sources:4.1.79.Final" + ], + "directDependencies": [ + "io.netty:netty-buffer:jar:sources:4.1.79.Final", + "io.netty:netty-codec-http:jar:sources:4.1.79.Final", + "io.netty:netty-codec:jar:sources:4.1.79.Final", + "io.netty:netty-common:jar:sources:4.1.79.Final", + "io.netty:netty-handler:jar:sources:4.1.79.Final", + "io.netty:netty-transport:jar:sources:4.1.79.Final" + ], + "file": "v1/https/repo1.maven.org/maven2/io/netty/netty-codec-http2/4.1.79.Final/netty-codec-http2-4.1.79.Final-sources.jar", + "mirror_urls": [ + "https://repo1.maven.org/maven2/io/netty/netty-codec-http2/4.1.79.Final/netty-codec-http2-4.1.79.Final-sources.jar" + ], + "packages": [], + "sha256": "f29c7462f920774066f004e9ed82b61a42285a826127d3ba454943e030a832f9", + "url": "https://repo1.maven.org/maven2/io/netty/netty-codec-http2/4.1.79.Final/netty-codec-http2-4.1.79.Final-sources.jar" + }, + { + "coord": "io.netty:netty-codec-http:4.1.79.Final", + "dependencies": [ + "io.netty:netty-buffer:4.1.79.Final", + "io.netty:netty-codec:4.1.79.Final", + "io.netty:netty-common:4.1.79.Final", + "io.netty:netty-handler:4.1.79.Final", + "io.netty:netty-resolver:4.1.79.Final", + "io.netty:netty-transport-native-unix-common:4.1.79.Final", + "io.netty:netty-transport:4.1.79.Final" + ], + "directDependencies": [ + "io.netty:netty-buffer:4.1.79.Final", + "io.netty:netty-codec:4.1.79.Final", + "io.netty:netty-common:4.1.79.Final", + "io.netty:netty-handler:4.1.79.Final", + "io.netty:netty-transport:4.1.79.Final" + ], + "file": "v1/https/repo1.maven.org/maven2/io/netty/netty-codec-http/4.1.79.Final/netty-codec-http-4.1.79.Final.jar", + "mirror_urls": [ + "https://repo1.maven.org/maven2/io/netty/netty-codec-http/4.1.79.Final/netty-codec-http-4.1.79.Final.jar" + ], + "packages": [ + "io.netty.handler.codec.http", + "io.netty.handler.codec.http.cookie", + "io.netty.handler.codec.http.cors", + "io.netty.handler.codec.http.multipart", + "io.netty.handler.codec.http.websocketx", + "io.netty.handler.codec.http.websocketx.extensions", + "io.netty.handler.codec.http.websocketx.extensions.compression", + "io.netty.handler.codec.rtsp", + "io.netty.handler.codec.spdy" + ], + "sha256": "16e785040f8d0c39e9ae5194b6527c89f5e15116bba4ad7f4fc776cdb1b92918", + "url": "https://repo1.maven.org/maven2/io/netty/netty-codec-http/4.1.79.Final/netty-codec-http-4.1.79.Final.jar" + }, + { + "coord": "io.netty:netty-codec-http:jar:sources:4.1.79.Final", + "dependencies": [ + "io.netty:netty-buffer:jar:sources:4.1.79.Final", + "io.netty:netty-codec:jar:sources:4.1.79.Final", + "io.netty:netty-common:jar:sources:4.1.79.Final", + "io.netty:netty-handler:jar:sources:4.1.79.Final", + "io.netty:netty-resolver:jar:sources:4.1.79.Final", + "io.netty:netty-transport-native-unix-common:jar:sources:4.1.79.Final", + "io.netty:netty-transport:jar:sources:4.1.79.Final" + ], + "directDependencies": [ + "io.netty:netty-buffer:jar:sources:4.1.79.Final", + "io.netty:netty-codec:jar:sources:4.1.79.Final", + "io.netty:netty-common:jar:sources:4.1.79.Final", + "io.netty:netty-handler:jar:sources:4.1.79.Final", + "io.netty:netty-transport:jar:sources:4.1.79.Final" + ], + "file": "v1/https/repo1.maven.org/maven2/io/netty/netty-codec-http/4.1.79.Final/netty-codec-http-4.1.79.Final-sources.jar", + "mirror_urls": [ + "https://repo1.maven.org/maven2/io/netty/netty-codec-http/4.1.79.Final/netty-codec-http-4.1.79.Final-sources.jar" + ], + "packages": [], + "sha256": "87b9cb7c6e58433a535ca640ba3f37f72d139eef3dfc5e1eda66cf3df6057de5", + "url": "https://repo1.maven.org/maven2/io/netty/netty-codec-http/4.1.79.Final/netty-codec-http-4.1.79.Final-sources.jar" + }, + { + "coord": "io.netty:netty-codec-socks:4.1.79.Final", + "dependencies": [ + "io.netty:netty-buffer:4.1.79.Final", + "io.netty:netty-codec:4.1.79.Final", + "io.netty:netty-common:4.1.79.Final", + "io.netty:netty-resolver:4.1.79.Final", + "io.netty:netty-transport:4.1.79.Final" + ], + "directDependencies": [ + "io.netty:netty-buffer:4.1.79.Final", + "io.netty:netty-codec:4.1.79.Final", + "io.netty:netty-common:4.1.79.Final", + "io.netty:netty-transport:4.1.79.Final" + ], + "file": "v1/https/repo1.maven.org/maven2/io/netty/netty-codec-socks/4.1.79.Final/netty-codec-socks-4.1.79.Final.jar", + "mirror_urls": [ + "https://repo1.maven.org/maven2/io/netty/netty-codec-socks/4.1.79.Final/netty-codec-socks-4.1.79.Final.jar" + ], + "packages": [ + "io.netty.handler.codec.socks", + "io.netty.handler.codec.socksx", + "io.netty.handler.codec.socksx.v4", + "io.netty.handler.codec.socksx.v5" + ], + "sha256": "618fde253dda73a039b9b7ae813c34570c4ec7cd95142c2a44602a988b789f00", + "url": "https://repo1.maven.org/maven2/io/netty/netty-codec-socks/4.1.79.Final/netty-codec-socks-4.1.79.Final.jar" + }, + { + "coord": "io.netty:netty-codec-socks:jar:sources:4.1.79.Final", + "dependencies": [ + "io.netty:netty-buffer:jar:sources:4.1.79.Final", + "io.netty:netty-codec:jar:sources:4.1.79.Final", + "io.netty:netty-common:jar:sources:4.1.79.Final", + "io.netty:netty-resolver:jar:sources:4.1.79.Final", + "io.netty:netty-transport:jar:sources:4.1.79.Final" + ], + "directDependencies": [ + "io.netty:netty-buffer:jar:sources:4.1.79.Final", + "io.netty:netty-codec:jar:sources:4.1.79.Final", + "io.netty:netty-common:jar:sources:4.1.79.Final", + "io.netty:netty-transport:jar:sources:4.1.79.Final" + ], + "file": "v1/https/repo1.maven.org/maven2/io/netty/netty-codec-socks/4.1.79.Final/netty-codec-socks-4.1.79.Final-sources.jar", + "mirror_urls": [ + "https://repo1.maven.org/maven2/io/netty/netty-codec-socks/4.1.79.Final/netty-codec-socks-4.1.79.Final-sources.jar" + ], + "packages": [], + "sha256": "12ad351912528a80823ae601b88ed1b22e2f33938a660f8884fa72634328019f", + "url": "https://repo1.maven.org/maven2/io/netty/netty-codec-socks/4.1.79.Final/netty-codec-socks-4.1.79.Final-sources.jar" + }, + { + "coord": "io.netty:netty-codec:4.1.79.Final", + "dependencies": [ + "io.netty:netty-buffer:4.1.79.Final", + "io.netty:netty-common:4.1.79.Final", + "io.netty:netty-resolver:4.1.79.Final", + "io.netty:netty-transport:4.1.79.Final" + ], + "directDependencies": [ + "io.netty:netty-buffer:4.1.79.Final", + "io.netty:netty-common:4.1.79.Final", + "io.netty:netty-transport:4.1.79.Final" + ], + "file": "v1/https/repo1.maven.org/maven2/io/netty/netty-codec/4.1.79.Final/netty-codec-4.1.79.Final.jar", + "mirror_urls": [ + "https://repo1.maven.org/maven2/io/netty/netty-codec/4.1.79.Final/netty-codec-4.1.79.Final.jar" + ], + "packages": [ + "io.netty.handler.codec", + "io.netty.handler.codec.base64", + "io.netty.handler.codec.bytes", + "io.netty.handler.codec.compression", + "io.netty.handler.codec.json", + "io.netty.handler.codec.marshalling", + "io.netty.handler.codec.protobuf", + "io.netty.handler.codec.serialization", + "io.netty.handler.codec.string", + "io.netty.handler.codec.xml" + ], + "sha256": "a80dcb79077d217a30d8c9e43c1da577b642f1e6fb1aa80bc22b3eb872b565de", + "url": "https://repo1.maven.org/maven2/io/netty/netty-codec/4.1.79.Final/netty-codec-4.1.79.Final.jar" + }, + { + "coord": "io.netty:netty-codec:jar:sources:4.1.79.Final", + "dependencies": [ + "io.netty:netty-buffer:jar:sources:4.1.79.Final", + "io.netty:netty-common:jar:sources:4.1.79.Final", + "io.netty:netty-resolver:jar:sources:4.1.79.Final", + "io.netty:netty-transport:jar:sources:4.1.79.Final" + ], + "directDependencies": [ + "io.netty:netty-buffer:jar:sources:4.1.79.Final", + "io.netty:netty-common:jar:sources:4.1.79.Final", + "io.netty:netty-transport:jar:sources:4.1.79.Final" + ], + "file": "v1/https/repo1.maven.org/maven2/io/netty/netty-codec/4.1.79.Final/netty-codec-4.1.79.Final-sources.jar", + "mirror_urls": [ + "https://repo1.maven.org/maven2/io/netty/netty-codec/4.1.79.Final/netty-codec-4.1.79.Final-sources.jar" + ], + "packages": [], + "sha256": "f2d7591b6b6803a401d4f85ab5ad9790ce0e48626b17073f384b941d3eeea615", + "url": "https://repo1.maven.org/maven2/io/netty/netty-codec/4.1.79.Final/netty-codec-4.1.79.Final-sources.jar" + }, + { + "coord": "io.netty:netty-common:4.1.79.Final", + "dependencies": [], + "directDependencies": [], + "file": "v1/https/repo1.maven.org/maven2/io/netty/netty-common/4.1.79.Final/netty-common-4.1.79.Final.jar", + "mirror_urls": [ + "https://repo1.maven.org/maven2/io/netty/netty-common/4.1.79.Final/netty-common-4.1.79.Final.jar" + ], + "packages": [ + "io.netty.util", + "io.netty.util.collection", + "io.netty.util.concurrent", + "io.netty.util.internal", + "io.netty.util.internal.logging", + "io.netty.util.internal.shaded.org.jctools.queues", + "io.netty.util.internal.shaded.org.jctools.queues.atomic", + "io.netty.util.internal.shaded.org.jctools.util", + "io.netty.util.internal.svm" + ], + "sha256": "1a0da37e96dbc41bbe56fc11e621a1718ef2b31f6bcc3f489ba2d22c235e6a3c", + "url": "https://repo1.maven.org/maven2/io/netty/netty-common/4.1.79.Final/netty-common-4.1.79.Final.jar" + }, + { + "coord": "io.netty:netty-common:jar:sources:4.1.79.Final", + "dependencies": [], + "directDependencies": [], + "file": "v1/https/repo1.maven.org/maven2/io/netty/netty-common/4.1.79.Final/netty-common-4.1.79.Final-sources.jar", + "mirror_urls": [ + "https://repo1.maven.org/maven2/io/netty/netty-common/4.1.79.Final/netty-common-4.1.79.Final-sources.jar" + ], + "packages": [], + "sha256": "7e1302cc2fee36f23a93d9f91612be38e053587af2272e518379c6ed4936c5a9", + "url": "https://repo1.maven.org/maven2/io/netty/netty-common/4.1.79.Final/netty-common-4.1.79.Final-sources.jar" + }, + { + "coord": "io.netty:netty-handler-proxy:4.1.79.Final", + "dependencies": [ + "io.netty:netty-buffer:4.1.79.Final", + "io.netty:netty-codec-http:4.1.79.Final", + "io.netty:netty-codec-socks:4.1.79.Final", + "io.netty:netty-codec:4.1.79.Final", + "io.netty:netty-common:4.1.79.Final", + "io.netty:netty-handler:4.1.79.Final", + "io.netty:netty-resolver:4.1.79.Final", + "io.netty:netty-transport-native-unix-common:4.1.79.Final", + "io.netty:netty-transport:4.1.79.Final" + ], + "directDependencies": [ + "io.netty:netty-buffer:4.1.79.Final", + "io.netty:netty-codec-http:4.1.79.Final", + "io.netty:netty-codec-socks:4.1.79.Final", + "io.netty:netty-codec:4.1.79.Final", + "io.netty:netty-common:4.1.79.Final", + "io.netty:netty-transport:4.1.79.Final" + ], + "file": "v1/https/repo1.maven.org/maven2/io/netty/netty-handler-proxy/4.1.79.Final/netty-handler-proxy-4.1.79.Final.jar", + "mirror_urls": [ + "https://repo1.maven.org/maven2/io/netty/netty-handler-proxy/4.1.79.Final/netty-handler-proxy-4.1.79.Final.jar" + ], + "packages": ["io.netty.handler.proxy"], + "sha256": "99a6ee5ff3eb38caa5c5b215826606856b56dc040d888f69116d9c6db88709ae", + "url": "https://repo1.maven.org/maven2/io/netty/netty-handler-proxy/4.1.79.Final/netty-handler-proxy-4.1.79.Final.jar" + }, + { + "coord": "io.netty:netty-handler-proxy:jar:sources:4.1.79.Final", + "dependencies": [ + "io.netty:netty-buffer:jar:sources:4.1.79.Final", + "io.netty:netty-codec-http:jar:sources:4.1.79.Final", + "io.netty:netty-codec-socks:jar:sources:4.1.79.Final", + "io.netty:netty-codec:jar:sources:4.1.79.Final", + "io.netty:netty-common:jar:sources:4.1.79.Final", + "io.netty:netty-handler:jar:sources:4.1.79.Final", + "io.netty:netty-resolver:jar:sources:4.1.79.Final", + "io.netty:netty-transport-native-unix-common:jar:sources:4.1.79.Final", + "io.netty:netty-transport:jar:sources:4.1.79.Final" + ], + "directDependencies": [ + "io.netty:netty-buffer:jar:sources:4.1.79.Final", + "io.netty:netty-codec-http:jar:sources:4.1.79.Final", + "io.netty:netty-codec-socks:jar:sources:4.1.79.Final", + "io.netty:netty-codec:jar:sources:4.1.79.Final", + "io.netty:netty-common:jar:sources:4.1.79.Final", + "io.netty:netty-transport:jar:sources:4.1.79.Final" + ], + "file": "v1/https/repo1.maven.org/maven2/io/netty/netty-handler-proxy/4.1.79.Final/netty-handler-proxy-4.1.79.Final-sources.jar", + "mirror_urls": [ + "https://repo1.maven.org/maven2/io/netty/netty-handler-proxy/4.1.79.Final/netty-handler-proxy-4.1.79.Final-sources.jar" + ], + "packages": [], + "sha256": "330ed7d0832fcb7d65f0623e249944a310a9a6c94f669fc1be7dc4e0bbd9b355", + "url": "https://repo1.maven.org/maven2/io/netty/netty-handler-proxy/4.1.79.Final/netty-handler-proxy-4.1.79.Final-sources.jar" + }, + { + "coord": "io.netty:netty-handler:4.1.79.Final", + "dependencies": [ + "io.netty:netty-buffer:4.1.79.Final", + "io.netty:netty-codec:4.1.79.Final", + "io.netty:netty-common:4.1.79.Final", + "io.netty:netty-resolver:4.1.79.Final", + "io.netty:netty-transport-native-unix-common:4.1.79.Final", + "io.netty:netty-transport:4.1.79.Final" + ], + "directDependencies": [ + "io.netty:netty-buffer:4.1.79.Final", + "io.netty:netty-codec:4.1.79.Final", + "io.netty:netty-common:4.1.79.Final", + "io.netty:netty-resolver:4.1.79.Final", + "io.netty:netty-transport-native-unix-common:4.1.79.Final", + "io.netty:netty-transport:4.1.79.Final" + ], + "file": "v1/https/repo1.maven.org/maven2/io/netty/netty-handler/4.1.79.Final/netty-handler-4.1.79.Final.jar", + "mirror_urls": [ + "https://repo1.maven.org/maven2/io/netty/netty-handler/4.1.79.Final/netty-handler-4.1.79.Final.jar" + ], + "packages": [ + "io.netty.handler.address", + "io.netty.handler.flow", + "io.netty.handler.flush", + "io.netty.handler.ipfilter", + "io.netty.handler.logging", + "io.netty.handler.pcap", + "io.netty.handler.ssl", + "io.netty.handler.ssl.ocsp", + "io.netty.handler.ssl.util", + "io.netty.handler.stream", + "io.netty.handler.timeout", + "io.netty.handler.traffic" + ], + "sha256": "b61f5630af6b3cd4e18885c5fde2f8643a98fe03e529e05f88bfe80ae3cbd71e", + "url": "https://repo1.maven.org/maven2/io/netty/netty-handler/4.1.79.Final/netty-handler-4.1.79.Final.jar" + }, + { + "coord": "io.netty:netty-handler:jar:sources:4.1.79.Final", + "dependencies": [ + "io.netty:netty-buffer:jar:sources:4.1.79.Final", + "io.netty:netty-codec:jar:sources:4.1.79.Final", + "io.netty:netty-common:jar:sources:4.1.79.Final", + "io.netty:netty-resolver:jar:sources:4.1.79.Final", + "io.netty:netty-transport-native-unix-common:jar:sources:4.1.79.Final", + "io.netty:netty-transport:jar:sources:4.1.79.Final" + ], + "directDependencies": [ + "io.netty:netty-buffer:jar:sources:4.1.79.Final", + "io.netty:netty-codec:jar:sources:4.1.79.Final", + "io.netty:netty-common:jar:sources:4.1.79.Final", + "io.netty:netty-resolver:jar:sources:4.1.79.Final", + "io.netty:netty-transport-native-unix-common:jar:sources:4.1.79.Final", + "io.netty:netty-transport:jar:sources:4.1.79.Final" + ], + "file": "v1/https/repo1.maven.org/maven2/io/netty/netty-handler/4.1.79.Final/netty-handler-4.1.79.Final-sources.jar", + "mirror_urls": [ + "https://repo1.maven.org/maven2/io/netty/netty-handler/4.1.79.Final/netty-handler-4.1.79.Final-sources.jar" + ], + "packages": [], + "sha256": "6a14a956e058372d03e0a387fdc307e7d7fe8f744af0ebc9467aefdda681e771", + "url": "https://repo1.maven.org/maven2/io/netty/netty-handler/4.1.79.Final/netty-handler-4.1.79.Final-sources.jar" + }, + { + "coord": "io.netty:netty-resolver:4.1.79.Final", + "dependencies": ["io.netty:netty-common:4.1.79.Final"], + "directDependencies": ["io.netty:netty-common:4.1.79.Final"], + "file": "v1/https/repo1.maven.org/maven2/io/netty/netty-resolver/4.1.79.Final/netty-resolver-4.1.79.Final.jar", + "mirror_urls": [ + "https://repo1.maven.org/maven2/io/netty/netty-resolver/4.1.79.Final/netty-resolver-4.1.79.Final.jar" + ], + "packages": ["io.netty.resolver"], + "sha256": "c6c111a337bb6b3a889ceab321e9473da49a4e261dcf422fca22284064e38130", + "url": "https://repo1.maven.org/maven2/io/netty/netty-resolver/4.1.79.Final/netty-resolver-4.1.79.Final.jar" + }, + { + "coord": "io.netty:netty-resolver:jar:sources:4.1.79.Final", + "dependencies": ["io.netty:netty-common:jar:sources:4.1.79.Final"], + "directDependencies": [ + "io.netty:netty-common:jar:sources:4.1.79.Final" + ], + "file": "v1/https/repo1.maven.org/maven2/io/netty/netty-resolver/4.1.79.Final/netty-resolver-4.1.79.Final-sources.jar", + "mirror_urls": [ + "https://repo1.maven.org/maven2/io/netty/netty-resolver/4.1.79.Final/netty-resolver-4.1.79.Final-sources.jar" + ], + "packages": [], + "sha256": "1f717fd4755e57881b5b0ec8b8d07cf2c2f6b7599758eb0fd7b3d559d43be8eb", + "url": "https://repo1.maven.org/maven2/io/netty/netty-resolver/4.1.79.Final/netty-resolver-4.1.79.Final-sources.jar" + }, + { + "coord": "io.netty:netty-transport-native-unix-common:4.1.79.Final", + "dependencies": [ + "io.netty:netty-buffer:4.1.79.Final", + "io.netty:netty-common:4.1.79.Final", + "io.netty:netty-resolver:4.1.79.Final", + "io.netty:netty-transport:4.1.79.Final" + ], + "directDependencies": [ + "io.netty:netty-buffer:4.1.79.Final", + "io.netty:netty-common:4.1.79.Final", + "io.netty:netty-transport:4.1.79.Final" + ], + "file": "v1/https/repo1.maven.org/maven2/io/netty/netty-transport-native-unix-common/4.1.79.Final/netty-transport-native-unix-common-4.1.79.Final.jar", + "mirror_urls": [ + "https://repo1.maven.org/maven2/io/netty/netty-transport-native-unix-common/4.1.79.Final/netty-transport-native-unix-common-4.1.79.Final.jar" + ], + "packages": ["io.netty.channel.unix"], + "sha256": "5b017dd9600af65ea1746a3b52dabd81ee4bf3df9b50909db4fb49fcb3592970", + "url": "https://repo1.maven.org/maven2/io/netty/netty-transport-native-unix-common/4.1.79.Final/netty-transport-native-unix-common-4.1.79.Final.jar" + }, + { + "coord": "io.netty:netty-transport-native-unix-common:jar:sources:4.1.79.Final", + "dependencies": [ + "io.netty:netty-buffer:jar:sources:4.1.79.Final", + "io.netty:netty-common:jar:sources:4.1.79.Final", + "io.netty:netty-resolver:jar:sources:4.1.79.Final", + "io.netty:netty-transport:jar:sources:4.1.79.Final" + ], + "directDependencies": [ + "io.netty:netty-buffer:jar:sources:4.1.79.Final", + "io.netty:netty-common:jar:sources:4.1.79.Final", + "io.netty:netty-transport:jar:sources:4.1.79.Final" + ], + "file": "v1/https/repo1.maven.org/maven2/io/netty/netty-transport-native-unix-common/4.1.79.Final/netty-transport-native-unix-common-4.1.79.Final-sources.jar", + "mirror_urls": [ + "https://repo1.maven.org/maven2/io/netty/netty-transport-native-unix-common/4.1.79.Final/netty-transport-native-unix-common-4.1.79.Final-sources.jar" + ], + "packages": [], + "sha256": "8ef6f156eb3ff6b18e6c79e83138351bf2ea94dbc2d26b158990ea1350ec1a3d", + "url": "https://repo1.maven.org/maven2/io/netty/netty-transport-native-unix-common/4.1.79.Final/netty-transport-native-unix-common-4.1.79.Final-sources.jar" + }, + { + "coord": "io.netty:netty-transport:4.1.79.Final", + "dependencies": [ + "io.netty:netty-buffer:4.1.79.Final", + "io.netty:netty-common:4.1.79.Final", + "io.netty:netty-resolver:4.1.79.Final" + ], + "directDependencies": [ + "io.netty:netty-buffer:4.1.79.Final", + "io.netty:netty-common:4.1.79.Final", + "io.netty:netty-resolver:4.1.79.Final" + ], + "file": "v1/https/repo1.maven.org/maven2/io/netty/netty-transport/4.1.79.Final/netty-transport-4.1.79.Final.jar", + "mirror_urls": [ + "https://repo1.maven.org/maven2/io/netty/netty-transport/4.1.79.Final/netty-transport-4.1.79.Final.jar" + ], + "packages": [ + "io.netty.bootstrap", + "io.netty.channel", + "io.netty.channel.embedded", + "io.netty.channel.group", + "io.netty.channel.internal", + "io.netty.channel.local", + "io.netty.channel.nio", + "io.netty.channel.oio", + "io.netty.channel.pool", + "io.netty.channel.socket", + "io.netty.channel.socket.nio", + "io.netty.channel.socket.oio" + ], + "sha256": "71cf99b6c3685b64af9b1de161b23f107d7ce8077a95921f7dc70ca25838f034", + "url": "https://repo1.maven.org/maven2/io/netty/netty-transport/4.1.79.Final/netty-transport-4.1.79.Final.jar" + }, + { + "coord": "io.netty:netty-transport:jar:sources:4.1.79.Final", + "dependencies": [ + "io.netty:netty-buffer:jar:sources:4.1.79.Final", + "io.netty:netty-common:jar:sources:4.1.79.Final", + "io.netty:netty-resolver:jar:sources:4.1.79.Final" + ], + "directDependencies": [ + "io.netty:netty-buffer:jar:sources:4.1.79.Final", + "io.netty:netty-common:jar:sources:4.1.79.Final", + "io.netty:netty-resolver:jar:sources:4.1.79.Final" + ], + "file": "v1/https/repo1.maven.org/maven2/io/netty/netty-transport/4.1.79.Final/netty-transport-4.1.79.Final-sources.jar", + "mirror_urls": [ + "https://repo1.maven.org/maven2/io/netty/netty-transport/4.1.79.Final/netty-transport-4.1.79.Final-sources.jar" + ], + "packages": [], + "sha256": "a6d991171e7b699cdbf42961bb0d43304f355388b1d92fcb75ee38856ea9c200", + "url": "https://repo1.maven.org/maven2/io/netty/netty-transport/4.1.79.Final/netty-transport-4.1.79.Final-sources.jar" + }, + { + "coord": "io.opencensus:opencensus-api:0.28.0", + "dependencies": ["io.grpc:grpc-context:1.51.1"], + "directDependencies": ["io.grpc:grpc-context:1.51.1"], + "file": "v1/https/repo1.maven.org/maven2/io/opencensus/opencensus-api/0.28.0/opencensus-api-0.28.0.jar", + "mirror_urls": [ + "https://repo1.maven.org/maven2/io/opencensus/opencensus-api/0.28.0/opencensus-api-0.28.0.jar" + ], + "packages": [ + "io.opencensus.common", + "io.opencensus.internal", + "io.opencensus.metrics", + "io.opencensus.metrics.data", + "io.opencensus.metrics.export", + "io.opencensus.resource", + "io.opencensus.stats", + "io.opencensus.tags", + "io.opencensus.tags.propagation", + "io.opencensus.tags.unsafe", + "io.opencensus.trace", + "io.opencensus.trace.config", + "io.opencensus.trace.export", + "io.opencensus.trace.internal", + "io.opencensus.trace.propagation", + "io.opencensus.trace.samplers", + "io.opencensus.trace.unsafe" + ], + "sha256": "0c1723f3f6d3061323845ce8b88b35fdda500812e0a75b8eb5fcc4ad8c871a95", + "url": "https://repo1.maven.org/maven2/io/opencensus/opencensus-api/0.28.0/opencensus-api-0.28.0.jar" + }, + { + "coord": "io.opencensus:opencensus-api:jar:sources:0.28.0", + "dependencies": ["io.grpc:grpc-context:jar:sources:1.51.1"], + "directDependencies": ["io.grpc:grpc-context:jar:sources:1.51.1"], + "file": "v1/https/repo1.maven.org/maven2/io/opencensus/opencensus-api/0.28.0/opencensus-api-0.28.0-sources.jar", + "mirror_urls": [ + "https://repo1.maven.org/maven2/io/opencensus/opencensus-api/0.28.0/opencensus-api-0.28.0-sources.jar" + ], + "packages": [], + "sha256": "0c6aedc3a87be3b8110eeeb8d7df84d68c3b79831247ddf422d14a2c5faa5fd1", + "url": "https://repo1.maven.org/maven2/io/opencensus/opencensus-api/0.28.0/opencensus-api-0.28.0-sources.jar" + }, + { + "coord": "io.opencensus:opencensus-contrib-http-util:0.28.0", + "dependencies": [ + "com.google.guava:guava:31.1-android", + "io.grpc:grpc-context:1.51.1", + "io.opencensus:opencensus-api:0.28.0" + ], + "directDependencies": [ + "com.google.guava:guava:31.1-android", + "io.opencensus:opencensus-api:0.28.0" + ], + "file": "v1/https/repo1.maven.org/maven2/io/opencensus/opencensus-contrib-http-util/0.28.0/opencensus-contrib-http-util-0.28.0.jar", + "mirror_urls": [ + "https://repo1.maven.org/maven2/io/opencensus/opencensus-contrib-http-util/0.28.0/opencensus-contrib-http-util-0.28.0.jar" + ], + "packages": [ + "io.opencensus.contrib.http", + "io.opencensus.contrib.http.util" + ], + "sha256": "49c3db2a29f1fdb2f73928cbea969bd1d40fab7cc5bb6273022babd96f7a789b", + "url": "https://repo1.maven.org/maven2/io/opencensus/opencensus-contrib-http-util/0.28.0/opencensus-contrib-http-util-0.28.0.jar" + }, + { + "coord": "io.opencensus:opencensus-contrib-http-util:jar:sources:0.28.0", + "dependencies": [ + "com.google.guava:guava:jar:sources:31.1-android", + "io.grpc:grpc-context:jar:sources:1.51.1", + "io.opencensus:opencensus-api:jar:sources:0.28.0" + ], + "directDependencies": [ + "com.google.guava:guava:jar:sources:31.1-android", + "io.opencensus:opencensus-api:jar:sources:0.28.0" + ], + "file": "v1/https/repo1.maven.org/maven2/io/opencensus/opencensus-contrib-http-util/0.28.0/opencensus-contrib-http-util-0.28.0-sources.jar", + "mirror_urls": [ + "https://repo1.maven.org/maven2/io/opencensus/opencensus-contrib-http-util/0.28.0/opencensus-contrib-http-util-0.28.0-sources.jar" + ], + "packages": [], + "sha256": "57991d9ef81499585431a5f9fdbff8b1acabd7826428a514f45d24100887eeaf", + "url": "https://repo1.maven.org/maven2/io/opencensus/opencensus-contrib-http-util/0.28.0/opencensus-contrib-http-util-0.28.0-sources.jar" + }, + { + "coord": "io.opencensus:opencensus-proto:0.2.0", + "dependencies": [ + "com.google.protobuf:protobuf-java:3.21.7", + "io.grpc:grpc-protobuf:1.51.1", + "io.grpc:grpc-stub:1.51.1" + ], + "directDependencies": [ + "com.google.protobuf:protobuf-java:3.21.7", + "io.grpc:grpc-protobuf:1.51.1", + "io.grpc:grpc-stub:1.51.1" + ], + "file": "v1/https/repo1.maven.org/maven2/io/opencensus/opencensus-proto/0.2.0/opencensus-proto-0.2.0.jar", + "mirror_urls": [ + "https://repo1.maven.org/maven2/io/opencensus/opencensus-proto/0.2.0/opencensus-proto-0.2.0.jar" + ], + "packages": [ + "io.opencensus.proto.agent.common.v1", + "io.opencensus.proto.agent.metrics.v1", + "io.opencensus.proto.agent.trace.v1", + "io.opencensus.proto.metrics.v1", + "io.opencensus.proto.resource.v1", + "io.opencensus.proto.stats.v1", + "io.opencensus.proto.trace.v1" + ], + "sha256": "0c192d451e9dd74e98721b27d02f0e2b6bca44b51563b5dabf2e211f7a3ebf13", + "url": "https://repo1.maven.org/maven2/io/opencensus/opencensus-proto/0.2.0/opencensus-proto-0.2.0.jar" + }, + { + "coord": "io.opencensus:opencensus-proto:jar:sources:0.2.0", + "dependencies": [ + "com.google.protobuf:protobuf-java:jar:sources:3.21.7", + "io.grpc:grpc-protobuf:jar:sources:1.51.1", + "io.grpc:grpc-stub:jar:sources:1.51.1" + ], + "directDependencies": [ + "com.google.protobuf:protobuf-java:jar:sources:3.21.7", + "io.grpc:grpc-protobuf:jar:sources:1.51.1", + "io.grpc:grpc-stub:jar:sources:1.51.1" + ], + "file": "v1/https/repo1.maven.org/maven2/io/opencensus/opencensus-proto/0.2.0/opencensus-proto-0.2.0-sources.jar", + "mirror_urls": [ + "https://repo1.maven.org/maven2/io/opencensus/opencensus-proto/0.2.0/opencensus-proto-0.2.0-sources.jar" + ], + "packages": [], + "sha256": "7f077c177e1241e3afec0b42d7f64b89b18c2ef37a29651fc6d2a46315a3ca42", + "url": "https://repo1.maven.org/maven2/io/opencensus/opencensus-proto/0.2.0/opencensus-proto-0.2.0-sources.jar" + }, + { + "coord": "io.perfmark:perfmark-api:0.25.0", + "dependencies": [], + "directDependencies": [], + "file": "v1/https/repo1.maven.org/maven2/io/perfmark/perfmark-api/0.25.0/perfmark-api-0.25.0.jar", + "mirror_urls": [ + "https://repo1.maven.org/maven2/io/perfmark/perfmark-api/0.25.0/perfmark-api-0.25.0.jar" + ], + "packages": ["io.perfmark"], + "sha256": "2044542933fcdf40ad18441bec37646d150c491871157f288847e29cb81de4cb", + "url": "https://repo1.maven.org/maven2/io/perfmark/perfmark-api/0.25.0/perfmark-api-0.25.0.jar" + }, + { + "coord": "io.perfmark:perfmark-api:jar:sources:0.25.0", + "dependencies": [], + "directDependencies": [], + "file": "v1/https/repo1.maven.org/maven2/io/perfmark/perfmark-api/0.25.0/perfmark-api-0.25.0-sources.jar", + "mirror_urls": [ + "https://repo1.maven.org/maven2/io/perfmark/perfmark-api/0.25.0/perfmark-api-0.25.0-sources.jar" + ], + "packages": [], + "sha256": "007b6b6beaba11fabb025d79b8774b6a7583596a8ec0a28157570304642b0e72", + "url": "https://repo1.maven.org/maven2/io/perfmark/perfmark-api/0.25.0/perfmark-api-0.25.0-sources.jar" + }, + { + "coord": "junit:junit:4.12", + "dependencies": ["org.hamcrest:hamcrest-core:1.3"], + "directDependencies": ["org.hamcrest:hamcrest-core:1.3"], + "file": "v1/https/repo1.maven.org/maven2/junit/junit/4.12/junit-4.12.jar", + "mirror_urls": [ + "https://repo1.maven.org/maven2/junit/junit/4.12/junit-4.12.jar" + ], + "packages": [ + "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.internal", + "org.junit.internal.builders", + "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" + ], + "sha256": "59721f0805e223d84b90677887d9ff567dc534d7c502ca903c0c2b17f05c116a", + "url": "https://repo1.maven.org/maven2/junit/junit/4.12/junit-4.12.jar" + }, + { + "coord": "junit:junit:jar:sources:4.12", + "dependencies": ["org.hamcrest:hamcrest-core:jar:sources:1.3"], + "directDependencies": ["org.hamcrest:hamcrest-core:jar:sources:1.3"], + "file": "v1/https/repo1.maven.org/maven2/junit/junit/4.12/junit-4.12-sources.jar", + "mirror_urls": [ + "https://repo1.maven.org/maven2/junit/junit/4.12/junit-4.12-sources.jar" + ], + "packages": [], + "sha256": "9f43fea92033ad82bcad2ae44cec5c82abc9d6ee4b095cab921d11ead98bf2ff", + "url": "https://repo1.maven.org/maven2/junit/junit/4.12/junit-4.12-sources.jar" + }, + { + "coord": "org.apache.httpcomponents:httpclient:4.5.13", + "dependencies": [ + "commons-codec:commons-codec:1.11", + "commons-logging:commons-logging:1.2", + "org.apache.httpcomponents:httpcore:4.4.15" + ], + "directDependencies": [ + "commons-codec:commons-codec:1.11", + "commons-logging:commons-logging:1.2", + "org.apache.httpcomponents:httpcore:4.4.15" + ], + "file": "v1/https/repo1.maven.org/maven2/org/apache/httpcomponents/httpclient/4.5.13/httpclient-4.5.13.jar", + "mirror_urls": [ + "https://repo1.maven.org/maven2/org/apache/httpcomponents/httpclient/4.5.13/httpclient-4.5.13.jar" + ], + "packages": [ + "org.apache.http.auth", + "org.apache.http.auth.params", + "org.apache.http.client", + "org.apache.http.client.config", + "org.apache.http.client.entity", + "org.apache.http.client.methods", + "org.apache.http.client.params", + "org.apache.http.client.protocol", + "org.apache.http.client.utils", + "org.apache.http.conn", + "org.apache.http.conn.params", + "org.apache.http.conn.routing", + "org.apache.http.conn.scheme", + "org.apache.http.conn.socket", + "org.apache.http.conn.ssl", + "org.apache.http.conn.util", + "org.apache.http.cookie", + "org.apache.http.cookie.params", + "org.apache.http.impl.auth", + "org.apache.http.impl.client", + "org.apache.http.impl.conn", + "org.apache.http.impl.conn.tsccm", + "org.apache.http.impl.cookie", + "org.apache.http.impl.execchain" + ], + "sha256": "6fe9026a566c6a5001608cf3fc32196641f6c1e5e1986d1037ccdbd5f31ef743", + "url": "https://repo1.maven.org/maven2/org/apache/httpcomponents/httpclient/4.5.13/httpclient-4.5.13.jar" + }, + { + "coord": "org.apache.httpcomponents:httpclient:jar:sources:4.5.13", + "dependencies": [ + "commons-codec:commons-codec:jar:sources:1.11", + "commons-logging:commons-logging:jar:sources:1.2", + "org.apache.httpcomponents:httpcore:jar:sources:4.4.15" + ], + "directDependencies": [ + "commons-codec:commons-codec:jar:sources:1.11", + "commons-logging:commons-logging:jar:sources:1.2", + "org.apache.httpcomponents:httpcore:jar:sources:4.4.15" + ], + "file": "v1/https/repo1.maven.org/maven2/org/apache/httpcomponents/httpclient/4.5.13/httpclient-4.5.13-sources.jar", + "mirror_urls": [ + "https://repo1.maven.org/maven2/org/apache/httpcomponents/httpclient/4.5.13/httpclient-4.5.13-sources.jar" + ], + "packages": [], + "sha256": "b1e9194fd83ce135831e28346731d9644cb2a08dea37ada2aa56ceb8f1b0c566", + "url": "https://repo1.maven.org/maven2/org/apache/httpcomponents/httpclient/4.5.13/httpclient-4.5.13-sources.jar" + }, + { + "coord": "org.apache.httpcomponents:httpcore:4.4.15", + "dependencies": [], + "directDependencies": [], + "file": "v1/https/repo1.maven.org/maven2/org/apache/httpcomponents/httpcore/4.4.15/httpcore-4.4.15.jar", + "mirror_urls": [ + "https://repo1.maven.org/maven2/org/apache/httpcomponents/httpcore/4.4.15/httpcore-4.4.15.jar" + ], + "packages": [ + "org.apache.http", + "org.apache.http.annotation", + "org.apache.http.concurrent", + "org.apache.http.config", + "org.apache.http.entity", + "org.apache.http.impl", + "org.apache.http.impl.bootstrap", + "org.apache.http.impl.entity", + "org.apache.http.impl.io", + "org.apache.http.impl.pool", + "org.apache.http.io", + "org.apache.http.message", + "org.apache.http.params", + "org.apache.http.pool", + "org.apache.http.protocol", + "org.apache.http.ssl", + "org.apache.http.util" + ], + "sha256": "3cbaed088c499a10f96dde58f39dc0e7985171abd88138ca1655a872011bb142", + "url": "https://repo1.maven.org/maven2/org/apache/httpcomponents/httpcore/4.4.15/httpcore-4.4.15.jar" + }, + { + "coord": "org.apache.httpcomponents:httpcore:jar:sources:4.4.15", + "dependencies": [], + "directDependencies": [], + "file": "v1/https/repo1.maven.org/maven2/org/apache/httpcomponents/httpcore/4.4.15/httpcore-4.4.15-sources.jar", + "mirror_urls": [ + "https://repo1.maven.org/maven2/org/apache/httpcomponents/httpcore/4.4.15/httpcore-4.4.15-sources.jar" + ], + "packages": [], + "sha256": "1510fc72cf2858244bdeb0d7f5d266fe584ecbd2ffe0d91b10a6d80641cd1985", + "url": "https://repo1.maven.org/maven2/org/apache/httpcomponents/httpcore/4.4.15/httpcore-4.4.15-sources.jar" + }, + { + "coord": "org.checkerframework:checker-qual:3.12.0", + "dependencies": [], + "directDependencies": [], + "file": "v1/https/repo1.maven.org/maven2/org/checkerframework/checker-qual/3.12.0/checker-qual-3.12.0.jar", + "mirror_urls": [ + "https://repo1.maven.org/maven2/org/checkerframework/checker-qual/3.12.0/checker-qual-3.12.0.jar" + ], + "packages": [ + "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.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" + ], + "sha256": "ff10785ac2a357ec5de9c293cb982a2cbb605c0309ea4cc1cb9b9bc6dbe7f3cb", + "url": "https://repo1.maven.org/maven2/org/checkerframework/checker-qual/3.12.0/checker-qual-3.12.0.jar" + }, + { + "coord": "org.checkerframework:checker-qual:jar:sources:3.12.0", + "dependencies": [], + "directDependencies": [], + "file": "v1/https/repo1.maven.org/maven2/org/checkerframework/checker-qual/3.12.0/checker-qual-3.12.0-sources.jar", + "mirror_urls": [ + "https://repo1.maven.org/maven2/org/checkerframework/checker-qual/3.12.0/checker-qual-3.12.0-sources.jar" + ], + "packages": [], + "sha256": "fd99a45195ed893803624d1030387056a96601013f5e61ccabd79abb4ddfa876", + "url": "https://repo1.maven.org/maven2/org/checkerframework/checker-qual/3.12.0/checker-qual-3.12.0-sources.jar" + }, + { + "coord": "org.codehaus.mojo:animal-sniffer-annotations:1.21", + "dependencies": [], + "directDependencies": [], + "file": "v1/https/repo1.maven.org/maven2/org/codehaus/mojo/animal-sniffer-annotations/1.21/animal-sniffer-annotations-1.21.jar", + "mirror_urls": [ + "https://repo1.maven.org/maven2/org/codehaus/mojo/animal-sniffer-annotations/1.21/animal-sniffer-annotations-1.21.jar" + ], + "packages": ["org.codehaus.mojo.animal_sniffer"], + "sha256": "2f25841c937e24959a57b630e2c4b8525b3d0f536f2e511c9b2bed30b1651d54", + "url": "https://repo1.maven.org/maven2/org/codehaus/mojo/animal-sniffer-annotations/1.21/animal-sniffer-annotations-1.21.jar" + }, + { + "coord": "org.codehaus.mojo:animal-sniffer-annotations:jar:sources:1.21", + "dependencies": [], + "directDependencies": [], + "file": "v1/https/repo1.maven.org/maven2/org/codehaus/mojo/animal-sniffer-annotations/1.21/animal-sniffer-annotations-1.21-sources.jar", + "mirror_urls": [ + "https://repo1.maven.org/maven2/org/codehaus/mojo/animal-sniffer-annotations/1.21/animal-sniffer-annotations-1.21-sources.jar" + ], + "packages": [], + "sha256": "b96c0e3e96686e4ace91f416ff2f7c5a53a53f25be6e404fc71bfcf20e9c253e", + "url": "https://repo1.maven.org/maven2/org/codehaus/mojo/animal-sniffer-annotations/1.21/animal-sniffer-annotations-1.21-sources.jar" + }, + { + "coord": "org.conscrypt:conscrypt-openjdk-uber:2.5.2", + "dependencies": [], + "directDependencies": [], + "file": "v1/https/repo1.maven.org/maven2/org/conscrypt/conscrypt-openjdk-uber/2.5.2/conscrypt-openjdk-uber-2.5.2.jar", + "mirror_urls": [ + "https://repo1.maven.org/maven2/org/conscrypt/conscrypt-openjdk-uber/2.5.2/conscrypt-openjdk-uber-2.5.2.jar" + ], + "packages": ["org.conscrypt", "org.conscrypt.ct", "org.conscrypt.io"], + "sha256": "eaf537d98e033d0f0451cd1b8cc74e02d7b55ec882da63c88060d806ba89c348", + "url": "https://repo1.maven.org/maven2/org/conscrypt/conscrypt-openjdk-uber/2.5.2/conscrypt-openjdk-uber-2.5.2.jar" + }, + { + "coord": "org.conscrypt:conscrypt-openjdk-uber:jar:sources:2.5.2", + "dependencies": [], + "directDependencies": [], + "file": "v1/https/repo1.maven.org/maven2/org/conscrypt/conscrypt-openjdk-uber/2.5.2/conscrypt-openjdk-uber-2.5.2-sources.jar", + "mirror_urls": [ + "https://repo1.maven.org/maven2/org/conscrypt/conscrypt-openjdk-uber/2.5.2/conscrypt-openjdk-uber-2.5.2-sources.jar" + ], + "packages": [], + "sha256": "aa1d02e65351e202e83ece0614bce1022aa1da6e77313ef7c7663ab45fa9e3a5", + "url": "https://repo1.maven.org/maven2/org/conscrypt/conscrypt-openjdk-uber/2.5.2/conscrypt-openjdk-uber-2.5.2-sources.jar" + }, + { + "coord": "org.hamcrest:hamcrest-core:1.3", + "dependencies": [], + "directDependencies": [], + "file": "v1/https/repo1.maven.org/maven2/org/hamcrest/hamcrest-core/1.3/hamcrest-core-1.3.jar", + "mirror_urls": [ + "https://repo1.maven.org/maven2/org/hamcrest/hamcrest-core/1.3/hamcrest-core-1.3.jar" + ], + "packages": [ + "org.hamcrest", + "org.hamcrest.core", + "org.hamcrest.internal" + ], + "sha256": "66fdef91e9739348df7a096aa384a5685f4e875584cce89386a7a47251c4d8e9", + "url": "https://repo1.maven.org/maven2/org/hamcrest/hamcrest-core/1.3/hamcrest-core-1.3.jar" + }, + { + "coord": "org.hamcrest:hamcrest-core:jar:sources:1.3", + "dependencies": [], + "directDependencies": [], + "file": "v1/https/repo1.maven.org/maven2/org/hamcrest/hamcrest-core/1.3/hamcrest-core-1.3-sources.jar", + "mirror_urls": [ + "https://repo1.maven.org/maven2/org/hamcrest/hamcrest-core/1.3/hamcrest-core-1.3-sources.jar" + ], + "packages": [], + "sha256": "e223d2d8fbafd66057a8848cc94222d63c3cedd652cc48eddc0ab5c39c0f84df", + "url": "https://repo1.maven.org/maven2/org/hamcrest/hamcrest-core/1.3/hamcrest-core-1.3-sources.jar" + } + ], + "version": "0.1.0" + } +} diff --git a/schema/logger/BUILD.bazel b/schema/logger/BUILD.bazel new file mode 100644 index 00000000..a129fa30 --- /dev/null +++ b/schema/logger/BUILD.bazel @@ -0,0 +1,15 @@ +"Copied from https://github.com/aspect-build/codelabs/tree/final/schema/logger" + +load("@rules_proto//proto:defs.bzl", "proto_library") + +package(default_visibility = ["//visibility:public"]) + +proto_library( + name = "logger_proto", + srcs = ["logger.proto"], +) + +java_proto_library( + name = "logger_java_proto", + deps = [":logger_proto"], +) diff --git a/schema/logger/logger.proto b/schema/logger/logger.proto new file mode 100644 index 00000000..b3e40871 --- /dev/null +++ b/schema/logger/logger.proto @@ -0,0 +1,16 @@ +syntax = "proto3"; + +option java_multiple_files = true; +option java_package = "com.example"; +option java_outer_classname = "GreeterProto"; + +service Logger { + rpc SendLogMessage(LogMessage) returns (Empty) {} +} + +message LogMessage { + string message = 1; + int64 time = 2; +} + +message Empty {} diff --git a/src/BUILD b/src/BUILD new file mode 100644 index 00000000..e69de29b diff --git a/src/README.md b/src/README.md new file mode 100644 index 00000000..9fb6d7c4 --- /dev/null +++ b/src/README.md @@ -0,0 +1 @@ +Demo java app source. \ No newline at end of file diff --git a/src/main/java/com/example/BUILD.bazel b/src/main/java/com/example/BUILD.bazel new file mode 100644 index 00000000..23fead26 --- /dev/null +++ b/src/main/java/com/example/BUILD.bazel @@ -0,0 +1,34 @@ +load("@rules_jvm_external//:defs.bzl", "artifact") + +java_library( + name = "logger_java_grpc", + srcs = ["LoggerGrpc.java"], + deps = [ + "//schema/logger:logger_java_proto", + artifact("com.google.guava:guava"), + artifact("com.google.protobuf:protobuf-java"), + artifact("io_grpc:grpc-api"), + artifact("io_grpc:grpc-core"), + artifact("io_grpc:grpc-netty-shaded"), + artifact("io_grpc:grpc-protobuf"), + artifact("io_grpc:grpc-stub"), + ], +) + +java_library( + name = "JavaLoggingClientLibrary", + srcs = ["JavaLoggingClientLibrary.java"], + deps = [ + ":logger_java_grpc", + "//schema/logger:logger_java_proto", + artifact("io.grpc:grpc-stub"), + artifact("io.grpc:grpc-api"), + ], +) + +java_binary( + name = "JavaLoggingClient", + srcs = ["JavaLoggingClient.java"], + visibility = ["//visibility:public"], + deps = [":JavaLoggingClientLibrary"], +) diff --git a/src/main/java/com/example/JavaLoggingClient.java b/src/main/java/com/example/JavaLoggingClient.java new file mode 100644 index 00000000..94176bb2 --- /dev/null +++ b/src/main/java/com/example/JavaLoggingClient.java @@ -0,0 +1,14 @@ +package com.example; + +import java.util.Arrays; + +/** A simple client that sends messages to the server to be stored. */ +public class JavaLoggingClient { + + public static void main(String[] args) throws Exception { + JavaLoggingClientLibrary client = new JavaLoggingClientLibrary("localhost", 50051); + System.out.println("Sending message to server"); + client.sendLogMessageToServer(Arrays.toString(args)); + client.shutdown(); + } +} diff --git a/src/main/java/com/example/JavaLoggingClientLibrary.java b/src/main/java/com/example/JavaLoggingClientLibrary.java new file mode 100644 index 00000000..2532ae6c --- /dev/null +++ b/src/main/java/com/example/JavaLoggingClientLibrary.java @@ -0,0 +1,47 @@ +package com.example; + +import io.grpc.ManagedChannel; +import io.grpc.ManagedChannelBuilder; +import io.grpc.StatusRuntimeException; +import java.util.concurrent.TimeUnit; +import java.util.logging.Level; +import java.util.logging.Logger; + +public class JavaLoggingClientLibrary { + private static final Logger logger = Logger.getLogger(JavaLoggingClientLibrary.class.getName()); + + private final ManagedChannel channel; + private final LoggerGrpc.LoggerBlockingStub blockingStub; + + /** Construct client connecting to server at {@code host:port}. */ + public JavaLoggingClientLibrary(String host, int port) { + this( + ManagedChannelBuilder.forAddress(host, port) + // Disable TLS to avoid needing certificates. + .usePlaintext() + .build()); + } + + /** Construct client for accessing the Logging server using the existing channel. */ + JavaLoggingClientLibrary(ManagedChannel channel) { + this.channel = channel; + blockingStub = LoggerGrpc.newBlockingStub(channel); + } + + public void shutdown() throws InterruptedException { + channel.shutdown().awaitTermination(5, TimeUnit.SECONDS); + } + + /** Send log message to the server. */ + public void sendLogMessageToServer(String message) { + logger.info("Trying to send message '" + message + "' to server..."); + LogMessage logMessage = LogMessage.newBuilder().setMessage(message).build(); + try { + blockingStub.sendLogMessage(logMessage); + } catch (StatusRuntimeException e) { + logger.log(Level.WARNING, "RPC failed: {0}", e.getStatus()); + return; + } + } + +} diff --git a/src/main/java/com/example/LoggerGrpc.java b/src/main/java/com/example/LoggerGrpc.java new file mode 100644 index 00000000..3f911e4c --- /dev/null +++ b/src/main/java/com/example/LoggerGrpc.java @@ -0,0 +1,273 @@ +package com.example; + +import static io.grpc.MethodDescriptor.generateFullMethodName; + +/** + */ +@io.grpc.stub.annotations.GrpcGenerated +public final class LoggerGrpc { + + private LoggerGrpc() {} + + public static final String SERVICE_NAME = "Logger"; + + // Static method descriptors that strictly reflect the proto. + private static volatile io.grpc.MethodDescriptor getSendLogMessageMethod; + + @io.grpc.stub.annotations.RpcMethod( + fullMethodName = SERVICE_NAME + '/' + "SendLogMessage", + requestType = com.example.LogMessage.class, + responseType = com.example.Empty.class, + methodType = io.grpc.MethodDescriptor.MethodType.UNARY) + public static io.grpc.MethodDescriptor getSendLogMessageMethod() { + io.grpc.MethodDescriptor getSendLogMessageMethod; + if ((getSendLogMessageMethod = LoggerGrpc.getSendLogMessageMethod) == null) { + synchronized (LoggerGrpc.class) { + if ((getSendLogMessageMethod = LoggerGrpc.getSendLogMessageMethod) == null) { + LoggerGrpc.getSendLogMessageMethod = getSendLogMessageMethod = + io.grpc.MethodDescriptor.newBuilder() + .setType(io.grpc.MethodDescriptor.MethodType.UNARY) + .setFullMethodName(generateFullMethodName(SERVICE_NAME, "SendLogMessage")) + .setSampledToLocalTracing(true) + .setRequestMarshaller(io.grpc.protobuf.ProtoUtils.marshaller( + com.example.LogMessage.getDefaultInstance())) + .setResponseMarshaller(io.grpc.protobuf.ProtoUtils.marshaller( + com.example.Empty.getDefaultInstance())) + .setSchemaDescriptor(new LoggerMethodDescriptorSupplier("SendLogMessage")) + .build(); + } + } + } + return getSendLogMessageMethod; + } + + /** + * Creates a new async stub that supports all call types for the service + */ + public static LoggerStub newStub(io.grpc.Channel channel) { + io.grpc.stub.AbstractStub.StubFactory factory = + new io.grpc.stub.AbstractStub.StubFactory() { + @java.lang.Override + public LoggerStub newStub(io.grpc.Channel channel, io.grpc.CallOptions callOptions) { + return new LoggerStub(channel, callOptions); + } + }; + return LoggerStub.newStub(factory, channel); + } + + /** + * Creates a new blocking-style stub that supports unary and streaming output calls on the service + */ + public static LoggerBlockingStub newBlockingStub( + io.grpc.Channel channel) { + io.grpc.stub.AbstractStub.StubFactory factory = + new io.grpc.stub.AbstractStub.StubFactory() { + @java.lang.Override + public LoggerBlockingStub newStub(io.grpc.Channel channel, io.grpc.CallOptions callOptions) { + return new LoggerBlockingStub(channel, callOptions); + } + }; + return LoggerBlockingStub.newStub(factory, channel); + } + + /** + * Creates a new ListenableFuture-style stub that supports unary calls on the service + */ + public static LoggerFutureStub newFutureStub( + io.grpc.Channel channel) { + io.grpc.stub.AbstractStub.StubFactory factory = + new io.grpc.stub.AbstractStub.StubFactory() { + @java.lang.Override + public LoggerFutureStub newStub(io.grpc.Channel channel, io.grpc.CallOptions callOptions) { + return new LoggerFutureStub(channel, callOptions); + } + }; + return LoggerFutureStub.newStub(factory, channel); + } + + /** + */ + public static abstract class LoggerImplBase implements io.grpc.BindableService { + + /** + */ + public void sendLogMessage(com.example.LogMessage request, + io.grpc.stub.StreamObserver responseObserver) { + io.grpc.stub.ServerCalls.asyncUnimplementedUnaryCall(getSendLogMessageMethod(), responseObserver); + } + + @java.lang.Override public final io.grpc.ServerServiceDefinition bindService() { + return io.grpc.ServerServiceDefinition.builder(getServiceDescriptor()) + .addMethod( + getSendLogMessageMethod(), + io.grpc.stub.ServerCalls.asyncUnaryCall( + new MethodHandlers< + com.example.LogMessage, + com.example.Empty>( + this, METHODID_SEND_LOG_MESSAGE))) + .build(); + } + } + + /** + */ + public static final class LoggerStub extends io.grpc.stub.AbstractAsyncStub { + private LoggerStub( + io.grpc.Channel channel, io.grpc.CallOptions callOptions) { + super(channel, callOptions); + } + + @java.lang.Override + protected LoggerStub build( + io.grpc.Channel channel, io.grpc.CallOptions callOptions) { + return new LoggerStub(channel, callOptions); + } + + /** + */ + public void sendLogMessage(com.example.LogMessage request, + io.grpc.stub.StreamObserver responseObserver) { + io.grpc.stub.ClientCalls.asyncUnaryCall( + getChannel().newCall(getSendLogMessageMethod(), getCallOptions()), request, responseObserver); + } + } + + /** + */ + public static final class LoggerBlockingStub extends io.grpc.stub.AbstractBlockingStub { + private LoggerBlockingStub( + io.grpc.Channel channel, io.grpc.CallOptions callOptions) { + super(channel, callOptions); + } + + @java.lang.Override + protected LoggerBlockingStub build( + io.grpc.Channel channel, io.grpc.CallOptions callOptions) { + return new LoggerBlockingStub(channel, callOptions); + } + + /** + */ + public com.example.Empty sendLogMessage(com.example.LogMessage request) { + return io.grpc.stub.ClientCalls.blockingUnaryCall( + getChannel(), getSendLogMessageMethod(), getCallOptions(), request); + } + } + + /** + */ + public static final class LoggerFutureStub extends io.grpc.stub.AbstractFutureStub { + private LoggerFutureStub( + io.grpc.Channel channel, io.grpc.CallOptions callOptions) { + super(channel, callOptions); + } + + @java.lang.Override + protected LoggerFutureStub build( + io.grpc.Channel channel, io.grpc.CallOptions callOptions) { + return new LoggerFutureStub(channel, callOptions); + } + + /** + */ + public com.google.common.util.concurrent.ListenableFuture sendLogMessage( + com.example.LogMessage request) { + return io.grpc.stub.ClientCalls.futureUnaryCall( + getChannel().newCall(getSendLogMessageMethod(), getCallOptions()), request); + } + } + + private static final int METHODID_SEND_LOG_MESSAGE = 0; + + private static final class MethodHandlers implements + io.grpc.stub.ServerCalls.UnaryMethod, + io.grpc.stub.ServerCalls.ServerStreamingMethod, + io.grpc.stub.ServerCalls.ClientStreamingMethod, + io.grpc.stub.ServerCalls.BidiStreamingMethod { + private final LoggerImplBase serviceImpl; + private final int methodId; + + MethodHandlers(LoggerImplBase serviceImpl, int methodId) { + this.serviceImpl = serviceImpl; + this.methodId = methodId; + } + + @java.lang.Override + @java.lang.SuppressWarnings("unchecked") + public void invoke(Req request, io.grpc.stub.StreamObserver responseObserver) { + switch (methodId) { + case METHODID_SEND_LOG_MESSAGE: + serviceImpl.sendLogMessage((com.example.LogMessage) request, + (io.grpc.stub.StreamObserver) responseObserver); + break; + default: + throw new AssertionError(); + } + } + + @java.lang.Override + @java.lang.SuppressWarnings("unchecked") + public io.grpc.stub.StreamObserver invoke( + io.grpc.stub.StreamObserver responseObserver) { + switch (methodId) { + default: + throw new AssertionError(); + } + } + } + + private static abstract class LoggerBaseDescriptorSupplier + implements io.grpc.protobuf.ProtoFileDescriptorSupplier, io.grpc.protobuf.ProtoServiceDescriptorSupplier { + LoggerBaseDescriptorSupplier() {} + + @java.lang.Override + public com.google.protobuf.Descriptors.FileDescriptor getFileDescriptor() { + return com.example.GreeterProto.getDescriptor(); + } + + @java.lang.Override + public com.google.protobuf.Descriptors.ServiceDescriptor getServiceDescriptor() { + return getFileDescriptor().findServiceByName("Logger"); + } + } + + private static final class LoggerFileDescriptorSupplier + extends LoggerBaseDescriptorSupplier { + LoggerFileDescriptorSupplier() {} + } + + private static final class LoggerMethodDescriptorSupplier + extends LoggerBaseDescriptorSupplier + implements io.grpc.protobuf.ProtoMethodDescriptorSupplier { + private final String methodName; + + LoggerMethodDescriptorSupplier(String methodName) { + this.methodName = methodName; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.MethodDescriptor getMethodDescriptor() { + return getServiceDescriptor().findMethodByName(methodName); + } + } + + private static volatile io.grpc.ServiceDescriptor serviceDescriptor; + + public static io.grpc.ServiceDescriptor getServiceDescriptor() { + io.grpc.ServiceDescriptor result = serviceDescriptor; + if (result == null) { + synchronized (LoggerGrpc.class) { + result = serviceDescriptor; + if (result == null) { + serviceDescriptor = result = io.grpc.ServiceDescriptor.newBuilder(SERVICE_NAME) + .setSchemaDescriptor(new LoggerFileDescriptorSupplier()) + .addMethod(getSendLogMessageMethod()) + .build(); + } + } + } + return result; + } +} From f23ad1ea0cd404ddb4417e72e04fa4c369749e01 Mon Sep 17 00:00:00 2001 From: Thomas Stromberg Date: Thu, 11 May 2023 12:34:13 -0400 Subject: [PATCH 4/5] Use latest tag for images --- examples/java/BUILD.bazel | 25 +++++++++++++++++++++---- fetch.bzl | 18 ++++++++++++++++-- 2 files changed, 37 insertions(+), 6 deletions(-) diff --git a/examples/java/BUILD.bazel b/examples/java/BUILD.bazel index 8c3f0ad0..c10ae0da 100644 --- a/examples/java/BUILD.bazel +++ b/examples/java/BUILD.bazel @@ -30,7 +30,7 @@ oci_tarball( # chainguard demo ####################################################### oci_image( - name = "chainguard_image", + name = "chainguard_jre_image", base = "@chainguard_jre", entrypoint = [ "java", @@ -41,7 +41,24 @@ oci_image( ) oci_tarball( - name = "chainguard_tar", - image = ":chainguard_image", - repo_tags = ["chainguard:example"], + name = "chainguard_jre_tar", + image = ":chainguard_jre_image", + repo_tags = ["chainguard_jre:example"], +) + +oci_image( + name = "chainguard_jdk_image", + base = "@chainguard_jdk", + entrypoint = [ + "java", + "-jar", + "/src/main/java/com/example/JavaLoggingClient_deploy.jar", + ], + tars = [":tar"], +) + +oci_tarball( + name = "chainguard_jdk_tar", + image = ":chainguard_jdk_image", + repo_tags = ["chainguard_jdk:example"], ) diff --git a/fetch.bzl b/fetch.bzl index 88bfbcff..2b6be08c 100644 --- a/fetch.bzl +++ b/fetch.bzl @@ -21,8 +21,9 @@ def fetch_images(): # A multi-arch base image oci_pull( name = "distroless_static", - digest = "sha256:c3c3d0230d487c0ad3a0d87ad03ee02ea2ff0b3dcce91ca06a1019e07de05f12", + # digest = "sha256:c3c3d0230d487c0ad3a0d87ad03ee02ea2ff0b3dcce91ca06a1019e07de05f12", image = "gcr.io/distroless/static", + tag = "latest", platforms = [ "linux/amd64", "linux/arm", @@ -36,7 +37,8 @@ def fetch_images(): # A multi-arch base image oci_pull( name = "distroless_base_nossl", - digest = "sha256:b7ed83c586e0901849c7cc9790f98fb6eeac8567bc144eec355c4a077c466c10", + # digest = "sha256:b7ed83c586e0901849c7cc9790f98fb6eeac8567bc144eec355c4a077c466c10", + tag = "latest", image = "gcr.io/distroless/base-nossl-debian11", platforms = [ "linux/amd64", @@ -175,6 +177,18 @@ def fetch_images(): reproducible = False, ) + + oci_pull( + name = "chainguard_jdk", + image = "cgr.dev/chainguard/jdk", + platforms = [ + "linux/amd64", + "linux/arm64", + ], + tag = "latest", + reproducible = False, + ) + oci_pull( name = "apollo_router", # tag = "v1.14.0", From b3be09ae01841d620fc2de859bc2f0fc2e3912b3 Mon Sep 17 00:00:00 2001 From: Thomas Stromberg Date: Thu, 18 May 2023 10:26:20 -0400 Subject: [PATCH 5/5] Add test for chainguard_static image --- fetch.bzl | 90 +++++++------------------------------------ oci/tests/BUILD.bazel | 1 + 2 files changed, 15 insertions(+), 76 deletions(-) diff --git a/fetch.bzl b/fetch.bzl index 2b6be08c..21b3f36c 100644 --- a/fetch.bzl +++ b/fetch.bzl @@ -12,34 +12,15 @@ def fetch_images(): # A single-arch base image oci_pull( name = "distroless_java", - # digest = "sha256:161a1d97d592b3f1919801578c3a47c8e932071168a96267698f4b669c24c76d", + digest = "sha256:161a1d97d592b3f1919801578c3a47c8e932071168a96267698f4b669c24c76d", image = "gcr.io/distroless/java17", - tag = "latest", - reproducible = False, ) # A multi-arch base image oci_pull( name = "distroless_static", - # digest = "sha256:c3c3d0230d487c0ad3a0d87ad03ee02ea2ff0b3dcce91ca06a1019e07de05f12", + digest = "sha256:c3c3d0230d487c0ad3a0d87ad03ee02ea2ff0b3dcce91ca06a1019e07de05f12", image = "gcr.io/distroless/static", - tag = "latest", - platforms = [ - "linux/amd64", - "linux/arm", - "linux/arm64", - "linux/ppc64le", - "linux/s390x", - ], - ) - - - # A multi-arch base image - oci_pull( - name = "distroless_base_nossl", - # digest = "sha256:b7ed83c586e0901849c7cc9790f98fb6eeac8567bc144eec355c4a077c466c10", - tag = "latest", - image = "gcr.io/distroless/base-nossl-debian11", platforms = [ "linux/amd64", "linux/arm", @@ -132,75 +113,32 @@ def fetch_images(): ) oci_pull( - name = "chainguard_static", - image = "cgr.dev/chainguard/static", - platforms = [ - "linux/amd64", - "linux/arm64", - ], - tag = "latest", - reproducible = False, - #digest = "sha256:0fc4584e8ae2a6e71f0bf73213c659f64756b48caab1bba3207c2ea51d292fb0", - ) - - oci_pull( - name = "chainguard_musl_dynamic", - image = "cgr.dev/chainguard/musl-dynamic", - platforms = [ - "linux/amd64", - "linux/arm64", - ], - tag = "latest", - reproducible = False, - # digest = "sha256:3ebfa9ec73439a0b7e24b5d853676ad962aeb2718635ae4b8eba9cc6b7e3c673", - ) - - oci_pull( - name = "chainguard_glibc_dynamic", - image = "cgr.dev/chainguard/glibc-dynamic", + name = "apollo_router", + # tag = "v1.14.0", + digest = "sha256:237c4d6a477b5013bae88549bfc50aaafd68974cab7d2dde2ba5431345e9c95d", + image = "ghcr.io/apollographql/router", platforms = [ "linux/amd64", "linux/arm64", ], - tag = "latest", - reproducible = False, ) oci_pull( - name = "chainguard_jre", - image = "cgr.dev/chainguard/jre", - platforms = [ - "linux/amd64", - "linux/arm64", - ], - tag = "latest", - reproducible = False, + name = "fluxcd_flux", + image = "docker.io/fluxcd/flux:1.25.4", ) - oci_pull( - name = "chainguard_jdk", - image = "cgr.dev/chainguard/jdk", + name = "chainguard_static", + image = "cgr.dev/chainguard/static", platforms = [ "linux/amd64", + "linux/arm", "linux/arm64", + "linux/ppc64le", + "linux/riscv64", + "linux/s390x", ], tag = "latest", reproducible = False, ) - - oci_pull( - name = "apollo_router", - # tag = "v1.14.0", - digest = "sha256:237c4d6a477b5013bae88549bfc50aaafd68974cab7d2dde2ba5431345e9c95d", - image = "ghcr.io/apollographql/router", - platforms = [ - "linux/amd64", - "linux/arm64", - ], - ) - - oci_pull( - name = "fluxcd_flux", - image = "docker.io/fluxcd/flux:1.25.4", - ) diff --git a/oci/tests/BUILD.bazel b/oci/tests/BUILD.bazel index 5375eaab..2faf2d59 100644 --- a/oci/tests/BUILD.bazel +++ b/oci/tests/BUILD.bazel @@ -8,6 +8,7 @@ IMAGES_TO_TEST = { "distroless_java": "gcr.io/distroless/java17@sha256:161a1d97d592b3f1919801578c3a47c8e932071168a96267698f4b669c24c76d", "distroless_static_linux_amd64": "gcr.io/distroless/static@sha256:c3c3d0230d487c0ad3a0d87ad03ee02ea2ff0b3dcce91ca06a1019e07de05f12", "fluxcd_flux_single": "docker.io/fluxcd/flux:1.25.4", + "chainguard_static": "cgr.dev/chainguard/static:latest", } # Use crane to pull images as a comparison for our oci_pull repository rule