diff --git a/.github/workflows/scala_3.0.yml b/.github/workflows/scala_3.0.yml new file mode 100644 index 0000000..e01133a --- /dev/null +++ b/.github/workflows/scala_3.0.yml @@ -0,0 +1,23 @@ +name: Scala 3.0 + +on: + push: + branches: [ master ] + pull_request: + branches: [ master ] + +jobs: + build: + name: "Scala 3.0" + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v2 + - name: Set up JDK 1.8 + uses: actions/setup-java@v1 + with: + java-version: 1.8 + - name: Test + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + run: sbt -Dsbt.color=true -Dsbt.supershell=false ++3.0.0-RC1 clean test diff --git a/akka/src/main/scala/com/github/mkroli/dns4s/akka/DnsActor.scala b/akka/src/main/scala/com/github/mkroli/dns4s/akka/DnsActor.scala index dd4e363..4f40279 100644 --- a/akka/src/main/scala/com/github/mkroli/dns4s/akka/DnsActor.scala +++ b/akka/src/main/scala/com/github/mkroli/dns4s/akka/DnsActor.scala @@ -18,17 +18,17 @@ package com.github.mkroli.dns4s.akka import java.net.InetSocketAddress import java.util.concurrent.TimeUnit -import akka.actor.{Actor, ActorRef} -import akka.io.{IO, Udp} +import akka.actor._ import akka.io.Udp.CommandFailed +import akka.io.{IO, Udp} import akka.pattern.ask import akka.util.{ByteString, Timeout} -import com.github.mkroli.dns4s.{Message, MessageBuffer} import com.github.mkroli.dns4s.dsl.{Query, Response} +import com.github.mkroli.dns4s.{Message, MessageBuffer} import com.google.common.cache.CacheBuilder import scala.collection.JavaConverters._ -import scala.language.postfixOps +import scala.language.{implicitConversions, postfixOps} import scala.util.Try class DnsActor(port: Int, requester: ActorRef, handler: ActorRef)(implicit timeout: Timeout) extends Actor { diff --git a/akka/src/main/scala/com/github/mkroli/dns4s/akka/DnsExtension.scala b/akka/src/main/scala/com/github/mkroli/dns4s/akka/DnsExtension.scala index 8a40844..cfc77ad 100644 --- a/akka/src/main/scala/com/github/mkroli/dns4s/akka/DnsExtension.scala +++ b/akka/src/main/scala/com/github/mkroli/dns4s/akka/DnsExtension.scala @@ -35,7 +35,7 @@ object Dns extends ExtensionId[DnsExtension] with ExtensionIdProvider { override def lookup() = Dns - case class Bind(handler: ActorRef, port: Int, implicit val timeout: Timeout = 5 seconds) + case class Bind(handler: ActorRef, port: Int)(implicit val timeout: Timeout = 5 seconds) case object Bound diff --git a/akka/src/main/scala/com/github/mkroli/dns4s/akka/DnsExtensionActor.scala b/akka/src/main/scala/com/github/mkroli/dns4s/akka/DnsExtensionActor.scala index 3aa03fd..a635a2c 100644 --- a/akka/src/main/scala/com/github/mkroli/dns4s/akka/DnsExtensionActor.scala +++ b/akka/src/main/scala/com/github/mkroli/dns4s/akka/DnsExtensionActor.scala @@ -24,8 +24,8 @@ class DnsExtensionActor extends Actor { lazy val simple = context.actorOf(Props[DnsSimpleClientActor](), "simple") override def receive = { - case Dns.Bind(handler, port, timeout) => - implicit val _timeout = timeout + case b @ Dns.Bind(handler, port) => + implicit val _timeout = b.timeout val requester = sender() context.actorOf(Props(new DnsActor(port, requester, handler)), s"dns-$port") case p @ Dns.DnsPacket(Query(_), _) => diff --git a/akka/src/test/scala/com/github/mkroli/dns4s/akka/DnsExtensionSpec.scala b/akka/src/test/scala/com/github/mkroli/dns4s/akka/DnsExtensionSpec.scala index 0e1d075..2edc102 100644 --- a/akka/src/test/scala/com/github/mkroli/dns4s/akka/DnsExtensionSpec.scala +++ b/akka/src/test/scala/com/github/mkroli/dns4s/akka/DnsExtensionSpec.scala @@ -17,7 +17,7 @@ package com.github.mkroli.dns4s.akka import java.net.{InetAddress, InetSocketAddress} -import akka.actor.{ActorRef, ActorSystem} +import akka.actor._ import akka.io.IO import akka.testkit.{ImplicitSender, TestKitBase, TestProbe} import akka.util.Timeout @@ -27,13 +27,18 @@ import org.scalatest.BeforeAndAfterAll import org.scalatest.funspec.AnyFunSpec import scala.concurrent.duration.DurationInt -import scala.language.postfixOps +import scala.language.{implicitConversions, postfixOps} -class DnsExtensionSpec extends AnyFunSpec with TestKitBase with ImplicitSender with BeforeAndAfterAll { - implicit lazy val system = ActorSystem() - implicit lazy val timeout = Timeout(5 seconds) +trait DefaultActorSystem { + self: TestKitBase => - override def afterAll = shutdown(system) + override implicit val system: ActorSystem = ActorSystem() +} + +class DnsExtensionSpec extends AnyFunSpec with DefaultActorSystem with TestKitBase with ImplicitSender with BeforeAndAfterAll { + implicit val timeout: Timeout = Timeout(5 seconds) + + override def afterAll() = shutdown(system) describe("DnsExtension") { describe("Binding/Unbinding") { diff --git a/build.sbt b/build.sbt index 32a9ea1..02464cf 100644 --- a/build.sbt +++ b/build.sbt @@ -16,27 +16,32 @@ import ReleaseTransformations._ -lazy val scalaVersions = "2.13.3" :: "2.12.12" :: "2.11.12" :: "2.10.7" :: Nil +lazy val scalaVersions = "2.13.3" :: "2.12.12" :: "2.11.12" :: "2.10.7" :: "3.0.0-RC1" :: Nil lazy val guavaDependencies = Seq( "com.google.guava" % "guava" % "[15.0,24.0)", "com.google.code.findbugs" % "jsr305" % "[0.+,)" % "provided" ) -lazy val akkaDependencies = Seq( - "com.typesafe.akka" %% "akka-actor" % "[2.3.0,2.7.0)", - "com.typesafe.akka" %% "akka-testkit" % "[2.3.0,2.7.0)" % "test" -) +lazy val akkaDependencies = Def.setting { + Seq( + "com.typesafe.akka" %% "akka-actor" % "[2.3.0,2.7.0)", + "com.typesafe.akka" %% "akka-testkit" % "[2.3.0,2.7.0)" % "test" + ).map(_.withDottyCompat(scalaVersion.value)) +} lazy val nettyDependencies = Seq( "io.netty" % "netty-handler" % "[4.0.0,4.2.0)" ) -lazy val scalaTestDependencies = Seq( - "org.scalatest" %% "scalatest" % "3.2.0" % "test", - "org.scalatest" %% "scalatest-funspec" % "3.2.0" % "test", - "org.scalatestplus" %% "scalacheck-1-14" % "3.2.0.0" % "test", - "org.scalacheck" %% "scalacheck" % "1.14.1" % "test" +lazy val scalaTestDependencies = Def.setting( + Seq( + "org.scalatest" %% "scalatest" % "[3.2.2,3.2.6]" % "test", + "org.scalatest" %% "scalatest-funspec" % "[3.2.2,3.2.6]" % "test" + ) :+ (CrossVersion.partialVersion(scalaVersion.value) match { + case Some((2, 10)) => "org.scalatestplus" %% "scalacheck-1-14" % "[3.2.2.0,3.2.6.0]" % "test" + case _ => "org.scalatestplus" %% "scalacheck-1-15" % "[3.2.2.0,3.2.6.0]" % "test" + }) ) def projectSettings(n: String, d: String) = Seq( @@ -46,8 +51,10 @@ def projectSettings(n: String, d: String) = Seq( scalaVersion := scalaVersions.head, scalacOptions ++= Seq("-feature", "-unchecked", "-deprecation") ++ (CrossVersion.partialVersion(scalaVersion.value) match { case Some((2, 10 | 11)) => Seq("-target:jvm-1.6") + case Some((3, 0)) => Seq("-Xtarget", "8") case _ => Seq("-target:jvm-1.8") }), + scalacOptions ++= { if (isDotty.value) Seq("-source:future-migration") else Nil }, mimaPreviousArtifacts := Set(organization.value %% name.value % "0.10"), crossScalaVersions := scalaVersions, autoAPIMappings := true, @@ -82,15 +89,15 @@ def projectOsgiSettings(bundleName: String, packagesPrefix: String, packages: St ) lazy val dns4sProjectSettings = Seq( - libraryDependencies ++= guavaDependencies ++ scalaTestDependencies + libraryDependencies ++= guavaDependencies ++ scalaTestDependencies.value ) lazy val dns4sAkkaProjectSettings = Seq( - libraryDependencies ++= guavaDependencies ++ akkaDependencies ++ scalaTestDependencies + libraryDependencies ++= guavaDependencies ++ akkaDependencies.value ++ scalaTestDependencies.value ) lazy val dns4sNettyProjectSettings = Seq( - libraryDependencies ++= nettyDependencies ++ scalaTestDependencies + libraryDependencies ++= nettyDependencies ++ scalaTestDependencies.value ) lazy val projectReleaseSettings = Seq( diff --git a/core/src/main/scala/com/github/mkroli/dns4s/MessageBuffer.scala b/core/src/main/scala/com/github/mkroli/dns4s/MessageBuffer.scala index db05f2d..6d5d91a 100644 --- a/core/src/main/scala/com/github/mkroli/dns4s/MessageBuffer.scala +++ b/core/src/main/scala/com/github/mkroli/dns4s/MessageBuffer.scala @@ -17,7 +17,7 @@ package com.github.mkroli.dns4s import java.nio.ByteBuffer -import scala.language.postfixOps +import scala.language.{implicitConversions, postfixOps} trait MessageBufferEncoder { def apply(buf: MessageBuffer): MessageBuffer diff --git a/core/src/main/scala/com/github/mkroli/dns4s/dsl/OPTOptionData.scala b/core/src/main/scala/com/github/mkroli/dns4s/dsl/OPTOptionData.scala index 533354e..f797875 100644 --- a/core/src/main/scala/com/github/mkroli/dns4s/dsl/OPTOptionData.scala +++ b/core/src/main/scala/com/github/mkroli/dns4s/dsl/OPTOptionData.scala @@ -21,7 +21,9 @@ import java.net.InetAddress import com.github.mkroli.dns4s.section.resource.OPTResource import com.github.mkroli.dns4s.section.resource.OPTResource.{ClientSubnetOPTOptionData, OPTOption, UnknownOPTOptionData} -private[dsl] abstract class OptionDataExtractor[T: Manifest] { +import scala.reflect.ClassTag + +private[dsl] abstract class OptionDataExtractor[T: ClassTag] { def unapply(o: OPTOption): Option[T] = o.data match { case o: T => Some(o) case _ => None diff --git a/core/src/main/scala/com/github/mkroli/dns4s/dsl/ResourceRecord.scala b/core/src/main/scala/com/github/mkroli/dns4s/dsl/ResourceRecord.scala index e3801ae..0834c60 100644 --- a/core/src/main/scala/com/github/mkroli/dns4s/dsl/ResourceRecord.scala +++ b/core/src/main/scala/com/github/mkroli/dns4s/dsl/ResourceRecord.scala @@ -15,30 +15,16 @@ */ package com.github.mkroli.dns4s.dsl -import java.net.Inet4Address -import java.net.Inet6Address -import java.net.InetAddress +import java.net.{Inet4Address, Inet6Address, InetAddress} import com.github.mkroli.dns4s.Message import com.github.mkroli.dns4s.section.ResourceRecord -import com.github.mkroli.dns4s.section.resource.{ - AAAAResource, - AResource, - CAAResource, - CNameResource, - HInfoResource, - MXResource, - NAPTRResource, - NSResource, - OPTResource, - PTRResource, - SOAResource, - TXTResource -} -import com.github.mkroli.dns4s.section.resource.CAAResource.{IODEFResource, IssueResource, IssueWildResource, CustomCAAResource} +import com.github.mkroli.dns4s.section.resource.CAAResource.{CustomCAAResource, IODEFResource, IssueResource, IssueWildResource} import com.github.mkroli.dns4s.section.resource._ import com.google.common.net.InetAddresses +import scala.reflect.ClassTag + trait ResourceRecordModifier { self => def ~(rrm: ResourceRecordModifier) = new ResourceRecordModifier { override def apply(rr: ResourceRecord): ResourceRecord = rrm(self(rr)) @@ -95,7 +81,7 @@ object RRTtl extends ResourceRecordField(_.`ttl`) { } } -private[dsl] abstract class ResourceRecordExtractor[T: Manifest] { +private[dsl] abstract class ResourceRecordExtractor[T: ClassTag] { def unapply(rr: ResourceRecord): Option[T] = rr.rdata match { case rr: T => Some(rr) case _ => None diff --git a/core/src/test/scala/com/github/mkroli/dns4s/MessageSpec.scala b/core/src/test/scala/com/github/mkroli/dns4s/MessageSpec.scala index 35c26f5..8876393 100644 --- a/core/src/test/scala/com/github/mkroli/dns4s/MessageSpec.scala +++ b/core/src/test/scala/com/github/mkroli/dns4s/MessageSpec.scala @@ -15,12 +15,11 @@ */ package com.github.mkroli.dns4s +import com.github.mkroli.dns4s.section.{HeaderSection, QuestionSection, ResourceRecord} +import com.github.mkroli.dns4s.section.resource.CNameResource import org.scalatest.funspec.AnyFunSpec -import com.github.mkroli.dns4s.section.HeaderSection -import com.github.mkroli.dns4s.section.QuestionSection -import com.github.mkroli.dns4s.section.ResourceRecord -import com.github.mkroli.dns4s.section.resource.CNameResource +import scala.language.implicitConversions class MessageSpec extends AnyFunSpec { describe("Message") { diff --git a/core/src/test/scala/com/github/mkroli/dns4s/dsl/HeaderSpec.scala b/core/src/test/scala/com/github/mkroli/dns4s/dsl/HeaderSpec.scala index 7ccdc58..b4c443f 100644 --- a/core/src/test/scala/com/github/mkroli/dns4s/dsl/HeaderSpec.scala +++ b/core/src/test/scala/com/github/mkroli/dns4s/dsl/HeaderSpec.scala @@ -18,6 +18,8 @@ package com.github.mkroli.dns4s.dsl import com.github.mkroli.dns4s.section.HeaderSection import org.scalatest.funspec.AnyFunSpec +import scala.language.implicitConversions + class HeaderSpec extends AnyFunSpec { describe("Header") { it("should be possible to create a query") { diff --git a/core/src/test/scala/com/github/mkroli/dns4s/dsl/QuestionSpec.scala b/core/src/test/scala/com/github/mkroli/dns4s/dsl/QuestionSpec.scala index fc95099..cdbb8dc 100644 --- a/core/src/test/scala/com/github/mkroli/dns4s/dsl/QuestionSpec.scala +++ b/core/src/test/scala/com/github/mkroli/dns4s/dsl/QuestionSpec.scala @@ -18,6 +18,8 @@ package com.github.mkroli.dns4s.dsl import com.github.mkroli.dns4s.section.ResourceRecord import org.scalatest.funspec.AnyFunSpec +import scala.language.implicitConversions + class QuestionSpec extends AnyFunSpec { describe("QuestionSection") { it("should be possible to create no questions") { diff --git a/core/src/test/scala/com/github/mkroli/dns4s/dsl/ResourceRecordSpec.scala b/core/src/test/scala/com/github/mkroli/dns4s/dsl/ResourceRecordSpec.scala index ee314a9..ab082ad 100644 --- a/core/src/test/scala/com/github/mkroli/dns4s/dsl/ResourceRecordSpec.scala +++ b/core/src/test/scala/com/github/mkroli/dns4s/dsl/ResourceRecordSpec.scala @@ -23,6 +23,8 @@ import com.github.mkroli.dns4s.section.resource.OPTResource.{ClientSubnetOPTOpti import com.github.mkroli.dns4s.section.resource._ import org.scalatest.funspec.AnyFunSpec +import scala.language.implicitConversions + class ResourceRecordSpec extends AnyFunSpec { describe("ResourceRecord") { it("should be possible to create an answer") { diff --git a/core/src/test/scala/com/github/mkroli/dns4s/section/HeaderSpec.scala b/core/src/test/scala/com/github/mkroli/dns4s/section/HeaderSpec.scala index 815b34f..c617e88 100644 --- a/core/src/test/scala/com/github/mkroli/dns4s/section/HeaderSpec.scala +++ b/core/src/test/scala/com/github/mkroli/dns4s/section/HeaderSpec.scala @@ -18,6 +18,8 @@ package com.github.mkroli.dns4s.section import com.github.mkroli.dns4s.{MessageBuffer, bytes, maxInt} import org.scalatest.funspec.AnyFunSpec +import scala.language.implicitConversions + class HeaderSpec extends AnyFunSpec { lazy val defaultHeader = HeaderSection(0, false, 0, false, false, false, false, 0, 0, 0, 0, 0) diff --git a/core/src/test/scala/com/github/mkroli/dns4s/section/QuestionSpec.scala b/core/src/test/scala/com/github/mkroli/dns4s/section/QuestionSpec.scala index 7161a2f..e967137 100644 --- a/core/src/test/scala/com/github/mkroli/dns4s/section/QuestionSpec.scala +++ b/core/src/test/scala/com/github/mkroli/dns4s/section/QuestionSpec.scala @@ -20,6 +20,8 @@ import java.nio.BufferUnderflowException import com.github.mkroli.dns4s.{MessageBuffer, bytes, maxInt} import org.scalatest.funspec.AnyFunSpec +import scala.language.implicitConversions + class QuestionSpec extends AnyFunSpec { describe("QuestionSection") { describe("validation") { diff --git a/core/src/test/scala/com/github/mkroli/dns4s/section/ResourceRecordSpec.scala b/core/src/test/scala/com/github/mkroli/dns4s/section/ResourceRecordSpec.scala index 7940fb8..8950425 100644 --- a/core/src/test/scala/com/github/mkroli/dns4s/section/ResourceRecordSpec.scala +++ b/core/src/test/scala/com/github/mkroli/dns4s/section/ResourceRecordSpec.scala @@ -17,10 +17,12 @@ package com.github.mkroli.dns4s.section import java.net.{Inet4Address, InetAddress} -import com.github.mkroli.dns4s.{MessageBuffer, bytes, maxInt, maxLong} import com.github.mkroli.dns4s.section.resource.{AResource, UnknownResource} +import com.github.mkroli.dns4s.{MessageBuffer, bytes, maxInt, maxLong} import org.scalatest.funspec.AnyFunSpec +import scala.language.implicitConversions + class ResourceRecordSpec extends AnyFunSpec { describe("ResourceRecord") { describe("validation") { diff --git a/core/src/test/scala/com/github/mkroli/dns4s/section/resource/AAAAResourceSpec.scala b/core/src/test/scala/com/github/mkroli/dns4s/section/resource/AAAAResourceSpec.scala index 8489b41..cf315e3 100644 --- a/core/src/test/scala/com/github/mkroli/dns4s/section/resource/AAAAResourceSpec.scala +++ b/core/src/test/scala/com/github/mkroli/dns4s/section/resource/AAAAResourceSpec.scala @@ -22,6 +22,8 @@ import com.github.mkroli.dns4s.{MessageBuffer, bytes, bytesGenerator} import org.scalatest.funspec.AnyFunSpec import org.scalatestplus.scalacheck.ScalaCheckPropertyChecks +import scala.language.implicitConversions + class AAAAResourceSpec extends AnyFunSpec with ScalaCheckPropertyChecks { describe("AAAAResource") { describe("encoding/decoding") { diff --git a/core/src/test/scala/com/github/mkroli/dns4s/section/resource/AResourceSpec.scala b/core/src/test/scala/com/github/mkroli/dns4s/section/resource/AResourceSpec.scala index 2015e12..b9b91ec 100644 --- a/core/src/test/scala/com/github/mkroli/dns4s/section/resource/AResourceSpec.scala +++ b/core/src/test/scala/com/github/mkroli/dns4s/section/resource/AResourceSpec.scala @@ -22,6 +22,8 @@ import com.github.mkroli.dns4s.{MessageBuffer, bytes} import org.scalatest.funspec.AnyFunSpec import org.scalatestplus.scalacheck.ScalaCheckPropertyChecks +import scala.language.implicitConversions + class AResourceSpec extends AnyFunSpec with ScalaCheckPropertyChecks { describe("AResource") { describe("encoding/decoding") { diff --git a/core/src/test/scala/com/github/mkroli/dns4s/section/resource/CAAResourceSpec.scala b/core/src/test/scala/com/github/mkroli/dns4s/section/resource/CAAResourceSpec.scala index 1a852fa..eb3bb9a 100644 --- a/core/src/test/scala/com/github/mkroli/dns4s/section/resource/CAAResourceSpec.scala +++ b/core/src/test/scala/com/github/mkroli/dns4s/section/resource/CAAResourceSpec.scala @@ -21,6 +21,8 @@ import com.github.mkroli.dns4s.{MessageBuffer, bytes} import org.scalatest.funspec.AnyFunSpec import org.scalatestplus.scalacheck.ScalaCheckPropertyChecks +import scala.language.implicitConversions + class CAAResourceSpec extends AnyFunSpec with ScalaCheckPropertyChecks { describe("CustomCAAResource") { describe("validation") { diff --git a/core/src/test/scala/com/github/mkroli/dns4s/section/resource/CNameResourceSpec.scala b/core/src/test/scala/com/github/mkroli/dns4s/section/resource/CNameResourceSpec.scala index 321aa5f..9b1666d 100644 --- a/core/src/test/scala/com/github/mkroli/dns4s/section/resource/CNameResourceSpec.scala +++ b/core/src/test/scala/com/github/mkroli/dns4s/section/resource/CNameResourceSpec.scala @@ -20,6 +20,8 @@ import com.github.mkroli.dns4s.{MessageBuffer, bytes, dnGen} import org.scalatest.funspec.AnyFunSpec import org.scalatestplus.scalacheck.ScalaCheckPropertyChecks +import scala.language.implicitConversions + class CNameResourceSpec extends AnyFunSpec with ScalaCheckPropertyChecks { describe("CNameResource") { describe("encoding/decoding") { diff --git a/core/src/test/scala/com/github/mkroli/dns4s/section/resource/HInfoResourceSpec.scala b/core/src/test/scala/com/github/mkroli/dns4s/section/resource/HInfoResourceSpec.scala index 69b7717..6412710 100644 --- a/core/src/test/scala/com/github/mkroli/dns4s/section/resource/HInfoResourceSpec.scala +++ b/core/src/test/scala/com/github/mkroli/dns4s/section/resource/HInfoResourceSpec.scala @@ -20,6 +20,8 @@ import com.github.mkroli.dns4s.{MessageBuffer, bytes, csGen} import org.scalatest.funspec.AnyFunSpec import org.scalatestplus.scalacheck.ScalaCheckPropertyChecks +import scala.language.implicitConversions + class HInfoResourceSpec extends AnyFunSpec with ScalaCheckPropertyChecks { describe("HInfoResource") { describe("encoding/decoding") { diff --git a/core/src/test/scala/com/github/mkroli/dns4s/section/resource/MXResourceSpec.scala b/core/src/test/scala/com/github/mkroli/dns4s/section/resource/MXResourceSpec.scala index cdc00a9..1defb6a 100644 --- a/core/src/test/scala/com/github/mkroli/dns4s/section/resource/MXResourceSpec.scala +++ b/core/src/test/scala/com/github/mkroli/dns4s/section/resource/MXResourceSpec.scala @@ -20,6 +20,8 @@ import com.github.mkroli.dns4s.section.ResourceRecord import org.scalatest.funspec.AnyFunSpec import org.scalatestplus.scalacheck.ScalaCheckPropertyChecks +import scala.language.implicitConversions + class MXResourceSpec extends AnyFunSpec with ScalaCheckPropertyChecks { describe("MXResource") { describe("validation") { diff --git a/core/src/test/scala/com/github/mkroli/dns4s/section/resource/NAPTRResourceSpec.scala b/core/src/test/scala/com/github/mkroli/dns4s/section/resource/NAPTRResourceSpec.scala index ae41a47..b705d66 100644 --- a/core/src/test/scala/com/github/mkroli/dns4s/section/resource/NAPTRResourceSpec.scala +++ b/core/src/test/scala/com/github/mkroli/dns4s/section/resource/NAPTRResourceSpec.scala @@ -20,6 +20,8 @@ import com.github.mkroli.dns4s.section.ResourceRecord import org.scalatest.funspec.AnyFunSpec import org.scalatestplus.scalacheck.ScalaCheckPropertyChecks +import scala.language.implicitConversions + class NAPTRResourceSpec extends AnyFunSpec with ScalaCheckPropertyChecks { describe("NAPTRResource") { describe("validation") { diff --git a/core/src/test/scala/com/github/mkroli/dns4s/section/resource/NSResourceSpec.scala b/core/src/test/scala/com/github/mkroli/dns4s/section/resource/NSResourceSpec.scala index 9c780d5..fc24c3e 100644 --- a/core/src/test/scala/com/github/mkroli/dns4s/section/resource/NSResourceSpec.scala +++ b/core/src/test/scala/com/github/mkroli/dns4s/section/resource/NSResourceSpec.scala @@ -20,6 +20,8 @@ import com.github.mkroli.dns4s.{MessageBuffer, bytes, dnGen} import org.scalatest.funspec.AnyFunSpec import org.scalatestplus.scalacheck.ScalaCheckPropertyChecks +import scala.language.implicitConversions + class NSResourceSpec extends AnyFunSpec with ScalaCheckPropertyChecks { describe("NSResource") { describe("encoding/decoding") { diff --git a/core/src/test/scala/com/github/mkroli/dns4s/section/resource/OPTResourceSpec.scala b/core/src/test/scala/com/github/mkroli/dns4s/section/resource/OPTResourceSpec.scala index 4d12f73..28af3f0 100644 --- a/core/src/test/scala/com/github/mkroli/dns4s/section/resource/OPTResourceSpec.scala +++ b/core/src/test/scala/com/github/mkroli/dns4s/section/resource/OPTResourceSpec.scala @@ -23,6 +23,8 @@ import com.github.mkroli.dns4s.{MessageBuffer, bytes, bytesGenerator} import org.scalatest.funspec.AnyFunSpec import org.scalatestplus.scalacheck.ScalaCheckPropertyChecks +import scala.language.implicitConversions + class OPTResourceSpec extends AnyFunSpec with ScalaCheckPropertyChecks { describe("OPTResource") { describe("encoding/decoding") { diff --git a/core/src/test/scala/com/github/mkroli/dns4s/section/resource/PTRResourceSpec.scala b/core/src/test/scala/com/github/mkroli/dns4s/section/resource/PTRResourceSpec.scala index 17b91bb..f1f166c 100644 --- a/core/src/test/scala/com/github/mkroli/dns4s/section/resource/PTRResourceSpec.scala +++ b/core/src/test/scala/com/github/mkroli/dns4s/section/resource/PTRResourceSpec.scala @@ -20,6 +20,8 @@ import com.github.mkroli.dns4s.{MessageBuffer, bytes, dnGen} import org.scalatest.funspec.AnyFunSpec import org.scalatestplus.scalacheck.ScalaCheckPropertyChecks +import scala.language.implicitConversions + class PTRResourceSpec extends AnyFunSpec with ScalaCheckPropertyChecks { describe("PTRResource") { describe("encoding/decoding") { diff --git a/core/src/test/scala/com/github/mkroli/dns4s/section/resource/SOAResourceSpec.scala b/core/src/test/scala/com/github/mkroli/dns4s/section/resource/SOAResourceSpec.scala index 148a308..a664e54 100644 --- a/core/src/test/scala/com/github/mkroli/dns4s/section/resource/SOAResourceSpec.scala +++ b/core/src/test/scala/com/github/mkroli/dns4s/section/resource/SOAResourceSpec.scala @@ -20,6 +20,8 @@ import com.github.mkroli.dns4s.section.ResourceRecord import org.scalatest.funspec.AnyFunSpec import org.scalatestplus.scalacheck.ScalaCheckPropertyChecks +import scala.language.implicitConversions + class SOAResourceSpec extends AnyFunSpec with ScalaCheckPropertyChecks { lazy val defaultResource = SOAResource("", "", 0, 0, 0, 0, 0) diff --git a/core/src/test/scala/com/github/mkroli/dns4s/section/resource/SRVResourceSpec.scala b/core/src/test/scala/com/github/mkroli/dns4s/section/resource/SRVResourceSpec.scala index 9f2882d..920f7ee 100644 --- a/core/src/test/scala/com/github/mkroli/dns4s/section/resource/SRVResourceSpec.scala +++ b/core/src/test/scala/com/github/mkroli/dns4s/section/resource/SRVResourceSpec.scala @@ -20,6 +20,8 @@ import com.github.mkroli.dns4s.section.ResourceRecord import org.scalatest.funspec.AnyFunSpec import org.scalatestplus.scalacheck.ScalaCheckPropertyChecks +import scala.language.implicitConversions + class SRVResourceSpec extends AnyFunSpec with ScalaCheckPropertyChecks { describe("SRVResource") { describe("validation") { diff --git a/core/src/test/scala/com/github/mkroli/dns4s/section/resource/TXTResourceSpec.scala b/core/src/test/scala/com/github/mkroli/dns4s/section/resource/TXTResourceSpec.scala index e4961ef..911564e 100644 --- a/core/src/test/scala/com/github/mkroli/dns4s/section/resource/TXTResourceSpec.scala +++ b/core/src/test/scala/com/github/mkroli/dns4s/section/resource/TXTResourceSpec.scala @@ -20,6 +20,8 @@ import com.github.mkroli.dns4s.{MessageBuffer, bytes, cssGen} import org.scalatest.funspec.AnyFunSpec import org.scalatestplus.scalacheck.ScalaCheckPropertyChecks +import scala.language.implicitConversions + class TXTResourceSpec extends AnyFunSpec with ScalaCheckPropertyChecks { describe("TXTResource") { describe("encoding/decoding") { diff --git a/netty/src/main/scala/com/github/mkroli/dns4s/netty/DnsCodec.scala b/netty/src/main/scala/com/github/mkroli/dns4s/netty/DnsCodec.scala index 0cb428e..a78e98d 100644 --- a/netty/src/main/scala/com/github/mkroli/dns4s/netty/DnsCodec.scala +++ b/netty/src/main/scala/com/github/mkroli/dns4s/netty/DnsCodec.scala @@ -27,8 +27,8 @@ import io.netty.handler.codec.MessageToMessageCodec class DnsCodec extends MessageToMessageCodec[DatagramPacket, DnsPacket] { override def encode(ctx: ChannelHandlerContext, msg: DnsPacket, out: JList[AnyRef]): Unit = { - val response = msg.content()() - out.add(new DatagramPacket(Unpooled.copiedBuffer(response.flipped().buf), msg.recipient, msg.sender)) + val response = msg.content() + out.add(new DatagramPacket(Unpooled.copiedBuffer(response().flipped().buf), msg.recipient, msg.sender)) } override def decode(ctx: ChannelHandlerContext, msg: DatagramPacket, out: JList[AnyRef]): Unit = { diff --git a/netty/src/test/scala/com/github/mkroli/dns4s/netty/DnsCodecSpec.scala b/netty/src/test/scala/com/github/mkroli/dns4s/netty/DnsCodecSpec.scala index db9696c..43ef9c4 100644 --- a/netty/src/test/scala/com/github/mkroli/dns4s/netty/DnsCodecSpec.scala +++ b/netty/src/test/scala/com/github/mkroli/dns4s/netty/DnsCodecSpec.scala @@ -21,6 +21,8 @@ import com.github.mkroli.dns4s.dsl.Query import io.netty.channel.embedded.EmbeddedChannel import org.scalatest.funspec.AnyFunSpec +import scala.language.implicitConversions + class DnsCodecSpec extends AnyFunSpec { describe("DnsCodec") { it("should encode/decode DnsPacket messages") { diff --git a/project/build.properties b/project/build.properties index 0837f7a..c06db1b 100644 --- a/project/build.properties +++ b/project/build.properties @@ -1 +1 @@ -sbt.version=1.3.13 +sbt.version=1.4.5 diff --git a/project/plugins.sbt b/project/plugins.sbt index 7925221..fb77e71 100644 --- a/project/plugins.sbt +++ b/project/plugins.sbt @@ -41,4 +41,4 @@ addSbtPlugin("org.scalameta" % "sbt-scalafmt" % "2.4.0") addSbtPlugin("org.xerial.sbt" % "sbt-sonatype" % "3.9.7") -addSbtPlugin("ch.epfl.lamp" % "sbt-dotty" % "0.4.1") +addSbtPlugin("ch.epfl.lamp" % "sbt-dotty" % "0.5.3")