diff --git a/.circleci/config.yml b/.circleci/config.yml index 63b364a2..8f3ac680 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -98,66 +98,66 @@ workflows: - scala_job: name: 2.12.x java_version: jdk8 - scala_version: 2.12.20 + scala_version: 2.12.21 - scala_job: name: 2.13.x java_version: jdk8 - scala_version: 2.13.16 + scala_version: 2.13.18 - scala_job: name: 3.x java_version: jdk8 - scala_version: 3.3.6 + scala_version: 3.3.7 - scala_job: name: jdk11_2.12.x java_version: jdk11 - scala_version: 2.12.20 + scala_version: 2.12.21 - scala_job: name: jdk11_2.13.x java_version: jdk11 - scala_version: 2.13.16 + scala_version: 2.13.18 - scala_job: name: jdk11_3.x java_version: jdk11 - scala_version: 3.3.6 + scala_version: 3.3.7 - scala_job: name: jdk17_2.12.x java_version: jdk17 - scala_version: 2.12.20 + scala_version: 2.12.21 - scala_job: name: jdk17_2.13.x java_version: jdk17 - scala_version: 2.13.16 + scala_version: 2.13.18 - scala_job: name: jdk17_3.x java_version: jdk17 - scala_version: 3.3.6 + scala_version: 3.3.7 - scala_job: name: jdk21_2.12.x java_version: jdk21 - scala_version: 2.12.20 + scala_version: 2.12.21 - scala_job: name: jdk21_2.13.x java_version: jdk21 - scala_version: 2.13.16 + scala_version: 2.13.18 - scala_job: name: jdk21_3.x java_version: jdk21 - scala_version: 3.3.6 + scala_version: 3.3.7 - scalajs_job: name: sjs1.0_2.12.x - scala_version: 2.12.20 + scala_version: 2.12.21 - scalajs_job: name: sjs1.0_2.13.x - scala_version: 2.13.16 + scala_version: 2.13.18 - scalajs_job: name: sjs1.0_3.x - scala_version: 3.3.6 + scala_version: 3.3.7 - scalanative_job: name: native0.4_2.12.x - scala_version: 2.12.20 + scala_version: 2.12.21 - scalanative_job: name: native0.4_2.13.x - scala_version: 2.13.16 + scala_version: 2.13.18 - scalanative_job: name: native0.4_3.x - scala_version: 3.3.6 + scala_version: 3.3.7 diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index b0594e67..727f9917 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -13,10 +13,10 @@ jobs: scala: [2.12.x, 2.13.x, 3.x] runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v6 with: fetch-depth: 0 - - uses: actions/setup-java@v4 + - uses: actions/setup-java@v5 with: distribution: temurin java-version: ${{matrix.java}} diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 1e5360b8..cdef358d 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -6,10 +6,10 @@ jobs: publish: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v6 with: fetch-depth: 0 - - uses: actions/setup-java@v4 + - uses: actions/setup-java@v5 with: distribution: temurin java-version: 8 diff --git a/README.md b/README.md index 6cd3fe41..5e743bea 100644 --- a/README.md +++ b/README.md @@ -4,7 +4,7 @@ scala-xml [![latest release for 3.0](https://img.shields.io/maven-central/v/org.scala-lang.modules/scala-xml_3.svg?label=scala+3)](http://mvnrepository.com/artifact/org.scala-lang.modules/scala-xml_3) ========= -The standard Scala XML library. Please file XML issues here, not at https://github.com/scala/bug/issues or http://github.com/lampepfl/dotty/issues. +The standard Scala XML library. Please file XML issues here, not at https://github.com/scala/bug/issues or http://github.com/scala/scala3/issues. The decoupling of scala-xml from the Scala compiler and standard library is possible because the compiler desugars XML literals in Scala source code into a set of method calls. Alternative implementations of these calls are welcome! @@ -12,7 +12,7 @@ Compiler code that shows the calls needed: [Scala 2.11](https://github.com/scala/scala/blob/2.11.x/src/compiler/scala/tools/nsc/ast/parser/SymbolicXMLBuilder.scala), [Scala 2.12](https://github.com/scala/scala/blob/2.12.x/src/compiler/scala/tools/nsc/ast/parser/SymbolicXMLBuilder.scala), [Scala 2.13](https://github.com/scala/scala/blob/2.13.x/src/compiler/scala/tools/nsc/ast/parser/SymbolicXMLBuilder.scala), - [Scala 3](https://github.com/lampepfl/dotty/blob/main/compiler/src/dotty/tools/dotc/parsing/xml/SymbolicXMLBuilder.scala). + [Scala 3](https://github.com/scala/scala3/blob/main/compiler/src/dotty/tools/dotc/parsing/xml/SymbolicXMLBuilder.scala). API documentation is available [here](https://javadoc.io/doc/org.scala-lang.modules/scala-xml_2.13/). diff --git a/build.sbt b/build.sbt index a2019981..00b8c209 100644 --- a/build.sbt +++ b/build.sbt @@ -37,8 +37,8 @@ lazy val xml = crossProject(JSPlatform, JVMPlatform, NativePlatform) .settings( name := "scala-xml", scalaModuleAutomaticModuleName := Some("scala.xml"), - crossScalaVersions := Seq("2.13.16", "2.12.20", "3.3.6"), - scalaVersion := "2.12.20", + crossScalaVersions := Seq("2.13.18", "2.12.21", "3.3.7"), + scalaVersion := "2.12.21", scalacOptions ++= (CrossVersion.partialVersion(scalaVersion.value) match { case Some((3, _)) => @@ -166,7 +166,7 @@ lazy val xml = crossProject(JSPlatform, JVMPlatform, NativePlatform) libraryDependencies += "junit" % "junit" % "4.13.2" % Test, libraryDependencies += "com.github.sbt" % "junit-interface" % "0.13.3" % Test, - libraryDependencies += "org.apache.commons" % "commons-lang3" % "3.17.0" % Test, + libraryDependencies += "org.apache.commons" % "commons-lang3" % "3.20.0" % Test, libraryDependencies += "xerces" % "xercesImpl" % "2.12.2" % Test, libraryDependencies ++= (CrossVersion.partialVersion(scalaVersion.value) match { case Some((3, _)) => diff --git a/jvm/src/test/scala/scala/xml/XMLTest.scala b/jvm/src/test/scala/scala/xml/XMLTest.scala index 5bad0fb3..4e5dba1a 100644 --- a/jvm/src/test/scala/scala/xml/XMLTest.scala +++ b/jvm/src/test/scala/scala/xml/XMLTest.scala @@ -667,13 +667,14 @@ class XMLTestJVM { @UnitTest def checkThatErrorHandlerIsNotOverwritten(): Unit = { var gotAnError: Boolean = false - XML.reader.setErrorHandler(new org.xml.sax.ErrorHandler { + val reader = XML.reader + reader.setErrorHandler(new org.xml.sax.ErrorHandler { override def warning(e: SAXParseException): Unit = gotAnError = true override def error(e: SAXParseException): Unit = gotAnError = true override def fatalError(e: SAXParseException): Unit = gotAnError = true }) try { - XML.loadString("") + XML.adapter.loadDocument(Source.fromString(""), reader) } catch { case _: org.xml.sax.SAXParseException => } diff --git a/project/build.properties b/project/build.properties index 6520f698..01a16ed1 100644 --- a/project/build.properties +++ b/project/build.properties @@ -1 +1 @@ -sbt.version=1.11.0 +sbt.version=1.11.7 diff --git a/project/plugins.sbt b/project/plugins.sbt index bfec069c..c1bb697f 100644 --- a/project/plugins.sbt +++ b/project/plugins.sbt @@ -1,6 +1,5 @@ -addSbtPlugin("org.scala-lang.modules" % "sbt-scala-module" % "3.2.2") +addSbtPlugin("org.scala-lang.modules" % "sbt-scala-module" % "3.4.0") addSbtPlugin("org.portable-scala" % "sbt-scalajs-crossproject" % "1.3.2") addSbtPlugin("org.portable-scala" % "sbt-scala-native-crossproject" % "1.3.2") -addSbtPlugin("org.scala-js" % "sbt-scalajs" % "1.19.0") -addSbtPlugin("org.scala-native" % "sbt-scala-native" % "0.5.7") -addSbtPlugin("de.heikoseeberger" % "sbt-header" % "5.10.0") +addSbtPlugin("org.scala-js" % "sbt-scalajs" % "1.20.1") +addSbtPlugin("org.scala-native" % "sbt-scala-native" % "0.5.9") diff --git a/shared/src/main/scala/scala/xml/factory/XMLLoader.scala b/shared/src/main/scala/scala/xml/factory/XMLLoader.scala index 251027c1..068b5cd3 100644 --- a/shared/src/main/scala/scala/xml/factory/XMLLoader.scala +++ b/shared/src/main/scala/scala/xml/factory/XMLLoader.scala @@ -45,7 +45,11 @@ trait XMLLoader[T <: Node] { } /* Override this to use a different SAXParser. */ - def parser: SAXParser = parserInstance.get + def parser: SAXParser = { + val p = parserInstance.get + try { p.reset() } catch { case _: UnsupportedOperationException => } + p + } /* Override this to use a different XMLReader. */ def reader: XMLReader = parser.getXMLReader diff --git a/shared/src/main/scala/scala/xml/parsing/MarkupParser.scala b/shared/src/main/scala/scala/xml/parsing/MarkupParser.scala index 618133a2..688ca342 100755 --- a/shared/src/main/scala/scala/xml/parsing/MarkupParser.scala +++ b/shared/src/main/scala/scala/xml/parsing/MarkupParser.scala @@ -60,7 +60,7 @@ trait MarkupParser extends MarkupParserCommon with TokenTests { // See ticket #3720 for motivations. // As for why it's `private[parsing]` rather than merely `private`, see // https://github.com/scala/scala-xml/issues/541 ; the broader access is necessary, - // for now anyway, to work around https://github.com/lampepfl/dotty/issues/13096 + // for now anyway, to work around https://github.com/scala/scala3/issues/13096 private[parsing] class WithLookAhead(underlying: Source) extends Source { private val queue: scala.collection.mutable.Queue[Char] = scala.collection.mutable.Queue[Char]() def lookahead(): BufferedIterator[Char] = { @@ -99,7 +99,7 @@ trait MarkupParser extends MarkupParserCommon with TokenTests { /** holds temporary values of pos */ // Note: if marked as an override, this causes a "...cannot override a mutable variable" error with Scala 3; - // SethTisue noted on Oct 14, 2021 that lampepfl/dotty#13744 should fix it - and it probably did, + // SethTisue noted on Oct 14, 2021 that scala/scala3#13744 should fix it - and it probably did, // but Scala XML still builds against Scala 3 version that has this bug, so this still can not be marked as an override :( var tmppos: Int = _