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
[](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 = _