diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 510928cc4..29f891d82 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -9,14 +9,18 @@ on: types: [ published ] # Triggers the CI when a new GitHub Release is published env: - JAVA_OPTS: -Xms6g -Xmx6g -XX:+UseG1GC - JDK_JAVA_OPTIONS: -Xms6g -Xmx6g -XX:+UseG1GC # See https://stackoverflow.com/a/73708006 + # See: + # - https://stackoverflow.com/a/73708006 + # - https://stackoverflow.com/questions/73465937/apache-spark-3-3-0-breaks-on-java-17-with-cannot-access-class-sun-nio-ch-direct + JAVA_OPTS: -Xms6G -Xmx6G -XX:+UseG1GC -XX:ReservedCodeCacheSize=256m -XX:+TieredCompilation -Dcommunity=false -Dquill.macro.log=false --add-exports java.base/sun.nio.ch=ALL-UNNAMED + JDK_JAVA_OPTIONS: -Xms6G -Xmx6G -XX:+UseG1GC -XX:ReservedCodeCacheSize=256m -XX:+TieredCompilation -Dcommunity=false -Dquill.macro.log=false --add-exports java.base/sun.nio.ch=ALL-UNNAMED jobs: build: runs-on: ubuntu-latest strategy: + fail-fast: false matrix: scala: [ 3.3.1 ] module: [ sqltest, db, async, bigdata ] @@ -27,7 +31,7 @@ jobs: uses: actions/setup-java@v3.13.0 with: distribution: temurin - java-version: '8' + java-version: '17' check-latest: true - name: Scala ${{ matrix.scala }} Building ${{ matrix.module }} @@ -47,7 +51,7 @@ jobs: uses: actions/setup-java@v3.13.0 with: distribution: temurin - java-version: '8' + java-version: '17' check-latest: true - run: sbt ci-release env: diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index e46f0ccc1..000000000 --- a/.travis.yml +++ /dev/null @@ -1,219 +0,0 @@ -sudo: required -language: scala -jdk: oraclejdk8 -dist: trusty -services: - - docker - - postgresql - - mysql -before_install: - - | - wget -qO- "https://github.com/crazy-max/travis-wait-enhanced/releases/download/v1.2.0/travis-wait-enhanced_1.2.0_linux_x86_64.tar.gz" | tar -zxvf - travis-wait-enhanced - mv travis-wait-enhanced /home/travis/bin/ - travis-wait-enhanced --version - jq --version -addons: - postgresql: "9.6" -branches: - except: - - release - - publish - - website -cache: - directories: - #- $HOME/.ivy2/cache - - $HOME/.m2 - - $HOME/.sbt -env: - global: - - secure: Glt43/THOQFt4rX7PyBj3eEFgRssB20H8wzw/Isj3pXP0pmG8d0jetVta6cA8geMGLsTh3t/nGdMOKa2fkP7cDD2pGZzgeMBPbpXsyWAForKYC+9fa7AUTmUlY82rKIzMpnvBeYj+XrVtS17+jqTSxB7t1OxJsX9VZB0YOxn9SJADLyGeXLlXcmJfBgdA+l1riUMYEJrWZwLKgSOKDr3qO32UAFRcCWPKBeJZ4qwV/cd5+nmtbMERlV3TsWWgtb03eH9ps+nBcobmsyRYpnrWVlYvqUV7rTmibSMuALoeczK8HDUZjy9XMRSPe2RDlzCtF+Pp8Q2VepBJtKSKu3k4yJ6NMbltgtb+uOtx8lIsVk+JIu4sVQuyYHwJBjfPzSmz/JI3EDYiJqgX9Q4MAn0BCj7QBTqEQdZmsoVWo9E5R7XWXRmr97wPnoKtjPAWM5FCuBITlEmzbHMOCwF3+RBqV+6KMEeq7RrEfrE85OpESntJndVdFikupk/JoektxQWV4aNxrkxlnxntsKxpShOcBHIyCzGrimKn8cHpViF4C/LiqORv1XLK4/bmCQ548db1Gidj9G9x0WTCyhvqiavTAEaj+R4p6XrWxS3+za404ZYQc4BRLn/VacVuaihWkf8F2Bj6V9X1LjnSyBcAWGRm6DaJVyXq7Oh9LzH4/iLyPQ= - - secure: GVYDRNMwVypUDJXUQe9SCobwVCezyPODG4T2sMFZdZ3IjBV3vpPQxG0vKj5LL3HjRULb6D8X60Rsso/EQKSVs6cbRhU3h1Am4tgO/KjUswTcf97RJMk9a+pz+KmEFemJXYatpqK5uusYaJcMoKj5D4FeR2Z1FQjgLVV5y6dqAZc+lBzGq2l3QJbBgdwgIb7PLPBszdajpO5LZ3rcxKm+VvvittFqCCNA6V8NINnByByYpxy+BRm2JGrbOiDWzNC41RVbOY/xsRkOAHFKKJofh3sSHf/YAVyavCGi0nwmBevsoGS9Lmt9wGPydvuW7mQ58QODxjlpKoidohQRg81TY/rutl+Ul0a3xVFmTNVwK5dqfBekfwZBI7esBat864LdoWXViH93eQHbkYANUMMb14z5TBWprmAwRdUAUhVXxI201bYFpHTRl8ejBvtT/x0B38CRYd3cM2qjKNkhuOq3G2bCcU1iSW5Kn8U8M+sKI8rXkNtzqSKlQzPXznFhmVybNUh8K6FysIaPDwdtkfnzq9Obw8p1fLcHBts1BeaPxzF28GnTV/nsvTV44VF1sLJJ9kep7YlGzNfNM/eTianlQ1TZozVp+z4sAuytRkYoNgC+NpMnnwdqUk74AvKw2ExRHZbMLtMlKvcliV9etzdiaC0ZbKIFCjS1QFOFB2mpDaI= -jobs: - include: - - stage: build - if: type != pull_request - script: ./build/build.sh sqltest - scala: 2.11.12 - name: "SQL Tests 2.11 - JVM" - - stage: build - script: ./build/build.sh sqltest - scala: 2.12.10 - name: "SQL Tests 2.12 - JVM" - - stage: build - script: ./build/build.sh sqltest - scala: 2.13.1 - name: "SQL Tests 2.13 - JVM" - - - stage: build - if: type != pull_request - script: ./build/build.sh dbgen - scala: 2.11.12 - name: "Databases 2.11 - JDBC MySQL, Postgres, Sqlite, H2, SQL Server, Oracle and Codegen" - - stage: build - script: ./build/build.sh dbgen - scala: 2.12.10 - name: "Databases 2.12 - JDBC MySQL, Postgres, Sqlite, H2, SQL Server, Oracle and Codegen" - - stage: build - script: ./build/build.sh dbgen - scala: 2.13.2 - name: "Databases 2.13 - JDBC MySQL, Postgres, Sqlite, H2, SQL Server, Oracle and Codegen" - - - stage: build - if: type != pull_request - script: ./build/build.sh async - scala: 2.11.12 - name: "Databases 2.11 - Async MySQL, Postgres, Sqlite, H2, SQL Server, Oracle" - - stage: build - script: ./build/build.sh async - scala: 2.12.10 - name: "Databases 2.12 - Async MySQL, Postgres, Sqlite, H2, SQL Server, Oracle" - - stage: build - script: ./build/build.sh async - scala: 2.13.2 - name: "Databases 2.13 - Async MySQL, Postgres, Sqlite, H2, SQL Server, Oracle" - - - stage: build - if: type != pull_request - script: ./build/build.sh js - scala: 2.11.12 - name: "Databases 2.11 - JavaScript" - - stage: build - script: ./build/build.sh js - scala: 2.12.10 - name: "Databases 2.12 - JavaScript" - - stage: build - script: ./build/build.sh js - scala: 2.13.1 - name: "Databases 2.13 - JavaScript" - - - stage: build - if: type != pull_request - script: ./build/build.sh bigdata - scala: 2.11.12 - name: "BigData Databases 2.11 - Cassandra, OrientDB, Spark" - - stage: build - script: ./build/build.sh bigdata - scala: 2.12.10 - name: "BigData Databases 2.12 - Cassandra, OrientDB, Spark" - - stage: build - script: ./build/build.sh bigdata - scala: 2.13.2 - name: "BigData Databases 2.13 - Cassandra, OrientDB, Spark" - - - stage: release - if: type != pull_request - scala: 2.12.6 - name: "Release 2.11 base" - script: - - ./build/release.sh 211 base - - stage: release - if: type != pull_request - scala: 2.12.6 - name: "Release 2.11 db" - script: - - ./build/release.sh 211 db - - stage: release - if: type != pull_request - scala: 2.12.6 - name: "Release 2.11 js" - script: - - ./build/release.sh 211 js - - stage: release - if: type != pull_request - scala: 2.12.6 - name: "Release 2.11 async" - script: - - ./build/release.sh 211 async - - stage: release - if: type != pull_request - scala: 2.12.6 - name: "Release 2.11 codegen" - script: - - ./build/release.sh 211 codegen - - stage: release - if: type != pull_request - scala: 2.12.6 - name: "Release 2.11 bigdata" - script: - - ./build/release.sh 211 bigdata - - - stage: release - if: type != pull_request - scala: 2.12.6 - name: "Release 2.12 base" - script: - - ./build/release.sh 212 base - - stage: release - if: type != pull_request - scala: 2.12.6 - name: "Release 2.12 db" - script: - - ./build/release.sh 212 db - - stage: release - if: type != pull_request - scala: 2.12.6 - name: "Release 2.12 js" - script: - - ./build/release.sh 212 js - - stage: release - if: type != pull_request - scala: 2.12.6 - name: "Release 2.12 async" - script: - - ./build/release.sh 212 async - - stage: release - if: type != pull_request - scala: 2.12.6 - name: "Release 2.12 codegen" - script: - - ./build/release.sh 212 codegen - - stage: release - if: type != pull_request - scala: 2.12.6 - name: "Release 2.12 bigdata" - script: - - ./build/release.sh 212 bigdata - - - stage: release - if: type != pull_request - scala: 2.13.2 - name: "Release 2.13 base" - script: - - ./build/release.sh 213 base - - stage: release - if: type != pull_request - scala: 2.13.2 - name: "Release 2.13 db" - script: - - ./build/release.sh 213 db - - stage: release - if: type != pull_request - scala: 2.13.2 - name: "Release 2.13 js" - script: - - ./build/release.sh 213 js - - stage: release - if: type != pull_request - scala: 2.13.2 - name: "Release 2.13 async" - script: - - ./build/release.sh 213 async - - stage: release - if: type != pull_request - scala: 2.13.2 - name: "Release 2.12 codegen" - script: - - ./build/release.sh 213 codegen - - stage: release - if: type != pull_request - scala: 2.13.2 - name: "Release 2.13 bigdata" - script: - - ./build/release.sh 213 bigdata - - - stage: publish - if: type != pull_request AND (branch = master OR branch =~ /re-release.*/) - scala: 2.12.6 - name: "Publish" - script: - - ./build/publish.sh diff --git a/build.sbt b/build.sbt index 28a47d8c7..af749cdbf 100644 --- a/build.sbt +++ b/build.sbt @@ -27,7 +27,7 @@ val isCommunityRemoteBuild = sys.props.getOrElse("communityRemote", "false").toBoolean lazy val scalatestVersion = - if (isCommunityRemoteBuild) "3.2.7" else "3.2.9" + if (isCommunityRemoteBuild) "3.2.7" else "3.2.17" lazy val baseModules = Seq[sbt.ClasspathDep[sbt.ProjectReference]]( `quill-sql` @@ -123,7 +123,7 @@ lazy val `quill-sql` = // errors will happen. Even if the pprint classes are actually there "io.suzaku" %% "boopickle" % "1.4.0", "com.lihaoyi" %% "pprint" % "0.8.1", - "ch.qos.logback" % "logback-classic" % "1.3.11" % Test, + "ch.qos.logback" % "logback-classic" % "1.4.11" % Test, "io.getquill" %% "quill-engine" % zioQuillVersion, "dev.zio" %% "zio" % "2.0.18", ("io.getquill" %% "quill-util" % zioQuillVersion) @@ -203,12 +203,12 @@ lazy val `quill-caliban` = "com.github.ghostdogpr" %% "caliban-zio-http" % "2.0.2", // Adding this to main dependencies would force users to use logback-classic for SLF4j unless the specifically remove it // seems to be safer to just exclude & add a commented about need for a SLF4j implementation in Docs. - "ch.qos.logback" % "logback-classic" % "1.3.11" % Test, + "ch.qos.logback" % "logback-classic" % "1.4.11" % Test, "io.d11" %% "zhttp" % "2.0.0-RC11" % Test, // Don't want to make this dependant on zio-test for the testing code so importing this here separately "org.scalatest" %% "scalatest" % scalatestVersion % Test, "org.scalatest" %% "scalatest-mustmatchers" % scalatestVersion % Test, - "org.postgresql" % "postgresql" % "42.2.27" % Test, + "org.postgresql" % "postgresql" % "42.6.0" % Test, ) ) .dependsOn(`quill-jdbc-zio` % "compile->compile") @@ -294,7 +294,7 @@ lazy val commonSettings = lazy val jdbcTestingLibraries = Seq( // JDBC Libraries for testing of quill-jdbc___ contexts libraryDependencies ++= Seq( - "com.zaxxer" % "HikariCP" % "4.0.3" exclude("org.slf4j", "*"), + "com.zaxxer" % "HikariCP" % "5.0.1" exclude("org.slf4j", "*"), // In 8.0.22 error happens: Conversion from java.time.OffsetDateTime to TIMESTAMP is not supported "com.mysql" % "mysql-connector-j" % "8.1.0" % Test, "com.h2database" % "h2" % "2.2.224" % Test, @@ -302,7 +302,7 @@ lazy val jdbcTestingLibraries = Seq( "org.postgresql" % "postgresql" % "42.6.0" % Test, "org.xerial" % "sqlite-jdbc" % "3.42.0.1" % Test, // In 7.1.1-jre8-preview error happens: The conversion to class java.time.OffsetDateTime is unsupported. - "com.microsoft.sqlserver" % "mssql-jdbc" % "7.2.2.jre8" % Test, + "com.microsoft.sqlserver" % "mssql-jdbc" % "7.2.2.jre11" % Test, "com.oracle.ojdbc" % "ojdbc8" % "19.3.0.0" % Test, //"org.mockito" %% "mockito-scala-scalatest" % "1.16.2" % Test ) @@ -332,6 +332,8 @@ lazy val basicSettings = Seq( scalacOptions ++= Seq( "-language:implicitConversions", "-explain", // See https://docs.scala-lang.org/scala3/guides/migration/tooling-syntax-rewriting.html - "-no-indent" - ) + "-no-indent", + "-release:11", + ), + javacOptions := Seq("-source", "11", "-target", "11"), ) diff --git a/build/Dockerfile-sbt b/build/Dockerfile-sbt index 621bde3ca..21bd67c4f 100644 --- a/build/Dockerfile-sbt +++ b/build/Dockerfile-sbt @@ -1,4 +1,4 @@ -FROM hseeberger/scala-sbt:8u312_1.5.5_2.13.6 +FROM sbtscala/scala-sbt:eclipse-temurin-focal-17.0.8.1_1_1.9.6_3.3.1 MAINTAINER mdedetrich@gmail.com RUN apt-get update diff --git a/build/build.sh b/build/build.sh index 412703890..5b3ad1d3e 100755 --- a/build/build.sh +++ b/build/build.sh @@ -23,9 +23,6 @@ export CASSANDRA_DC=datacenter1 export ORIENTDB_HOST=127.0.0.1 export ORIENTDB_PORT=12424 -export GC_OPTS="-XX:ReservedCodeCacheSize=256m -XX:+TieredCompilation -XX:+UseConcMarkSweepGC -XX:+CMSClassUnloadingEnabled" -export JVM_OPTS="-Dcommunity=false -Dquill.macro.log=false -Xms1024m -Xmx4g -Xss5m ${GC_OPTS}" - modules=$1 echo "Modules: $modules" @@ -168,8 +165,6 @@ function base_build() { } function sqltest_build() { - # Can use more memory here since not loading any images - export JVM_OPTS="-Dcommunity=false -Dquill.macro.log=false -Xms2g -Xmx5g -Xss5m ${GC_OPTS}" sbt -Dmodules=sqltest -Doracle=true $SBT_ARGS test } @@ -180,12 +175,6 @@ function db_build() { ./build/aware_run.sh "sbt -Dmodules=db $SBT_ARGS test" } -# function js_build() { -# show_mem -# export JVM_OPTS="-Dquill.macro.log=false -Xms1024m -Xmx4g -Xss5m ${GC_OPTS}" -# sbt -Dmodules=js $SBT_ARGS test -# } - function async_build() { wait_for_mysql_postgres sbt -Dmodules=async $SBT_ARGS test diff --git a/build/m1/Dockerfile-sbt b/build/m1/Dockerfile-sbt index 87994d750..2ae41420d 100644 --- a/build/m1/Dockerfile-sbt +++ b/build/m1/Dockerfile-sbt @@ -1,4 +1,4 @@ -FROM --platform=linux/arm64 hseeberger/scala-sbt:8u312_1.5.5_2.13.6 +FROM --platform=linux/arm64 sbtscala/scala-sbt:eclipse-temurin-focal-17.0.8.1_1_1.9.6_3.3.1 MAINTAINER mdedetrich@gmail.com RUN apt-get update diff --git a/docker-compose.yml b/docker-compose.yml index a21b4b33d..d3bc98e0d 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -121,7 +121,7 @@ services: - ~/.m2:/root/.m2:cached - ~/.sbt:/root/.sbt:cached environment: - - SBT_OPTS=-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005 -Dfile.encoding=UTF-8 -Xms512m -Xmx1536m -Xss2m -XX:ReservedCodeCacheSize=256m -XX:+TieredCompilation -XX:+CMSClassUnloadingEnabled -XX:+UseConcMarkSweepGC + - SBT_OPTS=-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005 -Dfile.encoding=UTF-8 -Xms512m -Xmx1536m -Xss2m -XX:ReservedCodeCacheSize=256m -XX:+TieredCompilation - POSTGRES_HOST=postgres - POSTGRES_PORT=5432 - MYSQL_HOST=mysql diff --git a/quill-cassandra/src/test/scala/io/getquill/context/cassandra/ListsEncodingSpec.scala b/quill-cassandra/src/test/scala/io/getquill/context/cassandra/ListsEncodingSpec.scala index 9256a2a45..3a6f17ff5 100644 --- a/quill-cassandra/src/test/scala/io/getquill/context/cassandra/ListsEncodingSpec.scala +++ b/quill-cassandra/src/test/scala/io/getquill/context/cassandra/ListsEncodingSpec.scala @@ -1,8 +1,10 @@ package io.getquill.context.cassandra -import java.util.{ Date, UUID } -import java.time.{ Instant, LocalDate } -import io.getquill._ +import java.util.{Date, UUID} +import java.time.{Instant, LocalDate} +import io.getquill.* + +import java.time.temporal.ChronoUnit class ListsEncodingSpec extends CollectionsSpec { @@ -26,7 +28,9 @@ class ListsEncodingSpec extends CollectionsSpec { ) val e = ListsEntity(1, List("c"), List(BigDecimal(1.33)), List(true), List(0, 1), List(3, 2), List(1, 2), List(2, 3), List(1f, 3f), List(5d), List(LocalDate.now()), - List(Instant.now()), List(UUID.randomUUID())) + List(Instant.now().truncatedTo(ChronoUnit.MILLIS)), + List(UUID.randomUUID()) + ) inline def q = quote(query[ListsEntity]) val qDynamic = quote(query[ListsEntity]) diff --git a/quill-cassandra/src/test/scala/io/getquill/context/cassandra/MapsEncodingSpec.scala b/quill-cassandra/src/test/scala/io/getquill/context/cassandra/MapsEncodingSpec.scala index f1131046f..0b266ab12 100644 --- a/quill-cassandra/src/test/scala/io/getquill/context/cassandra/MapsEncodingSpec.scala +++ b/quill-cassandra/src/test/scala/io/getquill/context/cassandra/MapsEncodingSpec.scala @@ -1,8 +1,10 @@ package io.getquill.context.cassandra -import java.time.{ Instant, LocalDate } -import java.util.{ Date, UUID } -import io.getquill._ +import java.time.{Instant, LocalDate} +import java.util.{Date, UUID} +import io.getquill.* + +import java.time.temporal.ChronoUnit class MapsEncodingSpec extends CollectionsSpec { val ctx = testSyncDB @@ -18,7 +20,8 @@ class MapsEncodingSpec extends CollectionsSpec { ) val e = MapsEntity(1, Map("1" -> BigDecimal(1)), Map(1 -> 1d, 2 -> 2d, 3 -> 3d), Map(1L -> 3f), Map(true -> LocalDate.now()), - Map(UUID.randomUUID() -> Instant.now())) + Map(UUID.randomUUID() -> Instant.now().truncatedTo(ChronoUnit.MILLIS)) + ) inline def q = quote(query[MapsEntity]) "Map encoders/decoders" in { diff --git a/quill-cassandra/src/test/scala/io/getquill/context/cassandra/SetsEncodingSpec.scala b/quill-cassandra/src/test/scala/io/getquill/context/cassandra/SetsEncodingSpec.scala index 3aad390c3..cdca5877e 100644 --- a/quill-cassandra/src/test/scala/io/getquill/context/cassandra/SetsEncodingSpec.scala +++ b/quill-cassandra/src/test/scala/io/getquill/context/cassandra/SetsEncodingSpec.scala @@ -1,8 +1,10 @@ package io.getquill.context.cassandra -import java.time.{ Instant, LocalDate } -import java.util.{ Date, UUID } -import io.getquill._ +import java.time.{Instant, LocalDate} +import java.util.{Date, UUID} +import io.getquill.* + +import java.time.temporal.ChronoUnit class SetsEncodingSpec extends CollectionsSpec { val ctx = testSyncDB @@ -23,7 +25,7 @@ class SetsEncodingSpec extends CollectionsSpec { ) val e = SetsEntity(1, Set("c"), Set(BigDecimal(1.33)), Set(true), Set(1, 2), Set(2, 3), Set(1f, 3f), Set(5d), Set(LocalDate.now()), - Set(Instant.now()), Set(UUID.randomUUID())) + Set(Instant.now().truncatedTo(ChronoUnit.MILLIS)), Set(UUID.randomUUID())) inline def q = quote(query[SetsEntity]) "Set encoders/decoders" in { diff --git a/quill-jasync-postgres/src/test/scala/io/getquill/context/jasync/postgres/ArrayAsyncEncodingSpec.scala b/quill-jasync-postgres/src/test/scala/io/getquill/context/jasync/postgres/ArrayAsyncEncodingSpec.scala index 35175d014..f7cb816cf 100644 --- a/quill-jasync-postgres/src/test/scala/io/getquill/context/jasync/postgres/ArrayAsyncEncodingSpec.scala +++ b/quill-jasync-postgres/src/test/scala/io/getquill/context/jasync/postgres/ArrayAsyncEncodingSpec.scala @@ -1,12 +1,12 @@ package io.getquill.context.jasync.postgres -import java.time.{ LocalDate, LocalDateTime } -import java.util.{ Date, UUID } - +import java.time.{LocalDate, LocalDateTime} +import java.util.{Date, UUID} import io.getquill.context.sql.EncodingTestType import io.getquill.context.sql.encoding.ArrayEncodingBaseSpec -import io.getquill._ +import io.getquill.* +import java.time.temporal.ChronoUnit import scala.concurrent.ExecutionContext.Implicits.global class ArrayAsyncEncodingSpec extends ArrayEncodingBaseSpec { @@ -25,7 +25,7 @@ class ArrayAsyncEncodingSpec extends ArrayEncodingBaseSpec { "Java8 times" in { case class Java8Times(timestamps: Seq[LocalDateTime], dates: Seq[LocalDate]) - val jE = Java8Times(Seq(LocalDateTime.now()), Seq(LocalDate.now())) + val jE = Java8Times(Seq(LocalDateTime.now().truncatedTo(ChronoUnit.MICROS)), Seq(LocalDate.now())) inline def jQ = quote(querySchema[Java8Times]("ArraysTestEntity")) await(ctx.run(jQ.insertValue(lift(jE)))) val actual = await(ctx.run(jQ)).head @@ -138,7 +138,7 @@ class ArrayAsyncEncodingSpec extends ArrayEncodingBaseSpec { "Java8 times" in { case class Java8Times(timestamps: Seq[LocalDateTime], dates: Seq[LocalDate]) - val jE = Java8Times(Seq(LocalDateTime.now()), Seq(LocalDate.now())) + val jE = Java8Times(Seq(LocalDateTime.now().truncatedTo(ChronoUnit.MICROS)), Seq(LocalDate.now())) val jQ = quote(querySchema[Java8Times]("ArraysTestEntity")) await(ctx.run(jQ.insertValue(lift(jE)))) val actual = await(ctx.run(jQ)).head diff --git a/quill-jasync-postgres/src/test/scala/io/getquill/context/jasync/postgres/PostgresAsyncEncodingSpec.scala b/quill-jasync-postgres/src/test/scala/io/getquill/context/jasync/postgres/PostgresAsyncEncodingSpec.scala index 076863dc4..efa5943e0 100644 --- a/quill-jasync-postgres/src/test/scala/io/getquill/context/jasync/postgres/PostgresAsyncEncodingSpec.scala +++ b/quill-jasync-postgres/src/test/scala/io/getquill/context/jasync/postgres/PostgresAsyncEncodingSpec.scala @@ -1,7 +1,6 @@ package io.getquill.context.jasync.postgres -import java.time.{ LocalDate, LocalDateTime, ZonedDateTime } - +import java.time.{LocalDate, LocalDateTime, ZonedDateTime} import io.getquill.context.sql.EncodingSpec import scala.concurrent.ExecutionContext.Implicits.global @@ -9,8 +8,10 @@ import scala.concurrent.Await import scala.concurrent.duration.Duration import java.util.Date import java.util.UUID -import io.getquill._ -import org.scalatest._ +import io.getquill.* +import org.scalatest.* + +import java.time.temporal.ChronoUnit class PostgresAsyncEncodingSpec extends EncodingSpec { @@ -91,7 +92,11 @@ class PostgresAsyncEncodingSpec extends EncodingSpec { "decodes LocalDate and LocalDateTime types" in { case class DateEncodingTestEntity(v1: LocalDate, v2: LocalDateTime, v3: ZonedDateTime) - val entity = DateEncodingTestEntity(LocalDate.now, LocalDateTime.now, ZonedDateTime.now(testContext.dateTimeZone)) + val entity = DateEncodingTestEntity( + LocalDate.now, + LocalDateTime.now.truncatedTo(ChronoUnit.MICROS), + ZonedDateTime.now(testContext.dateTimeZone).truncatedTo(ChronoUnit.MICROS) + ) val r = for { _ <- testContext.run(query[DateEncodingTestEntity].delete) _ <- testContext.run(query[DateEncodingTestEntity].insertValue(lift(entity))) diff --git a/quill-jdbc/src/test/scala/io/getquill/context/jdbc/postgres/JdbcEncodingSpec.scala b/quill-jdbc/src/test/scala/io/getquill/context/jdbc/postgres/JdbcEncodingSpec.scala index 08da96c90..437375ac5 100644 --- a/quill-jdbc/src/test/scala/io/getquill/context/jdbc/postgres/JdbcEncodingSpec.scala +++ b/quill-jdbc/src/test/scala/io/getquill/context/jdbc/postgres/JdbcEncodingSpec.scala @@ -1,10 +1,11 @@ package io.getquill.context.jdbc.postgres import java.time.LocalDateTime - import io.getquill.context.sql.EncodingSpec -import io.getquill._ +import io.getquill.* + import java.time.ZoneId +import java.time.temporal.ChronoUnit class JdbcEncodingSpec extends EncodingSpec { @@ -38,7 +39,7 @@ class JdbcEncodingSpec extends EncodingSpec { // IO Monad not working yet so need to do regular queries "LocalDateTime" in { case class EncodingTestEntity(v11: Option[LocalDateTime]) - val now = LocalDateTime.now() + val now = LocalDateTime.now().truncatedTo(ChronoUnit.MICROS) val e1 = EncodingTestEntity(Some(now)) val e2 = EncodingTestEntity(None) val res: (List[EncodingTestEntity], List[EncodingTestEntity]) = {