From 2224714bc82f48f0a2a7037a09b15f17dc3e6007 Mon Sep 17 00:00:00 2001 From: Alexandre Archambault Date: Sun, 31 Jan 2016 21:06:05 +0100 Subject: [PATCH 01/10] Minor fix when launching things from standalone launcher --- coursier-standalone | Bin 1604923 -> 1605043 bytes project/generate-standalone-launcher.sh | 4 ++++ 2 files changed, 4 insertions(+) diff --git a/coursier-standalone b/coursier-standalone index 5419cf784d8d1bf489e1f97c49c9eba572cd6777..14c18fecb4c3ebf2c4f0d1cf344f1d1e926d46d4 100755 GIT binary patch delta 152981 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�%mmPa}G5Pf?ZAyfHZM@BEo`Yy%Egemaf0!)b(m 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 diff --git a/project/generate-standalone-launcher.sh b/project/generate-standalone-launcher.sh index 791e9f2d6..2109a34f3 100755 --- a/project/generate-standalone-launcher.sh +++ b/project/generate-standalone-launcher.sh @@ -23,6 +23,10 @@ cat >> coursier.pro << EOF -keep class coursier.cli.Coursier { public static void main(java.lang.String[]); } + +-keep class coursier.cli.IsolatedClassLoader { + public java.lang.String[] getIsolationTargets(); +} EOF # -noverify added in launcher below because of errors like From fc237d61ad591041c4a953f5729dfe9a95f46673 Mon Sep 17 00:00:00 2001 From: Alexandre Archambault Date: Sun, 31 Jan 2016 21:06:05 +0100 Subject: [PATCH 02/10] Build standalone launcher from SBT --- build.sbt | 11 ++++++++++- project/plugins.sbt | 1 + 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index 3fd808f3c..a7d28fc97 100644 --- a/build.sbt +++ b/build.sbt @@ -219,6 +219,7 @@ lazy val cli = project .settings(commonSettings) .settings(noPublish210Settings) .settings(packAutoSettings) + .settings(proguardSettings) .settings( name := "coursier-cli", libraryDependencies ++= { @@ -229,7 +230,15 @@ lazy val cli = project }, resourceGenerators in Compile += packageBin.in(bootstrap).in(Compile).map { jar => Seq(jar) - }.taskValue + }.taskValue, + ProguardKeys.proguardVersion in Proguard := "5.2.1", + ProguardKeys.options in Proguard ++= Seq( + "-dontwarn", + "-keep class coursier.cli.Coursier {\n public static void main(java.lang.String[]);\n}", + "-keep class coursier.cli.IsolatedClassLoader {\n public java.lang.String[] getIsolationTargets();\n}" + ), + javaOptions in (Proguard, ProguardKeys.proguard) := Seq("-Xmx3172M"), + artifactPath in Proguard := (ProguardKeys.proguardDirectory in Proguard).value / "coursier-standalone.jar" ) lazy val web = project diff --git a/project/plugins.sbt b/project/plugins.sbt index 0d8c0281b..3e1a804b9 100644 --- a/project/plugins.sbt +++ b/project/plugins.sbt @@ -4,3 +4,4 @@ addSbtPlugin("com.jsuereth" % "sbt-pgp" % "1.0.0") addSbtPlugin("org.scoverage" % "sbt-scoverage" % "1.1.0") addSbtPlugin("org.tpolecat" % "tut-plugin" % "0.4.0") addSbtPlugin("com.github.alexarchambault" % "coursier-sbt-plugin" % "1.0.0-M4") +addSbtPlugin("com.typesafe.sbt" % "sbt-proguard" % "0.2.2") From 5f9f854562bb088f34c37f172b89d0f59a62de28 Mon Sep 17 00:00:00 2001 From: Alexandre Archambault Date: Sun, 31 Jan 2016 21:06:05 +0100 Subject: [PATCH 03/10] Replace usages of scala.io.Source with NIO --- cache/src/main/scala/coursier/Cache.scala | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/cache/src/main/scala/coursier/Cache.scala b/cache/src/main/scala/coursier/Cache.scala index af10e8168..99ab9a022 100644 --- a/cache/src/main/scala/coursier/Cache.scala +++ b/cache/src/main/scala/coursier/Cache.scala @@ -357,8 +357,8 @@ object Cache { artifact0.checksumUrls.get(sumType) match { case Some(sumFile) => Task { - val sum = scala.io.Source.fromFile(sumFile) - .getLines() + val sum = new String(NioFiles.readAllBytes(new File(sumFile).toPath), "UTF-8") + .linesIterator .toStream .headOption .mkString @@ -471,7 +471,7 @@ object Cache { pool = pool ).leftMap(_.message).map { f => // FIXME Catch error here? - scala.io.Source.fromFile(f)("UTF-8").mkString + new String(NioFiles.readAllBytes(f.toPath), "UTF-8") } } From 2e50db9486944a7d0a247fd6762563b623a46209 Mon Sep 17 00:00:00 2001 From: Alexandre Archambault Date: Sun, 31 Jan 2016 21:06:06 +0100 Subject: [PATCH 04/10] Make most case classes final --- .../scala/coursier/core/Definitions.scala | 28 +++++++++---------- .../main/scala/coursier/core/Resolution.scala | 2 +- .../coursier/core/ResolutionProcess.scala | 6 ++-- .../main/scala/coursier/core/Version.scala | 8 +++--- .../main/scala/coursier/core/Versions.scala | 6 ++-- .../src/main/scala/coursier/ivy/Pattern.scala | 6 ++-- 6 files changed, 28 insertions(+), 28 deletions(-) diff --git a/core/shared/src/main/scala/coursier/core/Definitions.scala b/core/shared/src/main/scala/coursier/core/Definitions.scala index 57a7c6c69..868dd42f7 100644 --- a/core/shared/src/main/scala/coursier/core/Definitions.scala +++ b/core/shared/src/main/scala/coursier/core/Definitions.scala @@ -9,7 +9,7 @@ package coursier.core * * Using the same terminology as Ivy. */ -case class Module( +final case class Module( organization: String, name: String, attributes: Map[String, String] @@ -36,7 +36,7 @@ case class Module( * The remaining fields are left untouched, some being transitively * propagated (exclusions, optional, in particular). */ -case class Dependency( +final case class Dependency( module: Module, version: String, configuration: String, @@ -52,7 +52,7 @@ case class Dependency( } // Maven-specific -case class Attributes( +final case class Attributes( `type`: String, classifier: String ) { @@ -60,7 +60,7 @@ case class Attributes( Publication(name, `type`, ext, classifier) } -case class Project( +final case class Project( module: Module, version: String, // First String is configuration (scope for Maven) @@ -91,7 +91,7 @@ case class Project( } /** Extra project info, not used during resolution */ -case class Info( +final case class Info( description: String, homePage: String, licenses: Seq[(String, Option[String])], @@ -100,7 +100,7 @@ case class Info( ) object Info { - case class Developer( + final case class Developer( id: String, name: String, url: String @@ -110,10 +110,10 @@ object Info { } // Maven-specific -case class Activation(properties: Seq[(String, Option[String])]) +final case class Activation(properties: Seq[(String, Option[String])]) // Maven-specific -case class Profile( +final case class Profile( id: String, activeByDefault: Option[Boolean], activation: Activation, @@ -123,7 +123,7 @@ case class Profile( ) // Maven-specific -case class Versions( +final case class Versions( latest: String, release: String, available: List[String], @@ -131,7 +131,7 @@ case class Versions( ) object Versions { - case class DateTime( + final case class DateTime( year: Int, month: Int, day: Int, @@ -142,7 +142,7 @@ object Versions { } // Maven-specific -case class SnapshotVersion( +final case class SnapshotVersion( classifier: String, extension: String, value: String, @@ -150,7 +150,7 @@ case class SnapshotVersion( ) // Maven-specific -case class SnapshotVersioning( +final case class SnapshotVersioning( module: Module, version: String, latest: String, @@ -163,7 +163,7 @@ case class SnapshotVersioning( ) // Ivy-specific -case class Publication( +final case class Publication( name: String, `type`: String, ext: String, @@ -172,7 +172,7 @@ case class Publication( def attributes: Attributes = Attributes(`type`, classifier) } -case class Artifact( +final case class Artifact( url: String, checksumUrls: Map[String, String], extra: Map[String, Artifact], diff --git a/core/shared/src/main/scala/coursier/core/Resolution.scala b/core/shared/src/main/scala/coursier/core/Resolution.scala index ed3304d5e..ee7971f6d 100644 --- a/core/shared/src/main/scala/coursier/core/Resolution.scala +++ b/core/shared/src/main/scala/coursier/core/Resolution.scala @@ -424,7 +424,7 @@ object Resolution { * @param projectCache: cache of known projects * @param errorCache: keeps track of the modules whose project definition could not be found */ -case class Resolution( +final case class Resolution( rootDependencies: Set[Dependency], dependencies: Set[Dependency], forceVersions: Map[Module, String], diff --git a/core/shared/src/main/scala/coursier/core/ResolutionProcess.scala b/core/shared/src/main/scala/coursier/core/ResolutionProcess.scala index 4ea83f9d0..af80981c4 100644 --- a/core/shared/src/main/scala/coursier/core/ResolutionProcess.scala +++ b/core/shared/src/main/scala/coursier/core/ResolutionProcess.scala @@ -52,7 +52,7 @@ sealed trait ResolutionProcess { def current: Resolution } -case class Missing( +final case class Missing( missing: Seq[(Module, String)], current: Resolution, cont: Resolution => ResolutionProcess @@ -93,7 +93,7 @@ case class Missing( } -case class Continue( +final case class Continue( current: Resolution, cont: Resolution => ResolutionProcess ) extends ResolutionProcess { @@ -108,7 +108,7 @@ case class Continue( } -case class Done(resolution: Resolution) extends ResolutionProcess { +final case class Done(resolution: Resolution) extends ResolutionProcess { def current: Resolution = resolution } diff --git a/core/shared/src/main/scala/coursier/core/Version.scala b/core/shared/src/main/scala/coursier/core/Version.scala index b15d3f9ff..800a601a0 100644 --- a/core/shared/src/main/scala/coursier/core/Version.scala +++ b/core/shared/src/main/scala/coursier/core/Version.scala @@ -47,23 +47,23 @@ object Version { def repr: String def next: Numeric } - case class Number(value: Int) extends Numeric { + final case class Number(value: Int) extends Numeric { val order = 0 def next: Number = Number(value + 1) def repr: String = value.toString override def compareToEmpty = value.compare(0) } - case class BigNumber(value: BigInt) extends Numeric { + final case class BigNumber(value: BigInt) extends Numeric { val order = 0 def next: BigNumber = BigNumber(value + 1) def repr: String = value.toString override def compareToEmpty = value.compare(0) } - case class Qualifier(value: String, level: Int) extends Item { + final case class Qualifier(value: String, level: Int) extends Item { val order = -2 override def compareToEmpty = level.compare(0) } - case class Literal(value: String) extends Item { + final case class Literal(value: String) extends Item { val order = -1 override def compareToEmpty = if (value.isEmpty) 0 else 1 } diff --git a/core/shared/src/main/scala/coursier/core/Versions.scala b/core/shared/src/main/scala/coursier/core/Versions.scala index ae4877200..3ecf08aa0 100644 --- a/core/shared/src/main/scala/coursier/core/Versions.scala +++ b/core/shared/src/main/scala/coursier/core/Versions.scala @@ -88,15 +88,15 @@ sealed trait VersionConstraint { } object VersionConstraint { /** Currently treated as minimum... */ - case class Preferred(version: Version) extends VersionConstraint { + final case class Preferred(version: Version) extends VersionConstraint { def interval: VersionInterval = VersionInterval(Some(version), Option.empty, fromIncluded = true, toIncluded = false) def repr: String = version.repr } - case class Interval(interval: VersionInterval) extends VersionConstraint { + final case class Interval(interval: VersionInterval) extends VersionConstraint { def repr: String = interval.repr } case object None extends VersionConstraint { val interval = VersionInterval.zero def repr: String = "" // Once parsed, "(,)" becomes "" because of this } -} \ No newline at end of file +} diff --git a/core/shared/src/main/scala/coursier/ivy/Pattern.scala b/core/shared/src/main/scala/coursier/ivy/Pattern.scala index 5054bd6dc..820fad6d0 100644 --- a/core/shared/src/main/scala/coursier/ivy/Pattern.scala +++ b/core/shared/src/main/scala/coursier/ivy/Pattern.scala @@ -23,7 +23,7 @@ object Pattern { def apply(content: String): Map[String, String] => String \/ String } object PatternPart { - case class Literal(override val effectiveStart: Int, override val effectiveEnd: Int) extends PatternPart(effectiveStart, effectiveEnd) { + final case class Literal(override val effectiveStart: Int, override val effectiveEnd: Int) extends PatternPart(effectiveStart, effectiveEnd) { def apply(content: String): Map[String, String] => String \/ String = { assert(content.length == effectiveEnd - effectiveStart) val matches = variableRegex.findAllMatchIn(content).toList @@ -54,7 +54,7 @@ object Pattern { helper(0, matches, new StringBuilder) } } - case class Optional(start0: Int, end0: Int) extends PatternPart(start0 + 1, end0 - 1) { + final case class Optional(start0: Int, end0: Int) extends PatternPart(start0 + 1, end0 - 1) { override def start = start0 override def end = end0 @@ -78,7 +78,7 @@ object Pattern { } -case class Pattern( +final case class Pattern( pattern: String, properties: Map[String, String] ) { From c9566fbf5d4a20e47726ebfa4e67a050a3ac5078 Mon Sep 17 00:00:00 2001 From: Alexandre Archambault Date: Sun, 31 Jan 2016 21:06:06 +0100 Subject: [PATCH 05/10] Cache simple fields --- .../shared/src/main/scala/coursier/core/Definitions.scala | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/core/shared/src/main/scala/coursier/core/Definitions.scala b/core/shared/src/main/scala/coursier/core/Definitions.scala index 868dd42f7..f178a0cab 100644 --- a/core/shared/src/main/scala/coursier/core/Definitions.scala +++ b/core/shared/src/main/scala/coursier/core/Definitions.scala @@ -28,6 +28,8 @@ final case class Module( override def toString = s"$organization:$name" + (if (attributes.nonEmpty) s";$attributesStr" else "") + + override final lazy val hashCode = Module.unapply(this).get.hashCode() } /** @@ -48,7 +50,9 @@ final case class Dependency( transitive: Boolean ) { - def moduleVersion = (module, version) + lazy val moduleVersion = (module, version) + + override lazy val hashCode = Dependency.unapply(this).get.hashCode() } // Maven-specific @@ -83,7 +87,7 @@ final case class Project( // Extra infos, not used during resolution info: Info ) { - def moduleVersion = (module, version) + lazy val moduleVersion = (module, version) /** All configurations that each configuration extends, including the ones it extends transitively */ lazy val allConfigurations: Map[String, Set[String]] = From 829c397ca8d89e21fa00b89274802ac324b0d7e2 Mon Sep 17 00:00:00 2001 From: Alexandre Archambault Date: Sun, 31 Jan 2016 21:06:06 +0100 Subject: [PATCH 06/10] Keep calculated dependencies accross resolutions --- .../main/scala/coursier/core/Resolution.scala | 64 +++++++++++++------ .../coursier/core/ResolutionProcess.scala | 4 +- .../src/main/scala/coursier/package.scala | 2 + .../scala/coursier/test/CentralTests.scala | 8 +-- .../scala/coursier/test/ResolutionTests.scala | 36 +++++------ .../test/scala/coursier/test/package.scala | 18 ++++++ 6 files changed, 88 insertions(+), 44 deletions(-) diff --git a/core/shared/src/main/scala/coursier/core/Resolution.scala b/core/shared/src/main/scala/coursier/core/Resolution.scala index ee7971f6d..1e3b91507 100644 --- a/core/shared/src/main/scala/coursier/core/Resolution.scala +++ b/core/shared/src/main/scala/coursier/core/Resolution.scala @@ -1,9 +1,10 @@ package coursier.core +import java.util.concurrent.ConcurrentHashMap import java.util.regex.Pattern.quote import scala.annotation.tailrec -import scala.collection.mutable +import scala.collection.JavaConverters._ import scalaz.{ \/-, -\/ } object Resolution { @@ -431,28 +432,53 @@ final case class Resolution( conflicts: Set[Dependency], projectCache: Map[Resolution.ModuleVersion, (Artifact.Source, Project)], errorCache: Map[Resolution.ModuleVersion, Seq[String]], + finalDependenciesCache: Map[Dependency, Seq[Dependency]], filter: Option[Dependency => Boolean], profileActivation: Option[(String, Activation, Map[String, String]) => Boolean] ) { + def copyWithCache( + rootDependencies: Set[Dependency] = rootDependencies, + dependencies: Set[Dependency] = dependencies, + forceVersions: Map[Module, String] = forceVersions, + conflicts: Set[Dependency] = conflicts, + projectCache: Map[Resolution.ModuleVersion, (Artifact.Source, Project)] = projectCache, + errorCache: Map[Resolution.ModuleVersion, Seq[String]] = errorCache, + filter: Option[Dependency => Boolean] = filter, + profileActivation: Option[(String, Activation, Map[String, String]) => Boolean] = profileActivation + ): Resolution = + copy( + rootDependencies, + dependencies, + forceVersions, + conflicts, + projectCache, + errorCache, + finalDependenciesCache ++ finalDependenciesCache0.asScala, + filter, + profileActivation + ) + import Resolution._ - private val finalDependenciesCache = - new mutable.HashMap[Dependency, Seq[Dependency]]() - private def finalDependencies0(dep: Dependency) = - finalDependenciesCache.synchronized { - finalDependenciesCache.getOrElseUpdate(dep, { - if (dep.transitive) - projectCache.get(dep.moduleVersion) match { - case Some((_, proj)) => - finalDependencies(dep, proj) - .filter(filter getOrElse defaultFilter) - case None => Nil - } - else - Nil - }) - } + private[core] val finalDependenciesCache0 = new ConcurrentHashMap[Dependency, Seq[Dependency]] + + private def finalDependencies0(dep: Dependency): Seq[Dependency] = + if (dep.transitive) { + val deps = finalDependenciesCache.getOrElse(dep, finalDependenciesCache0.get(dep)) + + if (deps == null) + projectCache.get(dep.moduleVersion) match { + case Some((_, proj)) => + val res = finalDependencies(dep, proj).filter(filter getOrElse defaultFilter) + finalDependenciesCache0.put(dep, res) + res + case None => Nil + } + else + deps + } else + Nil /** * Transitive dependencies of the current dependencies, according to @@ -592,7 +618,7 @@ final case class Resolution( private def nextNoMissingUnsafe: Resolution = { val (newConflicts, _, _) = nextDependenciesAndConflicts - copy( + copyWithCache( dependencies = newDependencies ++ newConflicts, conflicts = newConflicts.toSet ) @@ -856,7 +882,7 @@ final case class Resolution( newDeps } - copy( + copyWithCache( rootDependencies = dependencies, dependencies = helper(dependencies.map(updateVersion)) // don't know if something should be done about conflicts diff --git a/core/shared/src/main/scala/coursier/core/ResolutionProcess.scala b/core/shared/src/main/scala/coursier/core/ResolutionProcess.scala index af80981c4..c26d4608d 100644 --- a/core/shared/src/main/scala/coursier/core/ResolutionProcess.scala +++ b/core/shared/src/main/scala/coursier/core/ResolutionProcess.scala @@ -74,7 +74,7 @@ final case class Missing( def cont0(res: Resolution) = { val res0 = successes.foldLeft(res){case (acc, (modVer, (source, proj))) => - acc.copy(projectCache = acc.projectCache + ( + acc.copyWithCache(projectCache = acc.projectCache + ( modVer -> (source, acc.withDependencyManagement(proj)) )) } @@ -83,7 +83,7 @@ final case class Missing( } val current0 = current - .copy(errorCache = current.errorCache ++ errors) + .copyWithCache(errorCache = current.errorCache ++ errors) if (depMgmtMissing.isEmpty) cont0(current0) diff --git a/core/shared/src/main/scala/coursier/package.scala b/core/shared/src/main/scala/coursier/package.scala index d15ba3985..15ab6efb4 100644 --- a/core/shared/src/main/scala/coursier/package.scala +++ b/core/shared/src/main/scala/coursier/package.scala @@ -70,6 +70,7 @@ package object coursier { conflicts: Set[Dependency] = Set.empty, projectCache: Map[ModuleVersion, (Artifact.Source, Project)] = Map.empty, errorCache: Map[ModuleVersion, Seq[String]] = Map.empty, + finalDependencies: Map[Dependency, Seq[Dependency]] = Map.empty, filter: Option[Dependency => Boolean] = None, profileActivation: Option[(String, core.Activation, Map[String, String]) => Boolean] = None ): Resolution = @@ -80,6 +81,7 @@ package object coursier { conflicts, projectCache, errorCache, + finalDependencies, filter, profileActivation ) diff --git a/tests/shared/src/test/scala/coursier/test/CentralTests.scala b/tests/shared/src/test/scala/coursier/test/CentralTests.scala index db05027ee..76ef8b9ac 100644 --- a/tests/shared/src/test/scala/coursier/test/CentralTests.scala +++ b/tests/shared/src/test/scala/coursier/test/CentralTests.scala @@ -90,8 +90,7 @@ object CentralTests extends TestSuite { 'logback{ async { val dep = Dependency(Module("ch.qos.logback", "logback-classic"), "1.1.3") - val res = await(resolve(Set(dep))) - .copy(projectCache = Map.empty, errorCache = Map.empty) // No validating these here + val res = await(resolve(Set(dep))).clearCaches val expected = Resolution( rootDependencies = Set(dep), @@ -106,8 +105,7 @@ object CentralTests extends TestSuite { 'asm{ async { val dep = Dependency(Module("org.ow2.asm", "asm-commons"), "5.0.2") - val res = await(resolve(Set(dep))) - .copy(projectCache = Map.empty, errorCache = Map.empty) // No validating these here + val res = await(resolve(Set(dep))).clearCaches val expected = Resolution( rootDependencies = Set(dep), @@ -123,7 +121,7 @@ object CentralTests extends TestSuite { async { val dep = Dependency(Module("joda-time", "joda-time"), "[2.2,2.8]") val res0 = await(resolve(Set(dep))) - val res = res0.copy(projectCache = Map.empty, errorCache = Map.empty) + val res = res0.clearCaches val expected = Resolution( rootDependencies = Set(dep), diff --git a/tests/shared/src/test/scala/coursier/test/ResolutionTests.scala b/tests/shared/src/test/scala/coursier/test/ResolutionTests.scala index c83a9ddd5..a47c54967 100644 --- a/tests/shared/src/test/scala/coursier/test/ResolutionTests.scala +++ b/tests/shared/src/test/scala/coursier/test/ResolutionTests.scala @@ -203,7 +203,7 @@ object ResolutionTests extends TestSuite { val dep = Dependency(Module("acme", "config"), "1.3.0") val res = await(resolve0( Set(dep) - )) + )).clearFinalDependenciesCache val expected = Resolution( rootDependencies = Set(dep), @@ -220,7 +220,7 @@ object ResolutionTests extends TestSuite { val trDep = Dependency(Module("acme", "play-json"), "2.4.0") val res = await(resolve0( Set(dep) - )) + )).clearFinalDependenciesCache val expected = Resolution( rootDependencies = Set(dep), @@ -243,7 +243,7 @@ object ResolutionTests extends TestSuite { ) val res = await(resolve0( Set(dep) - )).copy(filter = None, projectCache = Map.empty) + )).clearCaches val expected = Resolution( rootDependencies = Set(dep), @@ -264,7 +264,7 @@ object ResolutionTests extends TestSuite { ) val res = await(resolve0( Set(dep) - )).copy(filter = None, projectCache = Map.empty) + )).clearCaches val expected = Resolution( rootDependencies = Set(dep), @@ -285,7 +285,7 @@ object ResolutionTests extends TestSuite { ) val res = await(resolve0( Set(dep) - )).copy(filter = None, projectCache = Map.empty) + )).clearCaches val expected = Resolution( rootDependencies = Set(dep), @@ -300,7 +300,7 @@ object ResolutionTests extends TestSuite { val dep = Dependency(Module("hudsucker", "mail"), "10.0") val res = await(resolve0( Set(dep) - )).copy(filter = None, projectCache = Map.empty) + )).clearCaches val expected = Resolution( rootDependencies = Set(dep), @@ -319,7 +319,7 @@ object ResolutionTests extends TestSuite { ) val res = await(resolve0( Set(dep) - )).copy(filter = None, projectCache = Map.empty) + )).clearCaches val expected = Resolution( rootDependencies = Set(dep), @@ -337,7 +337,7 @@ object ResolutionTests extends TestSuite { Dependency(Module("org.gnome", "desktop"), "7.0")) val res = await(resolve0( Set(dep) - )).copy(filter = None, projectCache = Map.empty, errorCache = Map.empty) + )).clearCaches val expected = Resolution( rootDependencies = Set(dep), @@ -354,7 +354,7 @@ object ResolutionTests extends TestSuite { Dependency(Module("gov.nsa", "secure-pgp"), "10.0", exclusions = Set(("*", "crypto")))) val res = await(resolve0( Set(dep) - )).copy(filter = None, projectCache = Map.empty, errorCache = Map.empty) + )).clearCaches val expected = Resolution( rootDependencies = Set(dep), @@ -369,7 +369,7 @@ object ResolutionTests extends TestSuite { val dep = Dependency(Module("com.thoughtworks.paranamer", "paranamer"), "2.6") val res = await(resolve0( Set(dep) - )).copy(filter = None, projectCache = Map.empty, errorCache = Map.empty) + )).clearCaches val expected = Resolution( rootDependencies = Set(dep), @@ -386,7 +386,7 @@ object ResolutionTests extends TestSuite { Dependency(Module("org.escalier", "librairie-standard"), "2.11.6")) val res = await(resolve0( Set(dep) - )).copy(filter = None, projectCache = Map.empty, errorCache = Map.empty) + )).clearCaches val expected = Resolution( rootDependencies = Set(dep), @@ -405,7 +405,7 @@ object ResolutionTests extends TestSuite { Dependency(Module("org.escalier", "librairie-standard"), "2.11.6")) val res = await(resolve0( Set(dep) - )).copy(filter = None, projectCache = Map.empty, errorCache = Map.empty) + )).clearCaches val expected = Resolution( rootDependencies = Set(dep), @@ -426,7 +426,7 @@ object ResolutionTests extends TestSuite { Dependency(Module("org.escalier", "librairie-standard"), "2.11.6")) val res = await(resolve0( Set(dep) - )).copy(filter = None, projectCache = Map.empty, errorCache = Map.empty) + )).clearCaches val expected = Resolution( rootDependencies = Set(dep), @@ -447,7 +447,7 @@ object ResolutionTests extends TestSuite { val res = await(resolve0( Set(dep), filter = Some(_ => true) - )).copy(filter = None, projectCache = Map.empty, errorCache = Map.empty) + )).clearCaches.clearFilter val expected = Resolution( rootDependencies = Set(dep), @@ -470,7 +470,7 @@ object ResolutionTests extends TestSuite { val res = await(resolve0( deps, filter = Some(_ => true) - )).copy(filter = None, projectCache = Map.empty, errorCache = Map.empty) + )).clearCaches.clearFilter val expected = Resolution( rootDependencies = deps, @@ -492,7 +492,7 @@ object ResolutionTests extends TestSuite { val res = await(resolve0( deps, forceVersions = depOverrides - )).copy(filter = None, projectCache = Map.empty, errorCache = Map.empty) + )).clearCaches val expected = Resolution( rootDependencies = deps, @@ -516,7 +516,7 @@ object ResolutionTests extends TestSuite { val res = await(resolve0( deps, forceVersions = depOverrides - )).copy(filter = None, projectCache = Map.empty, errorCache = Map.empty) + )).clearCaches val expected = Resolution( rootDependencies = deps, @@ -542,7 +542,7 @@ object ResolutionTests extends TestSuite { val res = await(resolve0( deps, forceVersions = depOverrides - )).copy(filter = None, projectCache = Map.empty, errorCache = Map.empty) + )).clearCaches val expected = Resolution( rootDependencies = deps, diff --git a/tests/shared/src/test/scala/coursier/test/package.scala b/tests/shared/src/test/scala/coursier/test/package.scala index 30fa8f3ea..7fe13dce0 100644 --- a/tests/shared/src/test/scala/coursier/test/package.scala +++ b/tests/shared/src/test/scala/coursier/test/package.scala @@ -6,6 +6,24 @@ package object test { def withCompileScope: Dependency = underlying.copy(configuration = "compile") } + implicit class ResolutionOps(val underlying: Resolution) extends AnyVal { + + // The content of these fields is typically not validated in the tests. + // It can be cleared with these method to it easier to compare `underlying` + // to an expected value. + + def clearFinalDependenciesCache: Resolution = + underlying.copy(finalDependenciesCache = Map.empty) + def clearCaches: Resolution = + underlying.copy( + projectCache = Map.empty, + errorCache = Map.empty, + finalDependenciesCache = Map.empty + ) + def clearFilter: Resolution = + underlying.copy(filter = None) + } + object Profile { type Activation = core.Activation object Activation { From 26e41d4b7eb84a91e1ac97b8166c854ba49af5cb Mon Sep 17 00:00:00 2001 From: Alexandre Archambault Date: Sun, 31 Jan 2016 21:06:06 +0100 Subject: [PATCH 07/10] Use Vector instead of List --- .../src/main/scala/coursier/core/Resolution.scala | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/core/shared/src/main/scala/coursier/core/Resolution.scala b/core/shared/src/main/scala/coursier/core/Resolution.scala index 1e3b91507..0fd04f680 100644 --- a/core/shared/src/main/scala/coursier/core/Resolution.scala +++ b/core/shared/src/main/scala/coursier/core/Resolution.scala @@ -77,7 +77,7 @@ object Resolution { def substituteProps(s: String, properties: Map[String, String]) = { val matches = propRegex .findAllMatchIn(s) - .toList + .toVector .reverse if (matches.isEmpty) s @@ -173,7 +173,7 @@ object Resolution { ): (Seq[Dependency], Seq[Dependency], Map[Module, String]) = { val mergedByModVer = dependencies - .toList + .toVector .groupBy(dep => dep.module) .map { case (module, deps) => module -> { @@ -204,7 +204,7 @@ object Resolution { val merged = mergedByModVer .values - .toList + .toVector ( merged @@ -488,7 +488,7 @@ final case class Resolution( */ def transitiveDependencies: Seq[Dependency] = (dependencies -- conflicts) - .toList + .toVector .flatMap(finalDependencies0) /** @@ -594,7 +594,7 @@ final case class Resolution( broughtBy .filter(x => remaining.contains(x) || rootDependencies0(x)) ) - .toList + .toVector .toMap ) } From b05e942fa424c2a94189ffa80027150334797f8e Mon Sep 17 00:00:00 2001 From: Alexandre Archambault Date: Sun, 31 Jan 2016 21:06:07 +0100 Subject: [PATCH 08/10] Cache most fields of Resolution --- .../main/scala/coursier/core/Resolution.scala | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/core/shared/src/main/scala/coursier/core/Resolution.scala b/core/shared/src/main/scala/coursier/core/Resolution.scala index 0fd04f680..8a2eb6b28 100644 --- a/core/shared/src/main/scala/coursier/core/Resolution.scala +++ b/core/shared/src/main/scala/coursier/core/Resolution.scala @@ -486,7 +486,7 @@ final case class Resolution( * * No attempt is made to solve version conflicts here. */ - def transitiveDependencies: Seq[Dependency] = + lazy val transitiveDependencies: Seq[Dependency] = (dependencies -- conflicts) .toVector .flatMap(finalDependencies0) @@ -502,7 +502,7 @@ final case class Resolution( * Returns a tuple made of the conflicting dependencies, all * the dependencies, and the retained version of each module. */ - def nextDependenciesAndConflicts: (Seq[Dependency], Seq[Dependency], Map[Module, String]) = + lazy val nextDependenciesAndConflicts: (Seq[Dependency], Seq[Dependency], Map[Module, String]) = // TODO Provide the modules whose version was forced by dependency overrides too merge( rootDependencies.map(withDefaultConfig) ++ dependencies ++ transitiveDependencies, @@ -512,7 +512,7 @@ final case class Resolution( /** * The modules we miss some info about. */ - def missingFromCache: Set[ModuleVersion] = { + lazy val missingFromCache: Set[ModuleVersion] = { val modules = dependencies .map(_.moduleVersion) val nextModules = nextDependenciesAndConflicts._2 @@ -526,7 +526,7 @@ final case class Resolution( /** * Whether the resolution is done. */ - def isDone: Boolean = { + lazy val isDone: Boolean = { def isFixPoint = { val (nextConflicts, _, _) = nextDependenciesAndConflicts @@ -546,7 +546,7 @@ final case class Resolution( * * The versions of all the dependencies returned are erased (emptied). */ - def reverseDependencies: Map[Dependency, Vector[Dependency]] = { + lazy val reverseDependencies: Map[Dependency, Vector[Dependency]] = { val (updatedConflicts, updatedDeps, _) = nextDependenciesAndConflicts val trDepsSeq = @@ -572,7 +572,7 @@ final case class Resolution( * * The versions of all the dependencies returned are erased (emptied). */ - def remainingDependencies: Set[Dependency] = { + lazy val remainingDependencies: Set[Dependency] = { val rootDependencies0 = rootDependencies .map(withDefaultConfig) .map(eraseVersion) @@ -607,7 +607,7 @@ final case class Resolution( /** * The final next dependency set, stripped of no more required ones. */ - def newDependencies: Set[Dependency] = { + lazy val newDependencies: Set[Dependency] = { val remainingDependencies0 = remainingDependencies nextDependenciesAndConflicts._2 @@ -615,7 +615,7 @@ final case class Resolution( .toSet } - private def nextNoMissingUnsafe: Resolution = { + private lazy val nextNoMissingUnsafe: Resolution = { val (newConflicts, _, _) = nextDependenciesAndConflicts copyWithCache( From 2ca57527eb2bd54af7cdc168ab367cd42c6384f3 Mon Sep 17 00:00:00 2001 From: Alexandre Archambault Date: Sun, 7 Feb 2016 13:33:56 +0100 Subject: [PATCH 09/10] Silent warning "imported `Properties' is permanently hidden by definition of object Properties in package util" --- core/shared/src/main/scala/coursier/util/Properties.scala | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/core/shared/src/main/scala/coursier/util/Properties.scala b/core/shared/src/main/scala/coursier/util/Properties.scala index 365c182ea..d521c1ed7 100644 --- a/core/shared/src/main/scala/coursier/util/Properties.scala +++ b/core/shared/src/main/scala/coursier/util/Properties.scala @@ -1,11 +1,11 @@ package coursier.util -import java.util.Properties +import java.util.{ Properties => JProperties } object Properties { private lazy val props = { - val p = new Properties() + val p = new JProperties() p.load( getClass .getClassLoader From 56192a2cca2bf1bbd309f00f7fe77afe4add0156 Mon Sep 17 00:00:00 2001 From: Alexandre Archambault Date: Sun, 7 Feb 2016 14:07:31 +0100 Subject: [PATCH 10/10] Replace sealed traits by abstract classes in order to generate less byte code --- cache/src/main/scala/coursier/Cache.scala | 42 +++++++++---------- .../src/main/scala/coursier/CachePolicy.scala | 2 +- .../scala-2.11/coursier/cli/Coursier.scala | 2 +- .../coursier/core/ResolutionProcess.scala | 2 +- .../main/scala/coursier/core/Version.scala | 6 +-- .../main/scala/coursier/core/Versions.scala | 32 +++++++------- 6 files changed, 43 insertions(+), 43 deletions(-) diff --git a/cache/src/main/scala/coursier/Cache.scala b/cache/src/main/scala/coursier/Cache.scala index 99ab9a022..846828393 100644 --- a/cache/src/main/scala/coursier/Cache.scala +++ b/cache/src/main/scala/coursier/Cache.scala @@ -571,31 +571,29 @@ object Cache { } -sealed trait FileError extends Product with Serializable { - def message: String -} +sealed abstract class FileError(val message: String) extends Product with Serializable object FileError { - case class DownloadError(message0: String) extends FileError { - def message = s"Download error: $message0" - } - case class NotFound(file: String) extends FileError { - def message = s"Not found: $file" - } - case class ChecksumNotFound(sumType: String, file: String) extends FileError { - def message = s"$sumType checksum not found: $file" - } - case class WrongChecksum(sumType: String, got: String, expected: String, file: String, sumFile: String) extends FileError { - def message = s"$sumType checksum validation failed: $file" - } + final case class DownloadError(reason: String) extends FileError(s"Download error: $reason") - sealed trait Recoverable extends FileError - case class Locked(file: File) extends Recoverable { - def message = s"Locked: $file" - } - case class ConcurrentDownload(url: String) extends Recoverable { - def message = s"Concurrent download: $url" - } + final case class NotFound(file: String) extends FileError(s"Not found: $file") + + final case class ChecksumNotFound( + sumType: String, + file: String + ) extends FileError(s"$sumType checksum not found: $file") + + final case class WrongChecksum( + sumType: String, + got: String, + expected: String, + file: String, + sumFile: String + ) extends FileError(s"$sumType checksum validation failed: $file") + + sealed abstract class Recoverable(message: String) extends FileError(message) + final case class Locked(file: File) extends Recoverable(s"Locked: $file") + final case class ConcurrentDownload(url: String) extends Recoverable(s"Concurrent download: $url") } diff --git a/cache/src/main/scala/coursier/CachePolicy.scala b/cache/src/main/scala/coursier/CachePolicy.scala index 0bf51e6e3..2e739640a 100644 --- a/cache/src/main/scala/coursier/CachePolicy.scala +++ b/cache/src/main/scala/coursier/CachePolicy.scala @@ -1,6 +1,6 @@ package coursier -sealed trait CachePolicy extends Product with Serializable +sealed abstract class CachePolicy extends Product with Serializable object CachePolicy { case object LocalOnly extends CachePolicy diff --git a/cli/src/main/scala-2.11/coursier/cli/Coursier.scala b/cli/src/main/scala-2.11/coursier/cli/Coursier.scala index 64db345eb..d1a8af958 100644 --- a/cli/src/main/scala-2.11/coursier/cli/Coursier.scala +++ b/cli/src/main/scala-2.11/coursier/cli/Coursier.scala @@ -62,7 +62,7 @@ case class CacheOptions( cache: String = Cache.defaultBase.toString ) -sealed trait CoursierCommand extends Command +sealed abstract class CoursierCommand extends Command case class Resolve( @Recurse diff --git a/core/shared/src/main/scala/coursier/core/ResolutionProcess.scala b/core/shared/src/main/scala/coursier/core/ResolutionProcess.scala index c26d4608d..8d6f3b43f 100644 --- a/core/shared/src/main/scala/coursier/core/ResolutionProcess.scala +++ b/core/shared/src/main/scala/coursier/core/ResolutionProcess.scala @@ -5,7 +5,7 @@ import scalaz._ import scala.annotation.tailrec -sealed trait ResolutionProcess { +sealed abstract class ResolutionProcess { def run[F[_]]( fetch: Fetch.Metadata[F], maxIterations: Int = 50 diff --git a/core/shared/src/main/scala/coursier/core/Version.scala b/core/shared/src/main/scala/coursier/core/Version.scala index 800a601a0..34da4d71d 100644 --- a/core/shared/src/main/scala/coursier/core/Version.scala +++ b/core/shared/src/main/scala/coursier/core/Version.scala @@ -20,7 +20,7 @@ case class Version(repr: String) extends Ordered[Version] { object Version { - sealed trait Item extends Ordered[Item] { + sealed abstract class Item extends Ordered[Item] { def compare(other: Item): Int = (this, other) match { case (Number(a), Number(b)) => a.compare(b) @@ -43,7 +43,7 @@ object Version { def compareToEmpty: Int = 1 } - sealed trait Numeric extends Item { + sealed abstract class Numeric extends Item { def repr: String def next: Numeric } @@ -93,7 +93,7 @@ object Version { val qualifiersMap = qualifiers.map(q => q.value -> q).toMap object Tokenizer { - sealed trait Separator + sealed abstract class Separator case object Dot extends Separator case object Hyphen extends Separator case object Underscore extends Separator diff --git a/core/shared/src/main/scala/coursier/core/Versions.scala b/core/shared/src/main/scala/coursier/core/Versions.scala index 3ecf08aa0..5398f262c 100644 --- a/core/shared/src/main/scala/coursier/core/Versions.scala +++ b/core/shared/src/main/scala/coursier/core/Versions.scala @@ -82,21 +82,23 @@ object VersionInterval { val zero = VersionInterval(None, None, fromIncluded = false, toIncluded = false) } -sealed trait VersionConstraint { - def interval: VersionInterval - def repr: String -} +sealed abstract class VersionConstraint( + val interval: VersionInterval, + val repr: String +) + object VersionConstraint { /** Currently treated as minimum... */ - final case class Preferred(version: Version) extends VersionConstraint { - def interval: VersionInterval = VersionInterval(Some(version), Option.empty, fromIncluded = true, toIncluded = false) - def repr: String = version.repr - } - final case class Interval(interval: VersionInterval) extends VersionConstraint { - def repr: String = interval.repr - } - case object None extends VersionConstraint { - val interval = VersionInterval.zero - def repr: String = "" // Once parsed, "(,)" becomes "" because of this - } + final case class Preferred(version: Version) extends VersionConstraint( + VersionInterval(Some(version), Option.empty, fromIncluded = true, toIncluded = false), + version.repr + ) + final case class Interval(interval0: VersionInterval) extends VersionConstraint( + interval0, + interval0.repr + ) + case object None extends VersionConstraint( + VersionInterval.zero, + "" // Once parsed, "(,)" becomes "" because of this + ) }