daml/language-support/java/bindings/BUILD.bazel
Andreas Herrmann 39a38d3a37
Update to Java 11 (#11512)
* Update to Java 11

changelog_begin
changelog_end

* Fix RoundingMode deprecation warnings

* Fix dep-ann warning

* Integer constructor

* JavaX annotation dependency

* javax.xml.bind was removed in Java 11

Using Guava as a replacement, since it is already a project dependency.

* JDK 11 no longer has a separate JRE tree

* Remove unused jdk_nix import

* remove now redundant jdk11_nix

* Java 8 --> 9 increased Instant.now() precision

See https://bugs.openjdk.java.net/browse/JDK-8068730

The precision of `Instant.now()` increased between Java 8 and Java 9.
On Linux and MacOS this doesn't seem to be a problem, as the precision
still seems to be at micro seconds. However, on Windows this now causes
errors of the following form:
```
java.lang.IllegalArgumentException: Conversion of Instant
2021-11-05T13:58:56.726875100Z to microsecond granularity would result
in loss of precision.
```
Suggesting that it now offers sub-microsecond precision.

`TimestampConversion.instantToMicros` had a check to fail if the
conversion lead to a loss of precision. In the specific failing test
case this is not a concern, so this adds a `roundInstantToMicros`
variant that avoids this kind of error.

* TMP round timestamps

* Revert "TMP round timestamps"

This reverts commit af8e261278.

* Skip versions before 1.6.0 in migration tests

changelog_begin
changelog_end

Co-authored-by: Andreas Herrmann <andreas.herrmann@tweag.io>
2021-11-18 14:48:37 +00:00

135 lines
3.7 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_library",
"da_scala_test_suite",
"silencer_plugin",
)
load("//bazel_tools:proto.bzl", "proto_gen")
load("//bazel_tools:java.bzl", "da_java_library")
proto_gen(
name = "ledger-api-java",
srcs = ["//ledger-api/grpc-definitions:ledger_api_proto"],
plugin_name = "java",
visibility = [
"//visibility:public",
],
)
# this is only needed for the uber-javadoc in //language-support/java:javadoc
java_library(
name = "ledger-api-java-lib-for-javadocs",
srcs = [
":ledger-api-java",
":ledger-api-java-grpc",
],
visibility = [
"//visibility:public",
],
deps = [
"@maven//:com_google_api_grpc_proto_google_common_protos",
"@maven//:com_google_guava_guava",
"@maven//:com_google_protobuf_protobuf_java",
"@maven//:io_grpc_grpc_api",
"@maven//:io_grpc_grpc_core",
"@maven//:io_grpc_grpc_netty",
"@maven//:io_grpc_grpc_protobuf",
"@maven//:io_grpc_grpc_stub",
"@maven//:javax_annotation_javax_annotation_api",
],
)
proto_gen(
name = "ledger-api-java-grpc",
srcs = ["//ledger-api/grpc-definitions:ledger_api_proto"],
plugin_exec = "@io_grpc_grpc_java//compiler:grpc_java_plugin",
plugin_name = "java-grpc",
visibility = [
"//visibility:public",
],
)
da_java_library(
name = "bindings-java",
srcs = glob(["src/main/java/**/*.java"]) + [
":ledger-api-java",
":ledger-api-java-grpc",
],
tags = [
"javadoc_root_packages=com.daml.ledger.javaapi.data",
"maven_coordinates=com.daml:bindings-java:__VERSION__",
],
visibility = [
"//visibility:public",
],
deps = [
"@maven//:com_google_api_grpc_proto_google_common_protos",
"@maven//:com_google_code_findbugs_jsr305",
"@maven//:com_google_guava_guava",
"@maven//:com_google_protobuf_protobuf_java",
"@maven//:io_grpc_grpc_api",
"@maven//:io_grpc_grpc_core",
"@maven//:io_grpc_grpc_netty",
"@maven//:io_grpc_grpc_protobuf",
"@maven//:io_grpc_grpc_stub",
"@maven//:javax_annotation_javax_annotation_api",
"@maven//:org_checkerframework_checker",
],
)
da_scala_library(
name = "bindings-java-tests-lib",
srcs = glob(
["src/test/**/*.scala"],
exclude = [
"src/test/**/*Spec.scala",
"src/test/**/*Test.scala",
],
),
scala_deps = [
"@maven//:org_scalacheck_scalacheck",
],
visibility = [
"//ledger-service/http-json:__subpackages__",
],
deps = [
":bindings-java",
"@maven//:com_google_protobuf_protobuf_java",
],
)
da_scala_test_suite(
name = "bindings-java-tests",
srcs = glob([
"src/test/**/*Spec.scala",
"src/test/**/*Test.scala",
]),
plugins = [
silencer_plugin,
],
scala_deps = [
"@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_scala_lang_modules_scala_collection_compat",
],
deps = [
":bindings-java",
":bindings-java-tests-lib",
"@maven//:com_google_protobuf_protobuf_java",
"@maven//:org_scalatest_scalatest_compatible",
],
)
filegroup(
name = "sources",
srcs = glob(["src/main/java/**/*.java"]),
visibility = ["//visibility:public"],
)