From e532d20732744045ebe3bb4ca0419e7b106922fd Mon Sep 17 00:00:00 2001 From: Mark Harrah Date: Mon, 29 Oct 2012 09:52:10 -0400 Subject: [PATCH] cleanup of #585: compatible with earlier launchers --- ivy/IvyInterface.scala | 2 +- main/Defaults.scala | 7 ++++++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/ivy/IvyInterface.scala b/ivy/IvyInterface.scala index b1b9b9fcd..fb85ae0db 100644 --- a/ivy/IvyInterface.scala +++ b/ivy/IvyInterface.scala @@ -89,7 +89,7 @@ final class Patterns(val ivyPatterns: Seq[String], val artifactPatterns: Seq[Str case _ => false } } - override def hashCode: Int = 617 * ivyPatterns.## + 37 * artifactPatterns.## + isMavenCompatible.hashCode + override def hashCode: Int = (ivyPatterns, artifactPatterns, isMavenCompatible).hashCode } object Patterns { diff --git a/main/Defaults.scala b/main/Defaults.scala index 839e318c8..aef89458f 100755 --- a/main/Defaults.scala +++ b/main/Defaults.scala @@ -1211,13 +1211,18 @@ object Classpaths def bootRepositories(app: xsbti.AppConfiguration): Option[Seq[Resolver]] = try { Some(app.provider.scalaProvider.launcher.ivyRepositories.toSeq map bootRepository) } catch { case _: NoSuchMethodError => None } + + private[this] def mavenCompatible(ivyRepo: xsbti.IvyRepository): Boolean = + try { ivyRepo.mavenCompatible } + catch { case _: NoSuchMethodError => false } + private[this] def bootRepository(repo: xsbti.Repository): Resolver = { import xsbti.Predefined repo match { case m: xsbti.MavenRepository => MavenRepository(m.id, m.url.toString) - case i: xsbti.IvyRepository => Resolver.url(i.id, i.url)(Patterns(i.ivyPattern :: Nil, i.artifactPattern :: Nil, i.mavenCompatible)) + case i: xsbti.IvyRepository => Resolver.url(i.id, i.url)(Patterns(i.ivyPattern :: Nil, i.artifactPattern :: Nil, mavenCompatible(i))) case p: xsbti.PredefinedRepository => p.id match { case Predefined.Local => Resolver.defaultLocal case Predefined.MavenLocal => Resolver.mavenLocal