mirror of https://github.com/grpc/grpc-java.git
Merge 98e4bdb1f1
into 42e1829b37
This commit is contained in:
commit
c46d6c5194
|
@ -102,6 +102,9 @@ jobs:
|
||||||
- name: Run bazel build
|
- name: Run bazel build
|
||||||
run: bazelisk build //... --enable_bzlmod=${{ matrix.bzlmod }}
|
run: bazelisk build //... --enable_bzlmod=${{ matrix.bzlmod }}
|
||||||
|
|
||||||
|
- name: Run bazel test
|
||||||
|
run: bazelisk test //... --enable_bzlmod=${{ matrix.bzlmod }}
|
||||||
|
|
||||||
- name: Run example bazel build
|
- name: Run example bazel build
|
||||||
run: bazelisk build //... --enable_bzlmod=${{ matrix.bzlmod }}
|
run: bazelisk build //... --enable_bzlmod=${{ matrix.bzlmod }}
|
||||||
working-directory: ./examples
|
working-directory: ./examples
|
||||||
|
|
26
MODULE.bazel
26
MODULE.bazel
|
@ -46,36 +46,16 @@ IO_GRPC_GRPC_JAVA_ARTIFACTS = [
|
||||||
]
|
]
|
||||||
# GRPC_DEPS_END
|
# GRPC_DEPS_END
|
||||||
|
|
||||||
|
bazel_dep(name = "bazel_jar_jar", version = "0.1.7")
|
||||||
bazel_dep(name = "bazel_skylib", version = "1.7.1")
|
bazel_dep(name = "bazel_skylib", version = "1.7.1")
|
||||||
bazel_dep(name = "googleapis", repo_name = "com_google_googleapis", version = "0.0.0-20240326-1c8d509c5")
|
bazel_dep(name = "googleapis", repo_name = "com_google_googleapis", version = "0.0.0-20240326-1c8d509c5")
|
||||||
|
|
||||||
# CEL Spec may be removed when cncf/xds MODULE is no longer using protobuf 27.x
|
|
||||||
bazel_dep(name = "cel-spec", repo_name = "dev_cel", version = "0.15.0")
|
|
||||||
bazel_dep(name = "grpc", repo_name = "com_github_grpc_grpc", version = "1.56.3.bcr.1")
|
|
||||||
bazel_dep(name = "grpc-proto", repo_name = "io_grpc_grpc_proto", version = "0.0.0-20240627-ec30f58")
|
bazel_dep(name = "grpc-proto", repo_name = "io_grpc_grpc_proto", version = "0.0.0-20240627-ec30f58")
|
||||||
bazel_dep(name = "protobuf", repo_name = "com_google_protobuf", version = "23.1")
|
bazel_dep(name = "protobuf", repo_name = "com_google_protobuf", version = "23.1")
|
||||||
bazel_dep(name = "rules_cc", version = "0.0.9")
|
bazel_dep(name = "rules_cc", version = "0.0.9")
|
||||||
bazel_dep(name = "rules_java", version = "5.3.5")
|
bazel_dep(name = "rules_java", version = "5.3.5")
|
||||||
bazel_dep(name = "rules_go", repo_name = "io_bazel_rules_go", version = "0.46.0")
|
|
||||||
bazel_dep(name = "rules_jvm_external", version = "6.0")
|
bazel_dep(name = "rules_jvm_external", version = "6.0")
|
||||||
bazel_dep(name = "rules_proto", version = "5.3.0-21.7")
|
bazel_dep(name = "rules_proto", version = "5.3.0-21.7")
|
||||||
|
|
||||||
non_module_deps = use_extension("//:repositories.bzl", "grpc_java_repositories_extension")
|
|
||||||
|
|
||||||
use_repo(
|
|
||||||
non_module_deps,
|
|
||||||
"com_github_cncf_xds",
|
|
||||||
"envoy_api",
|
|
||||||
)
|
|
||||||
|
|
||||||
grpc_repo_deps_ext = use_extension("@com_github_grpc_grpc//bazel:grpc_deps.bzl", "grpc_repo_deps_ext")
|
|
||||||
|
|
||||||
use_repo(
|
|
||||||
grpc_repo_deps_ext,
|
|
||||||
"com_envoyproxy_protoc_gen_validate",
|
|
||||||
"opencensus_proto",
|
|
||||||
)
|
|
||||||
|
|
||||||
maven = use_extension("@rules_jvm_external//:extensions.bzl", "maven")
|
maven = use_extension("@rules_jvm_external//:extensions.bzl", "maven")
|
||||||
|
|
||||||
maven.install(
|
maven.install(
|
||||||
|
@ -202,7 +182,3 @@ maven.override(
|
||||||
coordinates = "io.grpc:grpc-util",
|
coordinates = "io.grpc:grpc-util",
|
||||||
target = "@io_grpc_grpc_java//util",
|
target = "@io_grpc_grpc_java//util",
|
||||||
)
|
)
|
||||||
|
|
||||||
switched_rules = use_extension("@com_google_googleapis//:extensions.bzl", "switched_rules")
|
|
||||||
|
|
||||||
switched_rules.use_languages(java = True)
|
|
||||||
|
|
|
@ -22,20 +22,19 @@ load("//:repositories.bzl", "grpc_java_repositories")
|
||||||
|
|
||||||
grpc_java_repositories()
|
grpc_java_repositories()
|
||||||
|
|
||||||
|
load("@bazel_jar_jar//:jar_jar.bzl", "jar_jar_repositories")
|
||||||
|
|
||||||
|
jar_jar_repositories()
|
||||||
|
|
||||||
load("@com_google_protobuf//:protobuf_deps.bzl", "PROTOBUF_MAVEN_ARTIFACTS")
|
load("@com_google_protobuf//:protobuf_deps.bzl", "PROTOBUF_MAVEN_ARTIFACTS")
|
||||||
load("@com_google_protobuf//:protobuf_deps.bzl", "protobuf_deps")
|
load("@com_google_protobuf//:protobuf_deps.bzl", "protobuf_deps")
|
||||||
|
|
||||||
protobuf_deps()
|
protobuf_deps()
|
||||||
|
|
||||||
load("@envoy_api//bazel:repositories.bzl", "api_dependencies")
|
|
||||||
|
|
||||||
api_dependencies()
|
|
||||||
|
|
||||||
load("@com_google_googleapis//:repository_rules.bzl", "switched_rules_by_language")
|
load("@com_google_googleapis//:repository_rules.bzl", "switched_rules_by_language")
|
||||||
|
|
||||||
switched_rules_by_language(
|
switched_rules_by_language(
|
||||||
name = "com_google_googleapis_imports",
|
name = "com_google_googleapis_imports",
|
||||||
java = True,
|
|
||||||
)
|
)
|
||||||
|
|
||||||
maven_install(
|
maven_install(
|
||||||
|
|
|
@ -18,6 +18,7 @@ cc_binary(
|
||||||
|
|
||||||
java_library(
|
java_library(
|
||||||
name = "java_grpc_library_deps__do_not_reference",
|
name = "java_grpc_library_deps__do_not_reference",
|
||||||
|
visibility = ["//xds:__pkg__"],
|
||||||
exports = [
|
exports = [
|
||||||
"//api",
|
"//api",
|
||||||
"//protobuf",
|
"//protobuf",
|
||||||
|
|
|
@ -11,10 +11,6 @@ local_path_override(
|
||||||
path = "..",
|
path = "..",
|
||||||
)
|
)
|
||||||
|
|
||||||
switched_rules = use_extension("@com_google_googleapis//:extensions.bzl", "switched_rules")
|
|
||||||
|
|
||||||
switched_rules.use_languages(java = True)
|
|
||||||
|
|
||||||
maven = use_extension("@rules_jvm_external//:extensions.bzl", "maven")
|
maven = use_extension("@rules_jvm_external//:extensions.bzl", "maven")
|
||||||
|
|
||||||
use_repo(maven, "maven")
|
use_repo(maven, "maven")
|
||||||
|
|
|
@ -28,6 +28,10 @@ load("@io_grpc_grpc_java//:repositories.bzl", "grpc_java_repositories")
|
||||||
|
|
||||||
grpc_java_repositories()
|
grpc_java_repositories()
|
||||||
|
|
||||||
|
load("@bazel_jar_jar//:jar_jar.bzl", "jar_jar_repositories")
|
||||||
|
|
||||||
|
jar_jar_repositories()
|
||||||
|
|
||||||
# Protobuf now requires C++14 or higher, which requires Bazel configuration
|
# Protobuf now requires C++14 or higher, which requires Bazel configuration
|
||||||
# outside the WORKSPACE. See .bazelrc in this directory.
|
# outside the WORKSPACE. See .bazelrc in this directory.
|
||||||
load("@com_google_protobuf//:protobuf_deps.bzl", "PROTOBUF_MAVEN_ARTIFACTS")
|
load("@com_google_protobuf//:protobuf_deps.bzl", "PROTOBUF_MAVEN_ARTIFACTS")
|
||||||
|
@ -35,15 +39,10 @@ load("@com_google_protobuf//:protobuf_deps.bzl", "protobuf_deps")
|
||||||
|
|
||||||
protobuf_deps()
|
protobuf_deps()
|
||||||
|
|
||||||
load("@envoy_api//bazel:repositories.bzl", "api_dependencies")
|
|
||||||
|
|
||||||
api_dependencies()
|
|
||||||
|
|
||||||
load("@com_google_googleapis//:repository_rules.bzl", "switched_rules_by_language")
|
load("@com_google_googleapis//:repository_rules.bzl", "switched_rules_by_language")
|
||||||
|
|
||||||
switched_rules_by_language(
|
switched_rules_by_language(
|
||||||
name = "com_google_googleapis_imports",
|
name = "com_google_googleapis_imports",
|
||||||
java = True,
|
|
||||||
)
|
)
|
||||||
|
|
||||||
maven_install(
|
maven_install(
|
||||||
|
|
|
@ -147,6 +147,33 @@ _java_grpc_library = rule(
|
||||||
implementation = _java_rpc_library_impl,
|
implementation = _java_rpc_library_impl,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
# A copy of _java_grpc_library, except with a neverlink=1 _toolchain
|
||||||
|
INTERNAL_java_grpc_library_for_xds = rule(
|
||||||
|
attrs = {
|
||||||
|
"srcs": attr.label_list(
|
||||||
|
mandatory = True,
|
||||||
|
allow_empty = False,
|
||||||
|
providers = [ProtoInfo],
|
||||||
|
),
|
||||||
|
"deps": attr.label_list(
|
||||||
|
mandatory = True,
|
||||||
|
allow_empty = False,
|
||||||
|
providers = [JavaInfo],
|
||||||
|
),
|
||||||
|
"_toolchain": attr.label(
|
||||||
|
default = Label("//xds:java_grpc_library_toolchain"),
|
||||||
|
),
|
||||||
|
},
|
||||||
|
toolchains = ["@bazel_tools//tools/jdk:toolchain_type"],
|
||||||
|
fragments = ["java"],
|
||||||
|
outputs = {
|
||||||
|
"jar": "lib%{name}.jar",
|
||||||
|
"srcjar": "lib%{name}-src.jar",
|
||||||
|
},
|
||||||
|
provides = [JavaInfo],
|
||||||
|
implementation = _java_rpc_library_impl,
|
||||||
|
)
|
||||||
|
|
||||||
_java_lite_grpc_library = rule(
|
_java_lite_grpc_library = rule(
|
||||||
attrs = {
|
attrs = {
|
||||||
"srcs": attr.label_list(
|
"srcs": attr.label_list(
|
||||||
|
|
|
@ -87,38 +87,11 @@ IO_GRPC_GRPC_JAVA_OVERRIDE_TARGETS = {
|
||||||
"io.grpc:grpc-util": "@io_grpc_grpc_java//util",
|
"io.grpc:grpc-util": "@io_grpc_grpc_java//util",
|
||||||
}
|
}
|
||||||
|
|
||||||
def grpc_java_repositories(bzlmod = False):
|
def grpc_java_repositories():
|
||||||
"""Imports dependencies for grpc-java."""
|
"""Imports dependencies for grpc-java."""
|
||||||
if not bzlmod and not native.existing_rule("dev_cel"):
|
if not native.existing_rule("com_google_protobuf"):
|
||||||
http_archive(
|
|
||||||
name = "dev_cel",
|
|
||||||
strip_prefix = "cel-spec-0.15.0",
|
|
||||||
sha256 = "3ee09eb69dbe77722e9dee23dc48dc2cd9f765869fcf5ffb1226587c81791a0b",
|
|
||||||
urls = [
|
|
||||||
"https://github.com/google/cel-spec/archive/refs/tags/v0.15.0.tar.gz",
|
|
||||||
],
|
|
||||||
)
|
|
||||||
if not native.existing_rule("com_github_cncf_xds"):
|
|
||||||
http_archive(
|
|
||||||
name = "com_github_cncf_xds",
|
|
||||||
strip_prefix = "xds-2ac532fd44436293585084f8d94c6bdb17835af0",
|
|
||||||
sha256 = "790c4c83b6950bb602fec221f6a529d9f368cdc8852aae7d2592d0d04b015f37",
|
|
||||||
urls = [
|
|
||||||
"https://github.com/cncf/xds/archive/2ac532fd44436293585084f8d94c6bdb17835af0.tar.gz",
|
|
||||||
],
|
|
||||||
)
|
|
||||||
if not bzlmod and not native.existing_rule("com_github_grpc_grpc"):
|
|
||||||
http_archive(
|
|
||||||
name = "com_github_grpc_grpc",
|
|
||||||
strip_prefix = "grpc-1.46.0",
|
|
||||||
sha256 = "67423a4cd706ce16a88d1549297023f0f9f0d695a96dd684adc21e67b021f9bc",
|
|
||||||
urls = [
|
|
||||||
"https://github.com/grpc/grpc/archive/v1.46.0.tar.gz",
|
|
||||||
],
|
|
||||||
)
|
|
||||||
if not bzlmod and not native.existing_rule("com_google_protobuf"):
|
|
||||||
com_google_protobuf()
|
com_google_protobuf()
|
||||||
if not bzlmod and not native.existing_rule("com_google_googleapis"):
|
if not native.existing_rule("com_google_googleapis"):
|
||||||
http_archive(
|
http_archive(
|
||||||
name = "com_google_googleapis",
|
name = "com_google_googleapis",
|
||||||
sha256 = "49930468563dd48283e8301e8d4e71436bf6d27ac27c235224cc1a098710835d",
|
sha256 = "49930468563dd48283e8301e8d4e71436bf6d27ac27c235224cc1a098710835d",
|
||||||
|
@ -127,25 +100,14 @@ def grpc_java_repositories(bzlmod = False):
|
||||||
"https://github.com/googleapis/googleapis/archive/ca1372c6d7bcb199638ebfdb40d2b2660bab7b88.tar.gz",
|
"https://github.com/googleapis/googleapis/archive/ca1372c6d7bcb199638ebfdb40d2b2660bab7b88.tar.gz",
|
||||||
],
|
],
|
||||||
)
|
)
|
||||||
if not bzlmod and not native.existing_rule("io_bazel_rules_go"):
|
|
||||||
http_archive(
|
|
||||||
name = "io_bazel_rules_go",
|
|
||||||
sha256 = "ab21448cef298740765f33a7f5acee0607203e4ea321219f2a4c85a6e0fb0a27",
|
|
||||||
urls = [
|
|
||||||
"https://mirror.bazel.build/github.com/bazelbuild/rules_go/releases/download/v0.32.0/rules_go-v0.32.0.zip",
|
|
||||||
"https://github.com/bazelbuild/rules_go/releases/download/v0.32.0/rules_go-v0.32.0.zip",
|
|
||||||
],
|
|
||||||
)
|
|
||||||
if not native.existing_rule("io_grpc_grpc_proto"):
|
if not native.existing_rule("io_grpc_grpc_proto"):
|
||||||
io_grpc_grpc_proto()
|
io_grpc_grpc_proto()
|
||||||
if not native.existing_rule("envoy_api"):
|
if not native.existing_rule("bazel_jar_jar"):
|
||||||
http_archive(
|
http_archive(
|
||||||
name = "envoy_api",
|
name = "bazel_jar_jar",
|
||||||
sha256 = "ecf71817233eba19cc8b4ee14e126ffd5838065d5b5a92b2506258a42ac55199",
|
sha256 = "3117f913c732142a795551f530d02c9157b9ea895e6b2de0fbb5af54f03040a5",
|
||||||
strip_prefix = "data-plane-api-0bc95493c5e88b7b07e62758d23b39341813a827",
|
strip_prefix = "bazel_jar_jar-0.1.6",
|
||||||
urls = [
|
url = "https://github.com/bazeltools/bazel_jar_jar/releases/download/v0.1.6/bazel_jar_jar-v0.1.6.tar.gz",
|
||||||
"https://github.com/envoyproxy/data-plane-api/archive/0bc95493c5e88b7b07e62758d23b39341813a827.tar.gz",
|
|
||||||
],
|
|
||||||
)
|
)
|
||||||
|
|
||||||
def com_google_protobuf():
|
def com_google_protobuf():
|
||||||
|
@ -166,8 +128,3 @@ def io_grpc_grpc_proto():
|
||||||
strip_prefix = "grpc-proto-4f245d272a28a680606c0739753506880cf33b5f",
|
strip_prefix = "grpc-proto-4f245d272a28a680606c0739753506880cf33b5f",
|
||||||
urls = ["https://github.com/grpc/grpc-proto/archive/4f245d272a28a680606c0739753506880cf33b5f.zip"],
|
urls = ["https://github.com/grpc/grpc-proto/archive/4f245d272a28a680606c0739753506880cf33b5f.zip"],
|
||||||
)
|
)
|
||||||
|
|
||||||
def _grpc_java_repositories_extension(_):
|
|
||||||
grpc_java_repositories(bzlmod = True)
|
|
||||||
|
|
||||||
grpc_java_repositories_extension = module_extension(implementation = _grpc_java_repositories_extension)
|
|
||||||
|
|
|
@ -0,0 +1,20 @@
|
||||||
|
load("//:java_grpc_library.bzl", "java_grpc_library")
|
||||||
|
|
||||||
|
proto_library(
|
||||||
|
name = "simpleservice_proto",
|
||||||
|
srcs = ["src/main/proto/io/grpc/testing/protobuf/simpleservice.proto"],
|
||||||
|
strip_import_prefix = "src/main/proto/",
|
||||||
|
)
|
||||||
|
|
||||||
|
java_proto_library(
|
||||||
|
name = "simpleservice_java_proto",
|
||||||
|
visibility = ["//xds:__pkg__"],
|
||||||
|
deps = [":simpleservice_proto"],
|
||||||
|
)
|
||||||
|
|
||||||
|
java_grpc_library(
|
||||||
|
name = "simpleservice_java_grpc",
|
||||||
|
srcs = [":simpleservice_proto"],
|
||||||
|
visibility = ["//xds:__pkg__"],
|
||||||
|
deps = [":simpleservice_java_proto"],
|
||||||
|
)
|
371
xds/BUILD.bazel
371
xds/BUILD.bazel
|
@ -1,5 +1,6 @@
|
||||||
|
load("@bazel_jar_jar//:jar_jar.bzl", "jar_jar")
|
||||||
load("@rules_jvm_external//:defs.bzl", "artifact")
|
load("@rules_jvm_external//:defs.bzl", "artifact")
|
||||||
load("//:java_grpc_library.bzl", "java_grpc_library")
|
load("//:java_grpc_library.bzl", "INTERNAL_java_grpc_library_for_xds", "java_grpc_library", "java_rpc_toolchain")
|
||||||
|
|
||||||
# Mirrors the dependencies included in the artifact on Maven Central for usage
|
# Mirrors the dependencies included in the artifact on Maven Central for usage
|
||||||
# with maven_install's override_targets. Should only be used as a dep for
|
# with maven_install's override_targets. Should only be used as a dep for
|
||||||
|
@ -13,25 +14,11 @@ java_library(
|
||||||
],
|
],
|
||||||
)
|
)
|
||||||
|
|
||||||
|
# Ordinary deps for :xds
|
||||||
java_library(
|
java_library(
|
||||||
name = "xds",
|
name = "xds_deps_depend",
|
||||||
srcs = glob(
|
exports = [
|
||||||
[
|
|
||||||
"src/main/java/**/*.java",
|
|
||||||
"third_party/zero-allocation-hashing/main/java/**/*.java",
|
|
||||||
],
|
|
||||||
exclude = ["src/main/java/io/grpc/xds/orca/**"],
|
|
||||||
),
|
|
||||||
resources = glob([
|
|
||||||
"src/main/resources/**",
|
|
||||||
]),
|
|
||||||
visibility = ["//visibility:public"],
|
|
||||||
deps = [
|
|
||||||
":envoy_service_discovery_v3_java_grpc",
|
|
||||||
":envoy_service_load_stats_v3_java_grpc",
|
|
||||||
":envoy_service_status_v3_java_grpc",
|
|
||||||
":orca",
|
":orca",
|
||||||
":xds_protos_java",
|
|
||||||
"//:auto_value_annotations",
|
"//:auto_value_annotations",
|
||||||
"//alts",
|
"//alts",
|
||||||
"//api",
|
"//api",
|
||||||
|
@ -43,7 +30,6 @@ java_library(
|
||||||
"//services:metrics_internal",
|
"//services:metrics_internal",
|
||||||
"//stub",
|
"//stub",
|
||||||
"//util",
|
"//util",
|
||||||
"@com_google_googleapis//google/rpc:rpc_java_proto",
|
|
||||||
"@com_google_protobuf//:protobuf_java",
|
"@com_google_protobuf//:protobuf_java",
|
||||||
"@com_google_protobuf//:protobuf_java_util",
|
"@com_google_protobuf//:protobuf_java_util",
|
||||||
"@maven//:com_google_auth_google_auth_library_oauth2_http",
|
"@maven//:com_google_auth_google_auth_library_oauth2_http",
|
||||||
|
@ -58,70 +44,89 @@ java_library(
|
||||||
artifact("io.netty:netty-handler"),
|
artifact("io.netty:netty-handler"),
|
||||||
artifact("io.netty:netty-transport"),
|
artifact("io.netty:netty-transport"),
|
||||||
],
|
],
|
||||||
)
|
runtime_deps = [
|
||||||
|
"//compiler:java_grpc_library_deps__do_not_reference",
|
||||||
java_proto_library(
|
|
||||||
name = "xds_protos_java",
|
|
||||||
deps = [
|
|
||||||
"@com_github_cncf_xds//udpa/type/v1:pkg",
|
|
||||||
"@com_github_cncf_xds//xds/type/v3:pkg",
|
|
||||||
"@envoy_api//envoy/admin/v3:pkg",
|
|
||||||
"@envoy_api//envoy/config/cluster/v3:pkg",
|
|
||||||
"@envoy_api//envoy/config/core/v3:pkg",
|
|
||||||
"@envoy_api//envoy/config/endpoint/v3:pkg",
|
|
||||||
"@envoy_api//envoy/config/listener/v3:pkg",
|
|
||||||
"@envoy_api//envoy/config/rbac/v3:pkg",
|
|
||||||
"@envoy_api//envoy/config/route/v3:pkg",
|
|
||||||
"@envoy_api//envoy/extensions/clusters/aggregate/v3:pkg",
|
|
||||||
"@envoy_api//envoy/extensions/filters/common/fault/v3:pkg",
|
|
||||||
"@envoy_api//envoy/extensions/filters/http/fault/v3:pkg",
|
|
||||||
"@envoy_api//envoy/extensions/filters/http/gcp_authn/v3:pkg",
|
|
||||||
"@envoy_api//envoy/extensions/filters/http/rbac/v3:pkg",
|
|
||||||
"@envoy_api//envoy/extensions/filters/http/router/v3:pkg",
|
|
||||||
"@envoy_api//envoy/extensions/filters/network/http_connection_manager/v3:pkg",
|
|
||||||
"@envoy_api//envoy/extensions/load_balancing_policies/client_side_weighted_round_robin/v3:pkg",
|
|
||||||
"@envoy_api//envoy/extensions/load_balancing_policies/least_request/v3:pkg",
|
|
||||||
"@envoy_api//envoy/extensions/load_balancing_policies/pick_first/v3:pkg",
|
|
||||||
"@envoy_api//envoy/extensions/load_balancing_policies/ring_hash/v3:pkg",
|
|
||||||
"@envoy_api//envoy/extensions/load_balancing_policies/round_robin/v3:pkg",
|
|
||||||
"@envoy_api//envoy/extensions/load_balancing_policies/wrr_locality/v3:pkg",
|
|
||||||
"@envoy_api//envoy/extensions/transport_sockets/http_11_proxy/v3:pkg",
|
|
||||||
"@envoy_api//envoy/extensions/transport_sockets/tls/v3:pkg",
|
|
||||||
"@envoy_api//envoy/service/discovery/v3:pkg",
|
|
||||||
"@envoy_api//envoy/service/load_stats/v3:pkg",
|
|
||||||
"@envoy_api//envoy/service/status/v3:pkg",
|
|
||||||
"@envoy_api//envoy/type/matcher/v3:pkg",
|
|
||||||
"@envoy_api//envoy/type/v3:pkg",
|
|
||||||
],
|
],
|
||||||
)
|
)
|
||||||
|
|
||||||
java_grpc_library(
|
java_library(
|
||||||
name = "envoy_service_discovery_v3_java_grpc",
|
name = "xds_deps_depend_neverlink",
|
||||||
srcs = ["@envoy_api//envoy/service/discovery/v3:pkg"],
|
neverlink = 1,
|
||||||
deps = [":xds_protos_java"],
|
exports = [":xds_deps_depend"],
|
||||||
)
|
)
|
||||||
|
|
||||||
java_grpc_library(
|
# Deps to be combined into the :xds jar itself
|
||||||
name = "envoy_service_load_stats_v3_java_grpc",
|
java_library(
|
||||||
srcs = ["@envoy_api//envoy/service/load_stats/v3:pkg"],
|
name = "xds_deps_embed",
|
||||||
deps = [":xds_protos_java"],
|
exports = [
|
||||||
|
":envoy_java_grpc",
|
||||||
|
":envoy_java_proto",
|
||||||
|
":googleapis_rpc_java_proto",
|
||||||
|
":xds_java_proto",
|
||||||
|
],
|
||||||
)
|
)
|
||||||
|
|
||||||
java_grpc_library(
|
java_binary(
|
||||||
name = "envoy_service_status_v3_java_grpc",
|
name = "xds_notjarjar",
|
||||||
srcs = ["@envoy_api//envoy/service/status/v3:pkg"],
|
srcs = glob(
|
||||||
deps = [":xds_protos_java"],
|
[
|
||||||
|
"src/main/java/**/*.java",
|
||||||
|
"third_party/zero-allocation-hashing/main/java/**/*.java",
|
||||||
|
],
|
||||||
|
exclude = ["src/main/java/io/grpc/xds/orca/**"],
|
||||||
|
),
|
||||||
|
main_class = "unused",
|
||||||
|
resources = glob([
|
||||||
|
"src/main/resources/**",
|
||||||
|
]),
|
||||||
|
deps = [
|
||||||
|
# Do not add additional dependencies here; add them to one of these two deps instead
|
||||||
|
":xds_deps_depend_neverlink",
|
||||||
|
":xds_deps_embed",
|
||||||
|
],
|
||||||
|
)
|
||||||
|
|
||||||
|
JAR_JAR_RULES = [
|
||||||
|
"zap com.google.protobuf.**", # Drop codegen dep
|
||||||
|
# Keep in sync with build.gradle's shadowJar
|
||||||
|
"rule com.github.udpa.** io.grpc.xds.shaded.com.github.udpa.@1",
|
||||||
|
"rule com.github.xds.** io.grpc.xds.shaded.com.github.xds.@1",
|
||||||
|
"rule com.google.api.expr.** io.grpc.xds.shaded.com.google.api.expr.@1",
|
||||||
|
"rule com.google.security.** io.grpc.xds.shaded.com.google.security.@1",
|
||||||
|
"rule dev.cel.expr.** io.grpc.xds.shaded.dev.cel.expr.@1",
|
||||||
|
"rule envoy.annotations.** io.grpc.xds.shaded.envoy.annotations.@1",
|
||||||
|
"rule io.envoyproxy.** io.grpc.xds.shaded.io.envoyproxy.@1",
|
||||||
|
"rule udpa.annotations.** io.grpc.xds.shaded.udpa.annotations.@1",
|
||||||
|
"rule xds.annotations.** io.grpc.xds.shaded.xds.annotations.@1",
|
||||||
|
]
|
||||||
|
|
||||||
|
jar_jar(
|
||||||
|
name = "xds_jarjar",
|
||||||
|
inline_rules = JAR_JAR_RULES,
|
||||||
|
input_jar = ":xds_notjarjar_deploy.jar",
|
||||||
)
|
)
|
||||||
|
|
||||||
java_library(
|
java_library(
|
||||||
name = "orca",
|
name = "xds",
|
||||||
srcs = glob([
|
|
||||||
"src/main/java/io/grpc/xds/orca/*.java",
|
|
||||||
]),
|
|
||||||
visibility = ["//visibility:public"],
|
visibility = ["//visibility:public"],
|
||||||
|
exports = [":xds_jarjar"],
|
||||||
|
runtime_deps = [":xds_deps_depend"],
|
||||||
|
)
|
||||||
|
|
||||||
|
java_proto_library(
|
||||||
|
name = "googleapis_rpc_java_proto",
|
||||||
deps = [
|
deps = [
|
||||||
":orca_protos_java",
|
"@com_google_googleapis//google/rpc:code_proto",
|
||||||
":xds_service_orca_v3_java_grpc",
|
"@com_google_googleapis//google/rpc:status_proto",
|
||||||
|
],
|
||||||
|
)
|
||||||
|
|
||||||
|
# Ordinary deps for :orca
|
||||||
|
java_library(
|
||||||
|
name = "orca_deps_depend",
|
||||||
|
exports = [
|
||||||
|
":xds_orca_java_grpc",
|
||||||
|
":xds_orca_java_proto",
|
||||||
"//api",
|
"//api",
|
||||||
"//context",
|
"//context",
|
||||||
"//core:internal",
|
"//core:internal",
|
||||||
|
@ -136,16 +141,222 @@ java_library(
|
||||||
],
|
],
|
||||||
)
|
)
|
||||||
|
|
||||||
java_proto_library(
|
java_library(
|
||||||
name = "orca_protos_java",
|
name = "orca_deps_depend_neverlink",
|
||||||
deps = [
|
neverlink = 1,
|
||||||
"@com_github_cncf_xds//xds/data/orca/v3:pkg",
|
exports = [":orca_deps_depend"],
|
||||||
"@com_github_cncf_xds//xds/service/orca/v3:pkg",
|
)
|
||||||
|
|
||||||
|
# Deps to be combined into the :orca jar itself
|
||||||
|
java_library(
|
||||||
|
name = "orca_deps_embed",
|
||||||
|
exports = [
|
||||||
|
":xds_orca_java_grpc",
|
||||||
|
":xds_orca_java_proto",
|
||||||
],
|
],
|
||||||
)
|
)
|
||||||
|
|
||||||
java_grpc_library(
|
java_binary(
|
||||||
name = "xds_service_orca_v3_java_grpc",
|
name = "orca_notjarjar",
|
||||||
srcs = ["@com_github_cncf_xds//xds/service/orca/v3:pkg"],
|
srcs = glob([
|
||||||
deps = [":orca_protos_java"],
|
"src/main/java/io/grpc/xds/orca/*.java",
|
||||||
|
]),
|
||||||
|
main_class = "unused",
|
||||||
|
visibility = ["//visibility:public"],
|
||||||
|
deps = [
|
||||||
|
# Do not add additional dependencies here; add them to one of these two deps instead
|
||||||
|
":orca_deps_depend_neverlink",
|
||||||
|
":orca_deps_embed",
|
||||||
|
],
|
||||||
|
)
|
||||||
|
|
||||||
|
jar_jar(
|
||||||
|
name = "orca_jarjar",
|
||||||
|
inline_rules = JAR_JAR_RULES,
|
||||||
|
input_jar = ":orca_notjarjar_deploy.jar",
|
||||||
|
)
|
||||||
|
|
||||||
|
java_library(
|
||||||
|
name = "orca",
|
||||||
|
visibility = ["//visibility:public"],
|
||||||
|
exports = [":orca_jarjar"],
|
||||||
|
runtime_deps = [":orca_deps_depend"],
|
||||||
|
)
|
||||||
|
|
||||||
|
java_proto_library(
|
||||||
|
name = "orca_java_proto",
|
||||||
|
deps = [":xds_proto"],
|
||||||
|
)
|
||||||
|
|
||||||
|
java_grpc_library(
|
||||||
|
name = "orca_java_grpc",
|
||||||
|
srcs = [":xds_proto"],
|
||||||
|
deps = [":orca_java_proto"],
|
||||||
|
)
|
||||||
|
|
||||||
|
proto_library(
|
||||||
|
name = "cel_spec_proto",
|
||||||
|
srcs = glob(["third_party/cel-spec/src/main/proto/**/*.proto"]),
|
||||||
|
strip_import_prefix = "third_party/cel-spec/src/main/proto/",
|
||||||
|
deps = [
|
||||||
|
"@com_google_protobuf//:duration_proto",
|
||||||
|
"@com_google_protobuf//:empty_proto",
|
||||||
|
"@com_google_protobuf//:struct_proto",
|
||||||
|
"@com_google_protobuf//:timestamp_proto",
|
||||||
|
],
|
||||||
|
)
|
||||||
|
|
||||||
|
proto_library(
|
||||||
|
name = "envoy_proto",
|
||||||
|
srcs = glob(["third_party/envoy/src/main/proto/**/*.proto"]),
|
||||||
|
strip_import_prefix = "third_party/envoy/src/main/proto/",
|
||||||
|
deps = [
|
||||||
|
":googleapis_proto",
|
||||||
|
":protoc_gen_validate_proto",
|
||||||
|
":xds_proto",
|
||||||
|
"@com_google_googleapis//google/api:annotations_proto",
|
||||||
|
"@com_google_googleapis//google/rpc:status_proto",
|
||||||
|
"@com_google_protobuf//:any_proto",
|
||||||
|
"@com_google_protobuf//:descriptor_proto",
|
||||||
|
"@com_google_protobuf//:duration_proto",
|
||||||
|
"@com_google_protobuf//:empty_proto",
|
||||||
|
"@com_google_protobuf//:struct_proto",
|
||||||
|
"@com_google_protobuf//:timestamp_proto",
|
||||||
|
"@com_google_protobuf//:wrappers_proto",
|
||||||
|
],
|
||||||
|
)
|
||||||
|
|
||||||
|
java_proto_library(
|
||||||
|
name = "envoy_java_proto",
|
||||||
|
deps = [":envoy_proto"],
|
||||||
|
)
|
||||||
|
|
||||||
|
INTERNAL_java_grpc_library_for_xds(
|
||||||
|
name = "envoy_java_grpc",
|
||||||
|
srcs = [":envoy_proto"],
|
||||||
|
deps = [":envoy_java_proto"],
|
||||||
|
)
|
||||||
|
|
||||||
|
proto_library(
|
||||||
|
name = "googleapis_proto",
|
||||||
|
srcs = glob(["third_party/googleapis/src/main/proto/**/*.proto"]),
|
||||||
|
strip_import_prefix = "third_party/googleapis/src/main/proto/",
|
||||||
|
deps = [
|
||||||
|
"@com_google_protobuf//:duration_proto",
|
||||||
|
"@com_google_protobuf//:empty_proto",
|
||||||
|
"@com_google_protobuf//:struct_proto",
|
||||||
|
"@com_google_protobuf//:timestamp_proto",
|
||||||
|
],
|
||||||
|
)
|
||||||
|
|
||||||
|
proto_library(
|
||||||
|
name = "protoc_gen_validate_proto",
|
||||||
|
srcs = glob(["third_party/protoc-gen-validate/src/main/proto/**/*.proto"]),
|
||||||
|
strip_import_prefix = "third_party/protoc-gen-validate/src/main/proto/",
|
||||||
|
deps = [
|
||||||
|
"@com_google_protobuf//:descriptor_proto",
|
||||||
|
"@com_google_protobuf//:duration_proto",
|
||||||
|
"@com_google_protobuf//:timestamp_proto",
|
||||||
|
],
|
||||||
|
)
|
||||||
|
|
||||||
|
proto_library(
|
||||||
|
name = "xds_proto",
|
||||||
|
srcs = glob(
|
||||||
|
["third_party/xds/src/main/proto/**/*.proto"],
|
||||||
|
exclude = [
|
||||||
|
"third_party/xds/src/main/proto/xds/data/orca/v3/*.proto",
|
||||||
|
"third_party/xds/src/main/proto/xds/service/orca/v3/*.proto",
|
||||||
|
],
|
||||||
|
),
|
||||||
|
strip_import_prefix = "third_party/xds/src/main/proto/",
|
||||||
|
deps = [
|
||||||
|
":cel_spec_proto",
|
||||||
|
":googleapis_proto",
|
||||||
|
":protoc_gen_validate_proto",
|
||||||
|
"@com_google_protobuf//:any_proto",
|
||||||
|
"@com_google_protobuf//:descriptor_proto",
|
||||||
|
"@com_google_protobuf//:duration_proto",
|
||||||
|
"@com_google_protobuf//:struct_proto",
|
||||||
|
"@com_google_protobuf//:wrappers_proto",
|
||||||
|
],
|
||||||
|
)
|
||||||
|
|
||||||
|
java_proto_library(
|
||||||
|
name = "xds_java_proto",
|
||||||
|
deps = [":xds_proto"],
|
||||||
|
)
|
||||||
|
|
||||||
|
proto_library(
|
||||||
|
name = "xds_orca_proto",
|
||||||
|
srcs = glob([
|
||||||
|
"third_party/xds/src/main/proto/xds/data/orca/v3/*.proto",
|
||||||
|
"third_party/xds/src/main/proto/xds/service/orca/v3/*.proto",
|
||||||
|
]),
|
||||||
|
strip_import_prefix = "third_party/xds/src/main/proto/",
|
||||||
|
deps = [
|
||||||
|
":protoc_gen_validate_proto",
|
||||||
|
"@com_google_protobuf//:duration_proto",
|
||||||
|
],
|
||||||
|
)
|
||||||
|
|
||||||
|
java_proto_library(
|
||||||
|
name = "xds_orca_java_proto",
|
||||||
|
deps = [":xds_orca_proto"],
|
||||||
|
)
|
||||||
|
|
||||||
|
java_grpc_library(
|
||||||
|
name = "xds_orca_java_grpc",
|
||||||
|
srcs = [":xds_orca_proto"],
|
||||||
|
deps = [":xds_orca_java_proto"],
|
||||||
|
)
|
||||||
|
|
||||||
|
java_rpc_toolchain(
|
||||||
|
name = "java_grpc_library_toolchain",
|
||||||
|
plugin = "//compiler:grpc_java_plugin",
|
||||||
|
runtime = [":java_grpc_library_deps"],
|
||||||
|
)
|
||||||
|
|
||||||
|
java_library(
|
||||||
|
name = "java_grpc_library_deps",
|
||||||
|
neverlink = 1,
|
||||||
|
exports = ["//compiler:java_grpc_library_deps__do_not_reference"],
|
||||||
|
)
|
||||||
|
|
||||||
|
java_library(
|
||||||
|
name = "testlib",
|
||||||
|
testonly = 1,
|
||||||
|
srcs = [
|
||||||
|
"src/test/java/io/grpc/xds/ControlPlaneRule.java",
|
||||||
|
"src/test/java/io/grpc/xds/DataPlaneRule.java",
|
||||||
|
"src/test/java/io/grpc/xds/FakeControlPlaneXdsIntegrationTest.java",
|
||||||
|
"src/test/java/io/grpc/xds/MetadataLoadBalancerProvider.java",
|
||||||
|
"src/test/java/io/grpc/xds/XdsTestControlPlaneService.java",
|
||||||
|
"src/test/java/io/grpc/xds/XdsTestLoadReportingService.java",
|
||||||
|
],
|
||||||
|
deps = [
|
||||||
|
":envoy_java_grpc",
|
||||||
|
":envoy_java_proto",
|
||||||
|
":xds",
|
||||||
|
":xds_java_proto",
|
||||||
|
"//api",
|
||||||
|
"//core:internal",
|
||||||
|
"//stub",
|
||||||
|
"//testing",
|
||||||
|
"//testing-proto:simpleservice_java_grpc",
|
||||||
|
"//testing-proto:simpleservice_java_proto",
|
||||||
|
"//util",
|
||||||
|
"@com_google_protobuf//java/core",
|
||||||
|
"@maven//:com_google_code_findbugs_jsr305",
|
||||||
|
"@maven//:com_google_guava_guava",
|
||||||
|
"@maven//:com_google_truth_truth",
|
||||||
|
"@maven//:junit_junit",
|
||||||
|
],
|
||||||
|
)
|
||||||
|
|
||||||
|
java_test(
|
||||||
|
name = "FakeControlPlaneXdsIntegrationTest",
|
||||||
|
size = "small",
|
||||||
|
test_class = "io.grpc.xds.FakeControlPlaneXdsIntegrationTest",
|
||||||
|
runtime_deps = [":testlib"],
|
||||||
)
|
)
|
||||||
|
|
|
@ -17,12 +17,11 @@ sourceSets {
|
||||||
srcDir "${projectDir}/third_party/zero-allocation-hashing/main/java"
|
srcDir "${projectDir}/third_party/zero-allocation-hashing/main/java"
|
||||||
}
|
}
|
||||||
proto {
|
proto {
|
||||||
|
srcDir 'third_party/cel-spec/src/main/proto'
|
||||||
srcDir 'third_party/envoy/src/main/proto'
|
srcDir 'third_party/envoy/src/main/proto'
|
||||||
|
srcDir 'third_party/googleapis/src/main/proto'
|
||||||
srcDir 'third_party/protoc-gen-validate/src/main/proto'
|
srcDir 'third_party/protoc-gen-validate/src/main/proto'
|
||||||
srcDir 'third_party/xds/src/main/proto'
|
srcDir 'third_party/xds/src/main/proto'
|
||||||
srcDir 'third_party/cel-spec/src/main/proto'
|
|
||||||
srcDir 'third_party/googleapis/src/main/proto'
|
|
||||||
srcDir 'third_party/istio/src/main/proto'
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
main {
|
main {
|
||||||
|
@ -186,6 +185,7 @@ tasks.named("shadowJar").configure {
|
||||||
include(project(':grpc-xds'))
|
include(project(':grpc-xds'))
|
||||||
}
|
}
|
||||||
// Relocated packages commonly need exclusions in jacocoTestReport and javadoc
|
// Relocated packages commonly need exclusions in jacocoTestReport and javadoc
|
||||||
|
// Keep in sync with BUILD.bazel's JAR_JAR_RULES
|
||||||
relocate 'com.github.udpa', "${prefixName}.shaded.com.github.udpa"
|
relocate 'com.github.udpa', "${prefixName}.shaded.com.github.udpa"
|
||||||
relocate 'com.github.xds', "${prefixName}.shaded.com.github.xds"
|
relocate 'com.github.xds', "${prefixName}.shaded.com.github.xds"
|
||||||
relocate 'com.google.api.expr', "${prefixName}.shaded.com.google.api.expr"
|
relocate 'com.google.api.expr', "${prefixName}.shaded.com.google.api.expr"
|
||||||
|
|
|
@ -24,6 +24,7 @@ import static io.grpc.xds.XdsTestControlPlaneService.ADS_TYPE_URL_RDS;
|
||||||
import com.google.common.collect.ImmutableMap;
|
import com.google.common.collect.ImmutableMap;
|
||||||
import com.google.common.collect.Lists;
|
import com.google.common.collect.Lists;
|
||||||
import com.google.protobuf.Any;
|
import com.google.protobuf.Any;
|
||||||
|
import com.google.protobuf.BoolValue;
|
||||||
import com.google.protobuf.Message;
|
import com.google.protobuf.Message;
|
||||||
import com.google.protobuf.UInt32Value;
|
import com.google.protobuf.UInt32Value;
|
||||||
import io.envoyproxy.envoy.config.cluster.v3.Cluster;
|
import io.envoyproxy.envoy.config.cluster.v3.Cluster;
|
||||||
|
@ -44,6 +45,7 @@ import io.envoyproxy.envoy.config.listener.v3.FilterChainMatch;
|
||||||
import io.envoyproxy.envoy.config.listener.v3.Listener;
|
import io.envoyproxy.envoy.config.listener.v3.Listener;
|
||||||
import io.envoyproxy.envoy.config.route.v3.NonForwardingAction;
|
import io.envoyproxy.envoy.config.route.v3.NonForwardingAction;
|
||||||
import io.envoyproxy.envoy.config.route.v3.Route;
|
import io.envoyproxy.envoy.config.route.v3.Route;
|
||||||
|
import io.envoyproxy.envoy.config.route.v3.RouteAction;
|
||||||
import io.envoyproxy.envoy.config.route.v3.RouteConfiguration;
|
import io.envoyproxy.envoy.config.route.v3.RouteConfiguration;
|
||||||
import io.envoyproxy.envoy.config.route.v3.RouteMatch;
|
import io.envoyproxy.envoy.config.route.v3.RouteMatch;
|
||||||
import io.envoyproxy.envoy.config.route.v3.VirtualHost;
|
import io.envoyproxy.envoy.config.route.v3.VirtualHost;
|
||||||
|
@ -237,7 +239,25 @@ public class ControlPlaneRule extends TestWatcher {
|
||||||
* Builds a new default RDS configuration.
|
* Builds a new default RDS configuration.
|
||||||
*/
|
*/
|
||||||
static RouteConfiguration buildRouteConfiguration(String authority) {
|
static RouteConfiguration buildRouteConfiguration(String authority) {
|
||||||
return XdsTestUtils.buildRouteConfiguration(authority, RDS_NAME, CLUSTER_NAME);
|
return buildRouteConfiguration(authority, RDS_NAME, CLUSTER_NAME);
|
||||||
|
}
|
||||||
|
|
||||||
|
static RouteConfiguration buildRouteConfiguration(String authority, String rdsName,
|
||||||
|
String clusterName) {
|
||||||
|
io.envoyproxy.envoy.config.route.v3.VirtualHost.Builder vhBuilder =
|
||||||
|
io.envoyproxy.envoy.config.route.v3.VirtualHost.newBuilder()
|
||||||
|
.setName(rdsName)
|
||||||
|
.addDomains(authority)
|
||||||
|
.addRoutes(
|
||||||
|
Route.newBuilder()
|
||||||
|
.setMatch(
|
||||||
|
RouteMatch.newBuilder().setPrefix("/").build())
|
||||||
|
.setRoute(
|
||||||
|
RouteAction.newBuilder().setCluster(clusterName)
|
||||||
|
.setAutoHostRewrite(BoolValue.newBuilder().setValue(true).build())
|
||||||
|
.build()));
|
||||||
|
io.envoyproxy.envoy.config.route.v3.VirtualHost virtualHost = vhBuilder.build();
|
||||||
|
return RouteConfiguration.newBuilder().setName(rdsName).addVirtualHosts(virtualHost).build();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -30,7 +30,6 @@ import com.google.common.collect.ImmutableList;
|
||||||
import com.google.common.collect.ImmutableMap;
|
import com.google.common.collect.ImmutableMap;
|
||||||
import com.google.common.util.concurrent.MoreExecutors;
|
import com.google.common.util.concurrent.MoreExecutors;
|
||||||
import com.google.protobuf.Any;
|
import com.google.protobuf.Any;
|
||||||
import com.google.protobuf.BoolValue;
|
|
||||||
import com.google.protobuf.Message;
|
import com.google.protobuf.Message;
|
||||||
import com.google.protobuf.util.Durations;
|
import com.google.protobuf.util.Durations;
|
||||||
import io.envoyproxy.envoy.config.cluster.v3.Cluster;
|
import io.envoyproxy.envoy.config.cluster.v3.Cluster;
|
||||||
|
@ -38,10 +37,7 @@ import io.envoyproxy.envoy.config.endpoint.v3.ClusterLoadAssignment;
|
||||||
import io.envoyproxy.envoy.config.endpoint.v3.ClusterStats;
|
import io.envoyproxy.envoy.config.endpoint.v3.ClusterStats;
|
||||||
import io.envoyproxy.envoy.config.listener.v3.ApiListener;
|
import io.envoyproxy.envoy.config.listener.v3.ApiListener;
|
||||||
import io.envoyproxy.envoy.config.listener.v3.Listener;
|
import io.envoyproxy.envoy.config.listener.v3.Listener;
|
||||||
import io.envoyproxy.envoy.config.route.v3.Route;
|
|
||||||
import io.envoyproxy.envoy.config.route.v3.RouteAction;
|
|
||||||
import io.envoyproxy.envoy.config.route.v3.RouteConfiguration;
|
import io.envoyproxy.envoy.config.route.v3.RouteConfiguration;
|
||||||
import io.envoyproxy.envoy.config.route.v3.RouteMatch;
|
|
||||||
import io.envoyproxy.envoy.extensions.clusters.aggregate.v3.ClusterConfig;
|
import io.envoyproxy.envoy.extensions.clusters.aggregate.v3.ClusterConfig;
|
||||||
import io.envoyproxy.envoy.extensions.filters.http.router.v3.Router;
|
import io.envoyproxy.envoy.extensions.filters.http.router.v3.Router;
|
||||||
import io.envoyproxy.envoy.extensions.filters.network.http_connection_manager.v3.HttpFilter;
|
import io.envoyproxy.envoy.extensions.filters.network.http_connection_manager.v3.HttpFilter;
|
||||||
|
@ -306,20 +302,7 @@ public class XdsTestUtils {
|
||||||
|
|
||||||
static RouteConfiguration buildRouteConfiguration(String authority, String rdsName,
|
static RouteConfiguration buildRouteConfiguration(String authority, String rdsName,
|
||||||
String clusterName) {
|
String clusterName) {
|
||||||
io.envoyproxy.envoy.config.route.v3.VirtualHost.Builder vhBuilder =
|
return ControlPlaneRule.buildRouteConfiguration(authority, rdsName, clusterName);
|
||||||
io.envoyproxy.envoy.config.route.v3.VirtualHost.newBuilder()
|
|
||||||
.setName(rdsName)
|
|
||||||
.addDomains(authority)
|
|
||||||
.addRoutes(
|
|
||||||
Route.newBuilder()
|
|
||||||
.setMatch(
|
|
||||||
RouteMatch.newBuilder().setPrefix("/").build())
|
|
||||||
.setRoute(
|
|
||||||
RouteAction.newBuilder().setCluster(clusterName)
|
|
||||||
.setAutoHostRewrite(BoolValue.newBuilder().setValue(true).build())
|
|
||||||
.build()));
|
|
||||||
io.envoyproxy.envoy.config.route.v3.VirtualHost virtualHost = vhBuilder.build();
|
|
||||||
return RouteConfiguration.newBuilder().setName(rdsName).addVirtualHosts(virtualHost).build();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static Cluster buildAggCluster(String name, List<String> childNames) {
|
static Cluster buildAggCluster(String name, List<String> childNames) {
|
||||||
|
|
Loading…
Reference in New Issue