diff --git a/.travis.yml b/.travis.yml index 9a80fe916..80dde716f 100644 --- a/.travis.yml +++ b/.travis.yml @@ -2,7 +2,6 @@ language: scala env: global: - - PUBLISH_JDK=openjdk6 # PGP_PASSPHRASE - secure: "BYC1kEnHjNrINrHYWPGEuTTJ2V340/0ByzqeihLecjoZ75yrjWdsh6MI1JEUWgv5kb+58vLzib21JfnjsPK6Yb2bSXuCFCsEtJNh6RJKgxkWlCOzfTSh5I2wl7PCjRClRL6gseX2uTSvFjL4Z//pmxwxeXlLp7voQe4QAUq1+sE=" # SONA_USER @@ -14,7 +13,7 @@ script: admin/build.sh jdk: - openjdk6 - - openjdk7 + - oraclejdk8 notifications: email: adriaan.moors@typesafe.com diff --git a/admin/README.md b/admin/README.md index 55ae9c8ae..d84727a74 100644 --- a/admin/README.md +++ b/admin/README.md @@ -19,7 +19,8 @@ To configure tag driven releases from Travis CI. Edit `.travis.yml` as prompted. 4. Edit `.travis.yml` to use `./admin/build.sh` as the build script, and edit that script to use the tasks required for this project. - 5. Edit `.travis.yml` to select which JDK will be used for publishing. + 5. Edit `build.sbt` to select which JDK will be used for publishing + for which Scala versions. It is important to add comments in .travis.yml to identify the name of each environment variable encoded in a `:secure` section. @@ -30,7 +31,6 @@ form: language: scala env: global: - - PUBLISH_JDK=openjdk6 # PGP_PASSPHRASE - secure: "XXXXXX" # SONA_USER @@ -58,4 +58,3 @@ Be sure to use SBT 0.13.7 or higher to avoid [#1430](https://github.com/sbt/sbt/ 3. Log into https://oss.sonatype.org/ and identify the staging repository. 4. Sanity check its contents 5. Release staging repository to Maven and send out release announcement. - diff --git a/admin/build.sh b/admin/build.sh index 34f5ccda1..bdd8490de 100755 --- a/admin/build.sh +++ b/admin/build.sh @@ -7,7 +7,7 @@ set -e # git on travis does not fetch tags, but we have TRAVIS_TAG # headTag=$(git describe --exact-match ||:) -if [ "$TRAVIS_JDK_VERSION" == "$PUBLISH_JDK" ] && [[ "$TRAVIS_TAG" =~ ^v[0-9]+\.[0-9]+\.[0-9]+(-[A-Za-z0-9-]+)? ]]; then +if [[ "$TRAVIS_TAG" =~ ^v[0-9]+\.[0-9]+\.[0-9]+(-[A-Za-z0-9-]+)? ]]; then echo "Going to release from tag $TRAVIS_TAG!" myVer=$(echo $TRAVIS_TAG | sed -e s/^v//) publishVersion='set every version := "'$myVer'"' diff --git a/build.sbt b/build.sbt index f38d0da04..dc924849d 100644 --- a/build.sbt +++ b/build.sbt @@ -8,7 +8,20 @@ version := "1.0.5-SNAPSHOT" scalaVersion := crossScalaVersions.value.head -crossScalaVersions := Seq("2.11.6", "2.12.0-M1") +crossScalaVersions := { + val java = System.getProperty("java.version") + if (java.startsWith("1.6.")) + Seq("2.11.7", "2.12.0-M1") + else if (java.startsWith("1.8.")) + Seq("2.12.0-M2") + else + sys.error(s"don't know what Scala versions to build on $java") +} + +//reenable -Xfatal-warnings? +scalacOptions ++= "-deprecation:false -feature -Xlint:-stars-align,-nullary-unit,_".split("\\s+").to[Seq] + +scalacOptions in Test += "-Xxml:coalescing" // important!! must come here (why?) scalaModuleOsgiSettings diff --git a/src/main/scala/scala/xml/dtd/ContentModel.scala b/src/main/scala/scala/xml/dtd/ContentModel.scala index 73dcb8fc2..afd47ed8e 100644 --- a/src/main/scala/scala/xml/dtd/ContentModel.scala +++ b/src/main/scala/scala/xml/dtd/ContentModel.scala @@ -14,11 +14,21 @@ import scala.xml.dtd.impl._ import scala.xml.Utility.sbToString import PartialFunction._ +/* +@deprecated("Avoidance", since="2.10") +trait ContentModelLaundry extends WordExp +object ContentModelLaundry extends ContentModelLaundry { +} +*/ + object ContentModel extends WordExp { + type _labelT = ElemName type _regexpT = RegExp - object Translator extends WordBerrySethi { + @deprecated("Avoidance", since="2.10") + trait Translator extends WordBerrySethi + object Translator extends Translator { override val lang: ContentModel.this.type = ContentModel.this } @@ -72,7 +82,6 @@ object ContentModel extends WordExp { case Letter(ElemName(name)) => sb.append(name) } - } sealed abstract class ContentModel { @@ -80,6 +89,8 @@ sealed abstract class ContentModel { def buildString(sb: StringBuilder): StringBuilder } +import ContentModel.RegExp + case object PCDATA extends ContentModel { override def buildString(sb: StringBuilder): StringBuilder = sb.append("(#PCDATA)") } @@ -91,7 +102,7 @@ case object ANY extends ContentModel { } sealed abstract class DFAContentModel extends ContentModel { import ContentModel.{ ElemName, Translator } - def r: ContentModel.RegExp + def r: RegExp lazy val dfa: DetWordAutom[ElemName] = { val nfa = Translator.automatonFrom(r, 1) @@ -99,8 +110,8 @@ sealed abstract class DFAContentModel extends ContentModel { } } -case class MIXED(r: ContentModel.RegExp) extends DFAContentModel { - import ContentModel.{ Alt, RegExp } +case class MIXED(r: RegExp) extends DFAContentModel { + import ContentModel.Alt override def buildString(sb: StringBuilder): StringBuilder = { val newAlt = r match { case Alt(rs@_*) => Alt(rs drop 1: _*) } @@ -111,7 +122,7 @@ case class MIXED(r: ContentModel.RegExp) extends DFAContentModel { } } -case class ELEMENTS(r: ContentModel.RegExp) extends DFAContentModel { +case class ELEMENTS(r: RegExp) extends DFAContentModel { override def buildString(sb: StringBuilder): StringBuilder = ContentModel.buildString(r, sb) } diff --git a/src/main/scala/scala/xml/dtd/impl/WordBerrySethi.scala b/src/main/scala/scala/xml/dtd/impl/WordBerrySethi.scala index 3acc06435..2a5a5ce30 100644 --- a/src/main/scala/scala/xml/dtd/impl/WordBerrySethi.scala +++ b/src/main/scala/scala/xml/dtd/impl/WordBerrySethi.scala @@ -19,6 +19,7 @@ import scala.collection.{ immutable, mutable } * @version 1.0 */ // TODO: still used in ContentModel -- @deprecated("This class will be removed", "2.10.0") +@deprecated("This class will be removed", "2.10.0") private[dtd] abstract class WordBerrySethi extends BaseBerrySethi { override val lang: WordExp diff --git a/src/main/scala/scala/xml/pull/XMLEventReader.scala b/src/main/scala/scala/xml/pull/XMLEventReader.scala index 60843ed33..a2c266276 100755 --- a/src/main/scala/scala/xml/pull/XMLEventReader.scala +++ b/src/main/scala/scala/xml/pull/XMLEventReader.scala @@ -122,7 +122,7 @@ trait ProducerConsumerIterator[T >: Null] extends Iterator[T] { // defaults to unbounded - override to positive Int if desired val MaxQueueSize = -1 - def interruptibly[T](body: => T): Option[T] = try Some(body) catch { + def interruptibly[A](body: => A): Option[A] = try Some(body) catch { case _: InterruptedException => Thread.currentThread.interrupt(); None case _: ClosedChannelException => None diff --git a/src/test/scala/scala/xml/ShouldCompile.scala b/src/test/scala/scala/xml/ShouldCompile.scala index f2ddffce5..c05bdc503 100644 --- a/src/test/scala/scala/xml/ShouldCompile.scala +++ b/src/test/scala/scala/xml/ShouldCompile.scala @@ -22,11 +22,11 @@ class Foo { } // t2281 -class A { +class t2281A { def f(x: Boolean) = if (x)

else
} -class B { +class t2281B { def splitSentences(text: String): ArrayBuffer[String] = { val outarr = new ArrayBuffer[String] var outstr = new StringBuffer @@ -92,4 +92,4 @@ object shouldCompile { case 1 => case 2 =>

} -} \ No newline at end of file +} diff --git a/src/test/scala/scala/xml/XMLTest.scala b/src/test/scala/scala/xml/XMLTest.scala index 23c143396..6ab741390 100644 --- a/src/test/scala/scala/xml/XMLTest.scala +++ b/src/test/scala/scala/xml/XMLTest.scala @@ -1,5 +1,7 @@ package scala.xml +import language.postfixOps + import org.junit.{Test => UnitTest} import org.junit.Ignore import org.junit.runner.RunWith