From cdb2c2d0ba83dd6530f9e0d6dea27355c3eca7b4 Mon Sep 17 00:00:00 2001 From: Moritz Kiefer Date: Wed, 13 Jan 2021 22:23:31 +0100 Subject: [PATCH] Port the rest of //ledger/... to Scala 2.13 (#8497) * Port the rest of //ledger/... to Scala 2.13 draw the rest of the fcking owl Omitted for now are the ledger API test tool which has a dependency only compatible with 2.12 and the generated code of the Scala codegen (the codegen compiles and runs with 2.13, the generated code does not). changelog_begin changelog_end * Less symbols changelog_begin changelog_end --- ci/build.yml | 42 ++++--------------- .../BUILD.bazel | 12 +++--- ledger/sandbox-classic/BUILD.bazel | 22 ++++++---- .../scala/platform/sandbox/EngineModeIT.scala | 2 +- .../command/CommandStaticTimeIT.scala | 2 +- .../services/reflection/ReflectionIT.scala | 7 +++- .../TransactionTimeModelComplianceIT.scala | 2 +- ledger/sandbox-perf/BUILD.bazel | 16 ++++--- .../sandbox/perf/InfiniteRetries.scala | 11 ++--- ledger/sandbox/BUILD.bazel | 20 +++++---- ledger/test-common/BUILD.bazel | 3 +- 11 files changed, 65 insertions(+), 74 deletions(-) diff --git a/ci/build.yml b/ci/build.yml index 2eb4e16a86..3e3d152ca6 100644 --- a/ci/build.yml +++ b/ci/build.yml @@ -173,49 +173,23 @@ jobs: //daml-lf/... \ //language-support/scala/... \ //ledger-api/... \ - //ledger/caching/... \ - //ledger/cli-opts/... \ - //ledger/daml-on-sql/... \ - //ledger/ledger-api-akka/... \ - //ledger/ledger-api-auth/... \ - //ledger/ledger-api-auth-client/... \ - //ledger/ledger-api-client/... \ - //ledger/ledger-api-common/... \ - //ledger/ledger-api-domain/... \ - //ledger/ledger-api-health/... \ - //ledger/ledger-on-memory/... \ - //ledger/ledger-on-sql/... \ - //ledger/ledger-resources/... \ - //ledger/metrics/... \ - //ledger/participant-integration-api/... \ - //ledger/participant-state/... \ + //ledger/... \ -//language-support/scala/examples/... \ - -//language-support/scala/codegen-sample-app/... + -//language-support/scala/codegen-sample-app/... \ + -//ledger/ledger-api-test-tool/... \ + -//ledger/ledger-api-test-tool-on-canton/... # gatling-utils tests fail with a ClassNotFoundException for scala.collection.SeqLike bazel test --config scala_2_13 -- \ //libs-scala/... \ //daml-lf/... \ //language-support/scala/... \ //ledger-api/... \ - //ledger/caching/... \ - //ledger/cli-opts/... \ - //ledger/daml-on-sql/... \ - //ledger/ledger-api-akka/... \ - //ledger/ledger-api-auth/... \ - //ledger/ledger-api-auth-client/... \ - //ledger/ledger-api-client/... \ - //ledger/ledger-api-common/... \ - //ledger/ledger-api-domain/... \ - //ledger/ledger-api-health/... \ - //ledger/ledger-on-memory/... \ - //ledger/ledger-on-sql/... \ - //ledger/ledger-resources/... \ - //ledger/metrics/... \ - //ledger/participant-integration-api/... \ - //ledger/participant-state/... \ + //ledger/... \ -//libs-scala/gatling-utils/... \ -//language-support/scala/examples/... \ - -//language-support/scala/codegen-sample-app/... + -//language-support/scala/codegen-sample-app/... \ + -//ledger/ledger-api-test-tool/... \ + -//ledger/ledger-api-test-tool-on-canton/... displayName: 'Build' - template: tell-slack-failed.yml parameters: diff --git a/ledger/recovering-indexer-integration-tests/BUILD.bazel b/ledger/recovering-indexer-integration-tests/BUILD.bazel index 74b12ebca3..d9497cac13 100644 --- a/ledger/recovering-indexer-integration-tests/BUILD.bazel +++ b/ledger/recovering-indexer-integration-tests/BUILD.bazel @@ -11,6 +11,13 @@ da_scala_test_suite( srcs = glob(["src/test/suite/scala/**/*.scala"]), flaky = True, resources = glob(["src/test/resources/**/*"]), + scala_deps = [ + "@maven//:com_typesafe_akka_akka_actor", + "@maven//:com_typesafe_akka_akka_stream", + "@maven//:org_scala_lang_modules_scala_java8_compat", + "@maven//:org_scalactic_scalactic", + "@maven//:org_scalatest_scalatest", + ], runtime_deps = [ "@maven//:ch_qos_logback_logback_classic", "@maven//:ch_qos_logback_logback_core", @@ -38,12 +45,7 @@ da_scala_test_suite( "//libs-scala/resources-akka", "//libs-scala/timer-utils", "@maven//:ch_qos_logback_logback_classic", - "@maven//:com_typesafe_akka_akka_actor_2_12", - "@maven//:com_typesafe_akka_akka_stream_2_12", "@maven//:io_dropwizard_metrics_metrics_core", "@maven//:org_mockito_mockito_core", - "@maven//:org_scala_lang_modules_scala_java8_compat_2_12", - "@maven//:org_scalactic_scalactic_2_12", - "@maven//:org_scalatest_scalatest_2_12", ], ) diff --git a/ledger/sandbox-classic/BUILD.bazel b/ledger/sandbox-classic/BUILD.bazel index ab5dc1ee9d..53980252c7 100644 --- a/ledger/sandbox-classic/BUILD.bazel +++ b/ledger/sandbox-classic/BUILD.bazel @@ -213,10 +213,6 @@ test_deps = [ "//libs-scala/resources", "@maven//:ch_qos_logback_logback_classic", "@maven//:ch_qos_logback_logback_core", - "@maven//:com_typesafe_akka_akka_actor_2_12", - "@maven//:com_typesafe_akka_akka_stream_2_12", - "@maven//:com_typesafe_akka_akka_stream_testkit_2_12", - "@maven//:com_typesafe_akka_akka_testkit_2_12", "@maven//:com_typesafe_config", "@maven//:commons_io_commons_io", "@maven//:io_dropwizard_metrics_metrics_core", @@ -225,15 +221,22 @@ test_deps = [ "@maven//:org_awaitility_awaitility", "@maven//:org_flywaydb_flyway_core", "@maven//:org_mockito_mockito_core", - "@maven//:org_mockito_mockito_scala_2_12", "@maven//:org_reactivestreams_reactive_streams", - "@maven//:org_scalacheck_scalacheck_2_12", - "@maven//:org_scalactic_scalactic_2_12", - "@maven//:org_scalatest_scalatest_2_12", - "@maven//:org_scalaz_scalaz_core_2_12", "@maven//:org_slf4j_slf4j_api", ] +scala_test_deps = [ + "@maven//:com_typesafe_akka_akka_actor", + "@maven//:com_typesafe_akka_akka_stream", + "@maven//:com_typesafe_akka_akka_stream_testkit", + "@maven//:com_typesafe_akka_akka_testkit", + "@maven//:org_mockito_mockito_scala", + "@maven//:org_scalacheck_scalacheck", + "@maven//:org_scalactic_scalactic", + "@maven//:org_scalatest_scalatest", + "@maven//:org_scalaz_scalaz_core", +] + da_scala_test_suite( name = "sandbox-classic-tests", srcs = glob(["src/test/suite/**/*.scala"]), @@ -247,6 +250,7 @@ da_scala_test_suite( for v in lf_preview_version ], resources = glob(["src/test/resources/**/*"]) + ["//ledger/sandbox-common:src/main/resources/logback.xml"], + scala_deps = scala_test_deps, deps = test_deps, ) diff --git a/ledger/sandbox-classic/src/test/suite/scala/platform/sandbox/EngineModeIT.scala b/ledger/sandbox-classic/src/test/suite/scala/platform/sandbox/EngineModeIT.scala index 6b882d19fb..cb35210480 100644 --- a/ledger/sandbox-classic/src/test/suite/scala/platform/sandbox/EngineModeIT.scala +++ b/ledger/sandbox-classic/src/test/suite/scala/platform/sandbox/EngineModeIT.scala @@ -101,7 +101,7 @@ class EngineModeIT client <- ledger.client.LedgerClient.apply(channel, ledgerClientConfiguration) darContent = protobuf.ByteString.copyFrom(Files.readAllBytes(darPath)) pkgsBefore <- client.packageManagementClient.listKnownPackages() - _ = pkgsBefore shouldBe 'empty + _ = pkgsBefore shouldBe empty _ <- client.packageManagementClient.uploadDarFile(darContent) pkgsAfter <- client.packageManagementClient.listKnownPackages() _ = pkgsAfter.size shouldBe 1 diff --git a/ledger/sandbox-classic/src/test/suite/scala/platform/sandbox/services/command/CommandStaticTimeIT.scala b/ledger/sandbox-classic/src/test/suite/scala/platform/sandbox/services/command/CommandStaticTimeIT.scala index 9ab89f8d81..c95a5c4f3c 100644 --- a/ledger/sandbox-classic/src/test/suite/scala/platform/sandbox/services/command/CommandStaticTimeIT.scala +++ b/ledger/sandbox-classic/src/test/suite/scala/platform/sandbox/services/command/CommandStaticTimeIT.scala @@ -107,7 +107,7 @@ final class CommandStaticTimeIT ) ) } yield { - completion.status.value should have('code (Status.OK.getCode.value())) + completion.status.value.code should be(Status.OK.getCode.value()) } } diff --git a/ledger/sandbox-classic/src/test/suite/scala/platform/sandbox/services/reflection/ReflectionIT.scala b/ledger/sandbox-classic/src/test/suite/scala/platform/sandbox/services/reflection/ReflectionIT.scala index 03fbf7a1d2..0374a5ed33 100644 --- a/ledger/sandbox-classic/src/test/suite/scala/platform/sandbox/services/reflection/ReflectionIT.scala +++ b/ledger/sandbox-classic/src/test/suite/scala/platform/sandbox/services/reflection/ReflectionIT.scala @@ -11,10 +11,11 @@ import io.grpc.reflection.v1alpha.{ ServerReflectionRequest, ServerReflectionResponse, } +import org.scalatest.Inspectors._ import org.scalatest.matchers.should.Matchers import org.scalatest.wordspec.AsyncWordSpec -import scala.collection.JavaConverters._ +import scala.jdk.CollectionConverters._ import scala.concurrent.Future final class ReflectionIT @@ -59,7 +60,9 @@ final class ReflectionIT s"filedescriptor ${p.toStringUtf8} contains string 'bazel-out'. This means grpc reflection will not work.", ) } - all(symbolResponses) should have('hasErrorResponse (false)) + forAll(symbolResponses) { r => + r.hasErrorResponse should be(false) + } } } } diff --git a/ledger/sandbox-classic/src/test/suite/scala/platform/sandbox/stores/ledger/TransactionTimeModelComplianceIT.scala b/ledger/sandbox-classic/src/test/suite/scala/platform/sandbox/stores/ledger/TransactionTimeModelComplianceIT.scala index 26f2e15c65..92901752e2 100644 --- a/ledger/sandbox-classic/src/test/suite/scala/platform/sandbox/stores/ledger/TransactionTimeModelComplianceIT.scala +++ b/ledger/sandbox-classic/src/test/suite/scala/platform/sandbox/stores/ledger/TransactionTimeModelComplianceIT.scala @@ -104,7 +104,7 @@ class TransactionTimeModelComplianceIT optByKeyNodes = None, ) - val offset = ledger.ledgerEnd + val offset = ledger.ledgerEnd() for { submissionResult <- ledger.publishTransaction( diff --git a/ledger/sandbox-perf/BUILD.bazel b/ledger/sandbox-perf/BUILD.bazel index 3d5cb4b3df..fa66b72f48 100644 --- a/ledger/sandbox-perf/BUILD.bazel +++ b/ledger/sandbox-perf/BUILD.bazel @@ -14,6 +14,11 @@ load( da_scala_library( name = "sandbox-perf-lib", srcs = glob(["src/perf/lib/**/*.scala"]), + scala_deps = [ + "@maven//:com_typesafe_akka_akka_actor", + "@maven//:com_typesafe_akka_akka_stream", + "@maven//:org_scalaz_scalaz_core", + ], silent_annotations = True, visibility = ["//visibility:public"], deps = [ @@ -45,9 +50,6 @@ da_scala_library( "//libs-scala/resources-akka", "@maven//:ch_qos_logback_logback_classic", "@maven//:com_google_protobuf_protobuf_java", - "@maven//:com_typesafe_akka_akka_actor_2_12", - "@maven//:com_typesafe_akka_akka_stream_2_12", - "@maven//:org_scalaz_scalaz_core_2_12", ], ) @@ -65,6 +67,11 @@ da_scala_benchmark_jmh( "//ledger/test-common:model-tests.dar", "@postgresql_dev_env//:all", ], + scala_deps = [ + "@maven//:com_typesafe_akka_akka_actor", + "@maven//:com_typesafe_akka_akka_stream", + "@maven//:org_scalaz_scalaz_core", + ], visibility = ["//visibility:public"], deps = [ ":sandbox-perf-lib", @@ -93,8 +100,5 @@ da_scala_benchmark_jmh( "//libs-scala/concurrent", "@maven//:ch_qos_logback_logback_classic", "@maven//:com_google_protobuf_protobuf_java", - "@maven//:com_typesafe_akka_akka_actor_2_12", - "@maven//:com_typesafe_akka_akka_stream_2_12", - "@maven//:org_scalaz_scalaz_core_2_12", ], ) diff --git a/ledger/sandbox-perf/src/perf/lib/scala/com/digitalasset/platform/sandbox/perf/InfiniteRetries.scala b/ledger/sandbox-perf/src/perf/lib/scala/com/digitalasset/platform/sandbox/perf/InfiniteRetries.scala index 44e4d21f39..907c9e5bea 100644 --- a/ledger/sandbox-perf/src/perf/lib/scala/com/digitalasset/platform/sandbox/perf/InfiniteRetries.scala +++ b/ledger/sandbox-perf/src/perf/lib/scala/com/digitalasset/platform/sandbox/perf/InfiniteRetries.scala @@ -20,13 +20,14 @@ trait InfiniteRetries { Future.successful(v) case Failure(_) => val p = Promise[T]() + val r: Runnable = () => + retry[T](action, delay).onComplete { + case Success(s) => p.success(s) + case Failure(throwable) => p.failure(throwable) + } system.scheduler.scheduleOnce( delay, - () => - retry[T](action, delay).onComplete { - case Success(s) => p.success(s) - case Failure(throwable) => p.failure(throwable) - }, + r, ) p.future } diff --git a/ledger/sandbox/BUILD.bazel b/ledger/sandbox/BUILD.bazel index 94bdbbb375..a3286f4b7f 100644 --- a/ledger/sandbox/BUILD.bazel +++ b/ledger/sandbox/BUILD.bazel @@ -154,6 +154,17 @@ da_scala_test_suite( "-Djava.security.debug=\"certpath ocsp\"", # This facilitates debugging of the OCSP checks mechanism ], resources = glob(["src/test/resources/**/*"]), + scala_deps = [ + "@maven//:com_typesafe_akka_akka_actor", + "@maven//:com_typesafe_akka_akka_stream", + "@maven//:com_typesafe_akka_akka_stream_testkit", + "@maven//:com_typesafe_akka_akka_testkit", + "@maven//:org_mockito_mockito_scala", + "@maven//:org_scalacheck_scalacheck", + "@maven//:org_scalactic_scalactic", + "@maven//:org_scalatest_scalatest", + "@maven//:org_scalaz_scalaz_core", + ], deps = [ ":sandbox", ":sandbox-scala-tests-lib", @@ -198,10 +209,6 @@ da_scala_test_suite( "//libs-scala/resources", "@maven//:ch_qos_logback_logback_classic", "@maven//:ch_qos_logback_logback_core", - "@maven//:com_typesafe_akka_akka_actor_2_12", - "@maven//:com_typesafe_akka_akka_stream_2_12", - "@maven//:com_typesafe_akka_akka_stream_testkit_2_12", - "@maven//:com_typesafe_akka_akka_testkit_2_12", "@maven//:com_typesafe_config", "@maven//:commons_io_commons_io", "@maven//:io_dropwizard_metrics_metrics_core", @@ -210,12 +217,7 @@ da_scala_test_suite( "@maven//:org_awaitility_awaitility", "@maven//:org_flywaydb_flyway_core", "@maven//:org_mockito_mockito_core", - "@maven//:org_mockito_mockito_scala_2_12", "@maven//:org_reactivestreams_reactive_streams", - "@maven//:org_scalacheck_scalacheck_2_12", - "@maven//:org_scalactic_scalactic_2_12", - "@maven//:org_scalatest_scalatest_2_12", - "@maven//:org_scalaz_scalaz_core_2_12", "@maven//:org_slf4j_slf4j_api", ], ) diff --git a/ledger/test-common/BUILD.bazel b/ledger/test-common/BUILD.bazel index 4383d861c8..e38d81a30c 100644 --- a/ledger/test-common/BUILD.bazel +++ b/ledger/test-common/BUILD.bazel @@ -17,6 +17,7 @@ load( "//daml-lf/language:daml-lf.bzl", "lf_stable_version", ) +load("@scala_version//:index.bzl", "scala_major_version") da_scala_library( name = "test-common", @@ -56,7 +57,7 @@ da_scala_library( deps = [ "//language-support/scala/bindings", ] + extra_deps, - ), + ) if scala_major_version == "2.12" else None, ] for (test_name, target, extra_deps) in [ (