diff --git a/build.sbt b/build.sbt index fd133e9b..112b2462 100644 --- a/build.sbt +++ b/build.sbt @@ -5,17 +5,17 @@ lazy val compileScalastyle = taskKey[Unit]("compileScalastyle") val commonSettings = Seq( scalaVersion in ThisBuild := "2.12.12", - crossScalaVersions := Seq("2.11.12", "2.12.12", "2.13.5", "3.0.0-RC1"), + crossScalaVersions := Seq("2.11.12", "2.12.12", "2.13.5", "3.0.0"), parallelExecution in ThisBuild := false, fork := true, scalacOptions ++= { - if (isDotty.value) Seq( + if (isDotty.value) Seq( "-unchecked", "-deprecation", "-language:_", - "-encoding", "UTF-8", + "-encoding", "UTF-8", "-source:3.0-migration" ) else Seq( "-unchecked", diff --git a/project/Dependencies.scala b/project/Dependencies.scala index 722a8177..52dc6d80 100644 --- a/project/Dependencies.scala +++ b/project/Dependencies.scala @@ -15,12 +15,12 @@ object Dependencies { private val testcontainersVersion = "1.15.2" private val seleniumVersion = "2.53.1" private val slf4jVersion = "1.7.25" - private val scalaTestVersion = "3.2.5" - private val scalaTestMockitoVersion = "3.2.5.0" + private val scalaTestVersion = "3.2.9" + private val scalaTestMockitoVersion = "3.2.9.0" private val scalaTestSeleniumVersion_scala2 = "3.2.2.0" - private val scalaTestSeleniumVersion_scala3 = "3.2.5.0" + private val scalaTestSeleniumVersion_scala3 = "3.2.9.0" private val junitVersion = "4.13.1" - private val munitVersion = "0.7.22" + private val munitVersion = "0.7.25" private val mysqlConnectorVersion = "5.1.42" private val neo4jConnectorVersion = "4.0.0" private val oracleDriverVersion = "19.3.0.0" diff --git a/project/Plugins.sbt b/project/Plugins.sbt index 0bf2a110..162fe665 100644 --- a/project/Plugins.sbt +++ b/project/Plugins.sbt @@ -2,4 +2,4 @@ addSbtPlugin("org.xerial.sbt" % "sbt-sonatype" % "2.3") addSbtPlugin("com.jsuereth" % "sbt-pgp" % "1.1.0") addSbtPlugin("com.github.gseitz" % "sbt-release" % "1.0.7") addSbtPlugin("org.scalastyle" %% "scalastyle-sbt-plugin" % "1.0.0") -addSbtPlugin("ch.epfl.lamp" % "sbt-dotty" % "0.5.3") +addSbtPlugin("ch.epfl.lamp" % "sbt-dotty" % "0.5.5") diff --git a/test-framework/scalatest/src/test/java/com/dimafeng/testcontainers/integration/JavaStub.java b/test-framework/scalatest/src/test/java/com/dimafeng/testcontainers/integration/JavaStub.java new file mode 100644 index 00000000..fd82abde --- /dev/null +++ b/test-framework/scalatest/src/test/java/com/dimafeng/testcontainers/integration/JavaStub.java @@ -0,0 +1,12 @@ +package com.dimafeng.testcontainers.integration; + +import org.testcontainers.images.builder.ImageFromDockerfile; + +// workaround for https://github.com/lampepfl/dotty/issues/12586 +public class JavaStub { + + public ImageFromDockerfile imageFromDockerFileWithFileFromClasspath(String path, String resourcePath) { + return new ImageFromDockerfile().withFileFromClasspath(path, resourcePath); + } + +} \ No newline at end of file diff --git a/test-framework/scalatest/src/test/scala/com/dimafeng/testcontainers/integration/GenericContainerSpec.scala b/test-framework/scalatest/src/test/scala/com/dimafeng/testcontainers/integration/GenericContainerSpec.scala index 53aeb577..5759863d 100644 --- a/test-framework/scalatest/src/test/scala/com/dimafeng/testcontainers/integration/GenericContainerSpec.scala +++ b/test-framework/scalatest/src/test/scala/com/dimafeng/testcontainers/integration/GenericContainerSpec.scala @@ -6,6 +6,7 @@ import com.dimafeng.testcontainers.{ForAllTestContainer, GenericContainer} import org.scalatest.flatspec.AnyFlatSpec import org.testcontainers.containers.wait.strategy.Wait import org.testcontainers.images.builder.ImageFromDockerfile +import org.testcontainers.images.builder.traits.ClasspathTrait; import scala.io.Source @@ -23,7 +24,8 @@ class GenericContainerSpec extends AnyFlatSpec with ForAllTestContainer { } class GenericContainerDockerFileSpec extends GenericContainerSpec { - private val imageFromDockerfile = new ImageFromDockerfile().withFileFromClasspath("Dockerfile", "generic-container-dockerfile") + // we can't do this in Scala 3 due to https://github.com/lampepfl/dotty/issues/12586 so this is delegated to a small Java class. + private val imageFromDockerfile = new JavaStub().imageFromDockerFileWithFileFromClasspath("Dockerfile", "generic-container-dockerfile") override val container: GenericContainer = GenericContainer(imageFromDockerfile, exposedPorts = Seq(80), waitStrategy = Wait.forHttp("/")