mirror of
https://github.com/digital-asset/daml.git
synced 2024-09-20 09:17:43 +03:00
d809fd934a
* Initial changes to add a surrogate_template_id cache to reduce db queries CHANGELOG_BEGIN CHANGELOG_END * refactoring and addition of tests * Code review based changes to use Contextual Logger and json-api metrics instance * make max cache entries/size configurable * Rename cache max entries default variable
511 lines
18 KiB
Python
511 lines
18 KiB
Python
# Copyright (c) 2021 Digital Asset (Switzerland) GmbH and/or its affiliates. All rights reserved.
|
|
# SPDX-License-Identifier: Apache-2.0
|
|
|
|
load(
|
|
"//bazel_tools:scala.bzl",
|
|
"da_scala_benchmark_jmh",
|
|
"da_scala_binary",
|
|
"da_scala_library",
|
|
"da_scala_test",
|
|
"lf_scalacopts",
|
|
"silencer_plugin",
|
|
)
|
|
load("//rules_daml:daml.bzl", "daml_compile")
|
|
load("@os_info//:os_info.bzl", "is_windows")
|
|
load("@scala_version//:index.bzl", "scala_version_suffix")
|
|
|
|
hj_scalacopts = lf_scalacopts + [
|
|
"-P:wartremover:traverser:org.wartremover.warts.NonUnitStatements",
|
|
]
|
|
|
|
[
|
|
da_scala_library(
|
|
name = "http-json-{}".format(edition),
|
|
srcs = glob(["src/main/scala/**/*.scala"]),
|
|
plugins = [
|
|
"@maven//:org_typelevel_kind_projector_{}".format(scala_version_suffix),
|
|
silencer_plugin,
|
|
],
|
|
scala_deps = [
|
|
"@maven//:com_chuusai_shapeless",
|
|
"@maven//:com_github_scopt_scopt",
|
|
"@maven//:com_typesafe_akka_akka_http",
|
|
"@maven//:com_typesafe_akka_akka_http_core",
|
|
"@maven//:io_spray_spray_json",
|
|
"@maven//:org_scala_lang_modules_scala_collection_compat",
|
|
"@maven//:org_scalaz_scalaz_core",
|
|
"@maven//:org_tpolecat_doobie_core",
|
|
"@maven//:org_tpolecat_doobie_free",
|
|
"@maven//:org_tpolecat_doobie_postgres",
|
|
"@maven//:org_typelevel_cats_core",
|
|
"@maven//:org_typelevel_cats_effect",
|
|
"@maven//:org_typelevel_cats_free",
|
|
"@maven//:org_typelevel_cats_kernel",
|
|
],
|
|
scalacopts = hj_scalacopts,
|
|
tags = ["maven_coordinates=com.daml:http-json:__VERSION__"],
|
|
visibility = ["//visibility:public"],
|
|
runtime_deps = [
|
|
"@maven//:ch_qos_logback_logback_classic",
|
|
"@maven//:org_codehaus_janino_janino",
|
|
],
|
|
deps = [
|
|
"//runtime-components/jdbc-drivers:jdbc-drivers-{}".format(edition),
|
|
"//daml-lf/data",
|
|
"//daml-lf/interface",
|
|
"//daml-lf/transaction",
|
|
"//language-support/scala/bindings-akka",
|
|
"//ledger-api/rs-grpc-bridge",
|
|
"//ledger-service/http-json-cli:{}".format(edition),
|
|
"//ledger-service/http-json-ledger-client:{}".format(edition),
|
|
"//ledger-service/cli-opts",
|
|
"//ledger-service/db-backend",
|
|
"//ledger-service/jwt",
|
|
"//ledger-service/lf-value-json",
|
|
"//ledger-service/utils",
|
|
"//ledger/ledger-api-auth",
|
|
"//ledger/ledger-api-common",
|
|
"//ledger/ledger-resources",
|
|
"//ledger/metrics",
|
|
"//libs-scala/concurrent",
|
|
"//libs-scala/contextualized-logging",
|
|
"//libs-scala/db-utils",
|
|
"//libs-scala/doobie-slf4j",
|
|
"//libs-scala/logging-entries",
|
|
"//libs-scala/ports",
|
|
"//libs-scala/resources",
|
|
"//libs-scala/scala-utils",
|
|
"@maven//:io_dropwizard_metrics_metrics_core",
|
|
],
|
|
)
|
|
for edition in [
|
|
"ce",
|
|
"ee",
|
|
]
|
|
]
|
|
|
|
alias(
|
|
name = "http-json",
|
|
actual = "http-json-ce",
|
|
visibility = ["//visibility:public"],
|
|
)
|
|
|
|
json_scala_deps = [
|
|
"@maven//:com_chuusai_shapeless",
|
|
"@maven//:com_github_scopt_scopt",
|
|
"@maven//:com_typesafe_akka_akka_http",
|
|
"@maven//:com_typesafe_akka_akka_http_core",
|
|
"@maven//:com_typesafe_akka_akka_http_spray_json",
|
|
"@maven//:com_typesafe_akka_akka_slf4j",
|
|
"@maven//:com_typesafe_scala_logging_scala_logging",
|
|
"@maven//:io_spray_spray_json",
|
|
"@maven//:org_scala_lang_modules_scala_collection_compat",
|
|
"@maven//:org_scalaz_scalaz_core",
|
|
"@maven//:org_tpolecat_doobie_core",
|
|
"@maven//:org_tpolecat_doobie_free",
|
|
"@maven//:org_tpolecat_doobie_postgres",
|
|
"@maven//:org_typelevel_cats_core",
|
|
"@maven//:org_typelevel_cats_effect",
|
|
"@maven//:org_typelevel_cats_free",
|
|
"@maven//:org_typelevel_cats_kernel",
|
|
]
|
|
|
|
json_deps_shared = [
|
|
"//daml-lf/data",
|
|
"//daml-lf/interface",
|
|
"//daml-lf/transaction",
|
|
"//language-support/scala/bindings-akka",
|
|
"//ledger/metrics",
|
|
"//ledger-api/rs-grpc-bridge",
|
|
"//ledger-service/db-backend",
|
|
"//ledger-service/jwt",
|
|
"//ledger-service/lf-value-json",
|
|
"//ledger-service/utils",
|
|
"//ledger/ledger-api-auth",
|
|
"//ledger/ledger-api-common",
|
|
"//libs-scala/db-utils",
|
|
"//libs-scala/auth-utils",
|
|
"//libs-scala/ports",
|
|
"//libs-scala/scala-utils",
|
|
"@maven//:ch_qos_logback_logback_classic",
|
|
"@maven//:io_dropwizard_metrics_metrics_core",
|
|
]
|
|
|
|
json_deps = {
|
|
"ce": json_deps_shared + [
|
|
":http-json-ce",
|
|
"//ledger-service/http-json-cli:ce",
|
|
"//ledger-service/http-json-ledger-client:ce",
|
|
],
|
|
"ee": json_deps_shared + [
|
|
":http-json-ee",
|
|
"//ledger-service/http-json-cli:ee",
|
|
"//ledger-service/http-json-ledger-client:ee",
|
|
"@maven//:com_oracle_database_jdbc_ojdbc8",
|
|
],
|
|
}
|
|
|
|
da_scala_binary(
|
|
name = "http-json-binary",
|
|
main_class = "com.daml.http.Main",
|
|
resources = [
|
|
":src/main/resources/application.conf",
|
|
":src/main/resources/logback.xml",
|
|
],
|
|
scala_deps = json_scala_deps,
|
|
scalacopts = hj_scalacopts,
|
|
tags = [
|
|
"maven_coordinates=com.daml:http-json-deploy:__VERSION__",
|
|
"no_scala_version_suffix",
|
|
],
|
|
visibility = ["//visibility:public"],
|
|
deps = json_deps.get("ce"),
|
|
)
|
|
|
|
da_scala_binary(
|
|
name = "http-json-binary-ee",
|
|
main_class = "com.daml.http.Main",
|
|
resources = [
|
|
":src/main/resources/application.conf",
|
|
":src/main/resources/logback.xml",
|
|
],
|
|
scala_deps = json_scala_deps,
|
|
scalacopts = hj_scalacopts,
|
|
tags = [
|
|
"maven_coordinates=com.daml:http-json-deploy:__VERSION__",
|
|
"no_scala_version_suffix",
|
|
],
|
|
visibility = ["//visibility:public"],
|
|
deps = json_deps.get("ee"),
|
|
)
|
|
|
|
daml_compile(
|
|
name = "Account",
|
|
srcs = ["src/it/daml/Account.daml"],
|
|
visibility = ["//ledger-service:__subpackages__"],
|
|
)
|
|
|
|
[
|
|
da_scala_test(
|
|
name = "tests-{}".format(edition),
|
|
size = "medium",
|
|
srcs = glob(["src/test/scala/**/*.scala"]),
|
|
plugins = [
|
|
"@maven//:org_typelevel_kind_projector_{}".format(scala_version_suffix),
|
|
silencer_plugin,
|
|
],
|
|
scala_deps = [
|
|
"@maven//:com_chuusai_shapeless",
|
|
"@maven//:com_typesafe_akka_akka_http_core",
|
|
"@maven//:io_spray_spray_json",
|
|
"@maven//:org_scala_lang_modules_scala_collection_compat",
|
|
"@maven//:org_scalacheck_scalacheck",
|
|
"@maven//:org_scalatest_scalatest_core",
|
|
"@maven//:org_scalatest_scalatest_matchers_core",
|
|
"@maven//:org_scalatest_scalatest_shouldmatchers",
|
|
"@maven//:org_scalatest_scalatest_wordspec",
|
|
"@maven//:org_scalatestplus_scalacheck_1_15",
|
|
"@maven//:org_scalaz_scalaz_core",
|
|
"@maven//:org_scalaz_scalaz_scalacheck_binding",
|
|
"@maven//:org_tpolecat_doobie_core",
|
|
"@maven//:org_tpolecat_doobie_free",
|
|
"@maven//:org_typelevel_cats_core",
|
|
"@maven//:org_typelevel_cats_effect",
|
|
"@maven//:org_typelevel_cats_free",
|
|
"@maven//:org_typelevel_cats_kernel",
|
|
],
|
|
scalacopts = hj_scalacopts,
|
|
deps = [
|
|
":http-json-{}".format(edition),
|
|
"//daml-lf/data",
|
|
"//daml-lf/interface",
|
|
"//daml-lf/transaction",
|
|
"//daml-lf/transaction-test-lib",
|
|
"//language-support/scala/bindings-akka",
|
|
"//ledger-service/db-backend",
|
|
"//ledger/metrics",
|
|
"//ledger-service/http-json-cli:{}".format(edition),
|
|
"//ledger-service/cli-opts",
|
|
"//ledger-service/lf-value-json",
|
|
"//ledger/ledger-api-common",
|
|
"//libs-scala/db-utils",
|
|
"//libs-scala/scala-utils",
|
|
"//libs-scala/scalatest-utils",
|
|
"@maven//:io_dropwizard_metrics_metrics_core",
|
|
"@maven//:org_scalatest_scalatest_compatible",
|
|
],
|
|
)
|
|
for edition in [
|
|
"ce",
|
|
"ee",
|
|
]
|
|
]
|
|
|
|
alias(
|
|
name = "tests",
|
|
actual = "tests-ce",
|
|
)
|
|
|
|
[
|
|
da_scala_library(
|
|
name = "integration-tests-lib-{}".format(edition),
|
|
srcs = glob(["src/itlib/scala/**/*.scala"]),
|
|
plugins = [silencer_plugin],
|
|
resources = glob(["src/itlib/resources/**/*"]),
|
|
scala_deps = [
|
|
"@maven//:com_chuusai_shapeless",
|
|
"@maven//:com_typesafe_akka_akka_http_core",
|
|
"@maven//:com_typesafe_scala_logging_scala_logging",
|
|
"@maven//:io_spray_spray_json",
|
|
"@maven//:org_scala_lang_modules_scala_collection_compat",
|
|
"@maven//:org_scalacheck_scalacheck",
|
|
"@maven//:org_scalactic_scalactic",
|
|
"@maven//:org_scalatest_scalatest_core",
|
|
"@maven//:org_scalatest_scalatest_freespec",
|
|
"@maven//:org_scalatest_scalatest_matchers_core",
|
|
"@maven//:org_scalatest_scalatest_shouldmatchers",
|
|
"@maven//:org_scalaz_scalaz_core",
|
|
"@maven//:org_tpolecat_doobie_core",
|
|
"@maven//:org_tpolecat_doobie_hikari",
|
|
"@maven//:org_tpolecat_doobie_free",
|
|
"@maven//:org_typelevel_cats_core",
|
|
"@maven//:org_typelevel_cats_effect",
|
|
"@maven//:org_typelevel_cats_free",
|
|
"@maven//:org_typelevel_cats_kernel",
|
|
],
|
|
visibility = ["//ledger-service:__subpackages__"],
|
|
deps = [
|
|
":http-json-{}".format(edition),
|
|
"//bazel_tools/runfiles:scala_runfiles",
|
|
"//daml-lf/data",
|
|
"//daml-lf/interface",
|
|
"//daml-lf/transaction",
|
|
"//daml-lf/transaction-test-lib",
|
|
"//language-support/scala/bindings-akka",
|
|
"//ledger-api/rs-grpc-bridge",
|
|
"//ledger/metrics",
|
|
"//ledger-service/http-json-cli:{}".format(edition),
|
|
"//ledger-service/http-json-testing:{}".format(edition),
|
|
"//ledger-service/db-backend",
|
|
"//ledger-service/jwt",
|
|
"//ledger-service/utils",
|
|
"//ledger/ledger-api-auth",
|
|
"//ledger/ledger-api-common",
|
|
"//ledger/test-common:dar-files-default-lib",
|
|
"//libs-scala/contextualized-logging",
|
|
"//libs-scala/db-utils",
|
|
"//libs-scala/doobie-slf4j",
|
|
"//libs-scala/ports",
|
|
"//libs-scala/ports:ports-testing",
|
|
"//libs-scala/postgresql-testing",
|
|
"//libs-scala/resources",
|
|
"//libs-scala/resources-grpc",
|
|
"//runtime-components/non-repudiation",
|
|
"//runtime-components/non-repudiation-postgresql",
|
|
"//runtime-components/non-repudiation-testing",
|
|
"@maven//:io_dropwizard_metrics_metrics_core",
|
|
"@maven//:org_scalatest_scalatest_compatible",
|
|
],
|
|
)
|
|
for edition in [
|
|
"ce",
|
|
"ee",
|
|
]
|
|
]
|
|
|
|
alias(
|
|
name = "integration-tests-lib",
|
|
actual = "integration-tests-lib-ce",
|
|
)
|
|
|
|
[
|
|
da_scala_test(
|
|
name = "integration-tests-{}".format(edition),
|
|
size = "large",
|
|
srcs = glob([
|
|
"src/it/scala/**/*.scala",
|
|
"src/it/edition/{}/**/*.scala".format(edition),
|
|
]),
|
|
data = [
|
|
":Account.dar",
|
|
"//docs:quickstart-model.dar",
|
|
"//ledger/test-common:dar-files",
|
|
"//ledger/test-common/test-certificates",
|
|
],
|
|
plugins = [
|
|
"@maven//:org_typelevel_kind_projector_{}".format(scala_version_suffix),
|
|
silencer_plugin,
|
|
],
|
|
resources = glob(["src/it/resources/**/*"]),
|
|
scala_deps = [
|
|
"@maven//:com_chuusai_shapeless",
|
|
"@maven//:com_typesafe_akka_akka_http_core",
|
|
"@maven//:com_typesafe_scala_logging_scala_logging",
|
|
"@maven//:io_spray_spray_json",
|
|
"@maven//:org_scalacheck_scalacheck",
|
|
"@maven//:org_scalatest_scalatest_core",
|
|
"@maven//:org_scalatest_scalatest_flatspec",
|
|
"@maven//:org_scalatest_scalatest_freespec",
|
|
"@maven//:org_scalatest_scalatest_matchers_core",
|
|
"@maven//:org_scalatest_scalatest_shouldmatchers",
|
|
"@maven//:org_scalaz_scalaz_core",
|
|
"@maven//:org_tpolecat_doobie_core",
|
|
"@maven//:org_tpolecat_doobie_free",
|
|
"@maven//:org_tpolecat_doobie_postgres",
|
|
"@maven//:org_typelevel_cats_core",
|
|
"@maven//:org_typelevel_cats_effect",
|
|
"@maven//:org_typelevel_cats_free",
|
|
"@maven//:org_typelevel_cats_kernel",
|
|
"@maven//:org_scala_lang_modules_scala_collection_compat",
|
|
],
|
|
scalacopts = hj_scalacopts,
|
|
deps = [
|
|
":http-json-{}".format(edition),
|
|
":integration-tests-lib-{}".format(edition),
|
|
"//bazel_tools/runfiles:scala_runfiles",
|
|
"//daml-lf/data",
|
|
"//daml-lf/interface",
|
|
"//daml-lf/transaction",
|
|
"//daml-lf/transaction-test-lib",
|
|
"//language-support/scala/bindings-akka",
|
|
"//ledger-api/rs-grpc-bridge",
|
|
"//ledger-service/db-backend",
|
|
"//ledger/metrics",
|
|
"//ledger-service/http-json-cli:{}".format(edition),
|
|
"//ledger-service/http-json-testing:{}".format(edition),
|
|
"//ledger-service/jwt",
|
|
"//ledger-service/utils",
|
|
"//ledger/ledger-api-auth",
|
|
"//libs-scala/contextualized-logging",
|
|
"//libs-scala/db-utils",
|
|
"//libs-scala/ports",
|
|
"//libs-scala/postgresql-testing",
|
|
"//libs-scala/scala-utils",
|
|
"//runtime-components/non-repudiation",
|
|
"//runtime-components/non-repudiation-postgresql",
|
|
"@maven//:io_dropwizard_metrics_metrics_core",
|
|
"@maven//:org_scalatest_scalatest_compatible",
|
|
],
|
|
)
|
|
for edition in [
|
|
"ce",
|
|
"ee",
|
|
]
|
|
]
|
|
|
|
test_suite(
|
|
name = "integration-tests",
|
|
tests = ["integration-tests-ce"],
|
|
)
|
|
|
|
[
|
|
da_scala_test(
|
|
name = "failure-tests-{}".format(edition),
|
|
srcs = glob(["src/failure/scala/**/*.scala"]),
|
|
data = [
|
|
":Account.dar",
|
|
"//docs:quickstart-model.dar",
|
|
"//ledger/test-common:dar-files",
|
|
"//ledger/test-common/test-certificates",
|
|
"@toxiproxy_dev_env//:bin/toxiproxy-cmd" if not is_windows else "@toxiproxy_dev_env//:toxiproxy-server-windows-amd64.exe",
|
|
],
|
|
# See https://github.com/digital-asset/daml/issues/9886
|
|
flaky = True,
|
|
plugins = [
|
|
"@maven//:org_typelevel_kind_projector_{}".format(scala_version_suffix),
|
|
],
|
|
resources = glob(["src/failure/resources/**/*"]),
|
|
scala_deps = [
|
|
"@maven//:com_typesafe_akka_akka_http_core",
|
|
"@maven//:com_typesafe_scala_logging_scala_logging",
|
|
"@maven//:io_spray_spray_json",
|
|
"@maven//:org_scalatest_scalatest_core",
|
|
"@maven//:org_scalatest_scalatest_freespec",
|
|
"@maven//:org_scalatest_scalatest_matchers_core",
|
|
"@maven//:org_scalatest_scalatest_shouldmatchers",
|
|
"@maven//:org_scalaz_scalaz_core",
|
|
"@maven//:org_typelevel_cats_core",
|
|
"@maven//:org_typelevel_cats_effect",
|
|
],
|
|
scalacopts = hj_scalacopts,
|
|
deps = [
|
|
":http-json-{}".format(edition),
|
|
"//bazel_tools/runfiles:scala_runfiles",
|
|
"//daml-lf/data",
|
|
"//language-support/scala/bindings-akka",
|
|
"//ledger-api/rs-grpc-bridge",
|
|
"//ledger-api/testing-utils",
|
|
"//ledger/ledger-configuration",
|
|
"//libs-scala/contextualized-logging",
|
|
"//ledger-service/http-json-cli:{}".format(edition),
|
|
"//ledger-service/http-json-testing:{}".format(edition),
|
|
"//ledger-service/jwt",
|
|
"//ledger-service/utils",
|
|
"//ledger/caching",
|
|
"//ledger/ledger-api-auth",
|
|
"//ledger/ledger-api-common",
|
|
"//ledger/ledger-resources",
|
|
"//ledger/metrics",
|
|
"//ledger/participant-integration-api",
|
|
"//ledger/participant-integration-api:participant-integration-api-tests-lib",
|
|
"//ledger/sandbox",
|
|
"//ledger/sandbox-common",
|
|
"//ledger/sandbox-common:sandbox-common-scala-tests-lib",
|
|
"//libs-scala/db-utils",
|
|
"//libs-scala/ports",
|
|
"//libs-scala/ports:ports-testing",
|
|
"//libs-scala/postgresql-testing",
|
|
"//libs-scala/resources",
|
|
"//libs-scala/timer-utils",
|
|
"@maven//:eu_rekawek_toxiproxy_toxiproxy_java_2_1_3",
|
|
"@maven//:io_dropwizard_metrics_metrics_core",
|
|
"@maven//:org_scalatest_scalatest_compatible",
|
|
],
|
|
)
|
|
for edition in [
|
|
"ce",
|
|
"ee",
|
|
]
|
|
]
|
|
|
|
test_suite(
|
|
name = "failure-tests",
|
|
tests = ["failure-tests-ce"],
|
|
)
|
|
|
|
exports_files(["src/main/resources/logback.xml"])
|
|
|
|
da_scala_benchmark_jmh(
|
|
name = "contractdao-bench",
|
|
srcs = glob(["src/bench/scala/**/*.scala"]),
|
|
scala_deps = [
|
|
"@maven//:org_scalaz_scalaz_core",
|
|
"@maven//:io_spray_spray_json",
|
|
"@maven//:org_tpolecat_doobie_core",
|
|
"@maven//:org_tpolecat_doobie_free",
|
|
"@maven//:org_typelevel_cats_kernel",
|
|
"@maven//:org_typelevel_cats_core",
|
|
"@maven//:org_typelevel_cats_effect",
|
|
"@maven//:org_typelevel_cats_free",
|
|
"@maven//:com_chuusai_shapeless",
|
|
"@maven//:com_typesafe_scala_logging_scala_logging",
|
|
],
|
|
deps = [
|
|
":http-json",
|
|
"//daml-lf/interface",
|
|
"//language-support/scala/bindings",
|
|
"//ledger-service/db-backend",
|
|
"//ledger-service/http-json-cli:base",
|
|
"//ledger-service/utils",
|
|
"//ledger/metrics",
|
|
"//libs-scala/contextualized-logging",
|
|
"//libs-scala/db-utils",
|
|
"//libs-scala/doobie-slf4j",
|
|
"//libs-scala/oracle-testing",
|
|
"//libs-scala/ports",
|
|
"@maven//:com_oracle_database_jdbc_ojdbc8",
|
|
"@maven//:io_dropwizard_metrics_metrics_core",
|
|
"@maven//:org_slf4j_slf4j_api",
|
|
],
|
|
)
|