diff options
author | Christopher Vogt <oss.nsp@cvogt.org> | 2016-05-03 00:45:50 +0300 |
---|---|---|
committer | Christopher Vogt <oss.nsp@cvogt.org> | 2016-05-03 10:27:23 +0300 |
commit | 323dd568b61a49c0ac17dbf3ad50098e82c2989b (patch) | |
tree | f67f5f259ff73f4c3a516310bc1d8e342eb56e98 /stage1 | |
parent | af207e272664720b77b376214292b0c5716fc20b (diff) | |
download | cbt-323dd568b61a49c0ac17dbf3ad50098e82c2989b.tar.gz cbt-323dd568b61a49c0ac17dbf3ad50098e82c2989b.tar.bz2 cbt-323dd568b61a49c0ac17dbf3ad50098e82c2989b.zip |
Convenience factory methods for Resolvers
Diffstat (limited to 'stage1')
-rw-r--r-- | stage1/MavenRepository.scala | 15 | ||||
-rw-r--r-- | stage1/Stage1Lib.scala | 10 | ||||
-rw-r--r-- | stage1/cbt.scala | 7 | ||||
-rw-r--r-- | stage1/resolver.scala | 26 |
4 files changed, 28 insertions, 30 deletions
diff --git a/stage1/MavenRepository.scala b/stage1/MavenRepository.scala index aa31cb8..06189d1 100644 --- a/stage1/MavenRepository.scala +++ b/stage1/MavenRepository.scala @@ -3,17 +3,8 @@ import scala.collection.immutable.Seq import java.io._ import java.net._ case class MavenResolver( cbtHasChanged: Boolean, mavenCache: File, urls: URL* ){ - def resolve( dependencies: MavenDependency* )(implicit logger: Logger): BoundMavenDependencies - = new BoundMavenDependencies( cbtHasChanged, mavenCache, urls.to, dependencies.to ) - def resolveOne( dependency: MavenDependency )(implicit logger: Logger): BoundMavenDependency + def bind( dependencies: MavenDependency* )(implicit logger: Logger): Seq[BoundMavenDependency] + = dependencies.map( BoundMavenDependency(cbtHasChanged,mavenCache,_,urls.to) ).to + def bindOne( dependency: MavenDependency )(implicit logger: Logger): BoundMavenDependency = BoundMavenDependency( cbtHasChanged, mavenCache, dependency, urls.to ) } - -object MavenResolver{ - def central = new URL("https://repo1.maven.org/maven2") - def jcenter = new URL("https://jcenter.bintray.com/releases") - def bintray(owner: String) = new URL(s"https://dl.bintray.com/$owner/maven") - private val sonatypeBase = new URL("https://oss.sonatype.org/content/repositories/") - def sonatype = sonatypeBase ++ "releases" - def sonatypeSnapshots = sonatypeBase ++ "snapshots" -} diff --git a/stage1/Stage1Lib.scala b/stage1/Stage1Lib.scala index 7b09be2..027818c 100644 --- a/stage1/Stage1Lib.scala +++ b/stage1/Stage1Lib.scala @@ -150,8 +150,8 @@ class Stage1Lib( val logger: Logger ) extends BaseLib{ None }else{ if( needsRecompile ){ - val central = MavenResolver(cbtHasChanged, mavenCache,MavenResolver.central) - val zinc = central.resolveOne(MavenDependency("com.typesafe.zinc","zinc", zincVersion)) + def Resolver(urls: URL*) = MavenResolver(cbtHasChanged, mavenCache, urls: _*) + val zinc = Resolver(mavenCentral).bindOne(MavenDependency("com.typesafe.zinc","zinc", zincVersion)) val zincDeps = zinc.transitiveDependencies val sbtInterface = @@ -176,9 +176,9 @@ class Stage1Lib( val logger: Logger ) extends BaseLib{ .getOrElse( throw new Exception(s"cannot find compiler-interface in zinc $zincVersion dependencies: "++zincDeps.toString) ) .jar - val scalaLibrary = central.resolveOne(MavenDependency("org.scala-lang","scala-library",scalaVersion)).jar - val scalaReflect = central.resolveOne(MavenDependency("org.scala-lang","scala-reflect",scalaVersion)).jar - val scalaCompiler = central.resolveOne(MavenDependency("org.scala-lang","scala-compiler",scalaVersion)).jar + val scalaLibrary = Resolver(mavenCentral).bindOne(MavenDependency("org.scala-lang","scala-library",scalaVersion)).jar + val scalaReflect = Resolver(mavenCentral).bindOne(MavenDependency("org.scala-lang","scala-reflect",scalaVersion)).jar + val scalaCompiler = Resolver(mavenCentral).bindOne(MavenDependency("org.scala-lang","scala-compiler",scalaVersion)).jar val start = System.currentTimeMillis diff --git a/stage1/cbt.scala b/stage1/cbt.scala index 33422cc..b1c462b 100644 --- a/stage1/cbt.scala +++ b/stage1/cbt.scala @@ -6,6 +6,13 @@ import scala.collection.immutable.Seq import java.util.concurrent.ConcurrentHashMap object `package`{ + val mavenCentral = new URL("https://repo1.maven.org/maven2") + val jcenter = new URL("https://jcenter.bintray.com") + def bintray(owner: String) = new URL(s"https://dl.bintray.com/$owner/maven") // FIXME: url encode owner + private val sonatypeBase = new URL("https://oss.sonatype.org/content/repositories/") + val sonatypeReleases = sonatypeBase ++ "releases" + val sonatypeSnapshots = sonatypeBase ++ "snapshots" + private val lib = new BaseLib implicit class FileExtensionMethods( file: File ){ def ++( s: String ): File = { diff --git a/stage1/resolver.scala b/stage1/resolver.scala index d195fa4..cd5f3e8 100644 --- a/stage1/resolver.scala +++ b/stage1/resolver.scala @@ -109,9 +109,9 @@ abstract class DependencyImplementation extends Dependency{ } // TODO: all this hard codes the scala version, needs more flexibility -class ScalaCompilerDependency(cbtHasChanged: Boolean, mavenCache: File, version: String)(implicit logger: Logger) extends BoundMavenDependency(cbtHasChanged, mavenCache, MavenDependency("org.scala-lang","scala-compiler",version, Classifier.none), Seq(MavenResolver.central)) -class ScalaLibraryDependency (cbtHasChanged: Boolean, mavenCache: File, version: String)(implicit logger: Logger) extends BoundMavenDependency(cbtHasChanged, mavenCache, MavenDependency("org.scala-lang","scala-library",version, Classifier.none), Seq(MavenResolver.central)) -class ScalaReflectDependency (cbtHasChanged: Boolean, mavenCache: File, version: String)(implicit logger: Logger) extends BoundMavenDependency(cbtHasChanged, mavenCache, MavenDependency("org.scala-lang","scala-reflect",version, Classifier.none), Seq(MavenResolver.central)) +class ScalaCompilerDependency(cbtHasChanged: Boolean, mavenCache: File, version: String)(implicit logger: Logger) extends BoundMavenDependency(cbtHasChanged, mavenCache, MavenDependency("org.scala-lang","scala-compiler",version, Classifier.none), Seq(mavenCentral)) +class ScalaLibraryDependency (cbtHasChanged: Boolean, mavenCache: File, version: String)(implicit logger: Logger) extends BoundMavenDependency(cbtHasChanged, mavenCache, MavenDependency("org.scala-lang","scala-library",version, Classifier.none), Seq(mavenCentral)) +class ScalaReflectDependency (cbtHasChanged: Boolean, mavenCache: File, version: String)(implicit logger: Logger) extends BoundMavenDependency(cbtHasChanged, mavenCache, MavenDependency("org.scala-lang","scala-reflect",version, Classifier.none), Seq(mavenCentral)) case class ScalaDependencies(cbtHasChanged: Boolean, mavenCache: File, version: String)(implicit val logger: Logger) extends DependencyImplementation{ sd => override final val needsUpdate = false @@ -146,11 +146,11 @@ case class Stage1Dependency(cbtHasChanged: Boolean, mavenCache: File, nailgunTar override def exportedClasspath = ClassPath( Seq(nailgunTarget, stage1Target) ) val compatibilityDependency = CompatibilityDependency(cbtHasChanged, compatibilityTarget) override def dependencies = Seq( - compatibilityDependency, - MavenResolver(cbtHasChanged,mavenCache,MavenResolver.central).resolve( - MavenDependency("org.scala-lang","scala-library",constants.scalaVersion), - MavenDependency("org.scala-lang.modules","scala-xml_"+constants.scalaMajorVersion,constants.scalaXmlVersion) - ) + compatibilityDependency + ) ++ + MavenResolver(cbtHasChanged,mavenCache,mavenCentral).bind( + MavenDependency("org.scala-lang","scala-library",constants.scalaVersion), + MavenDependency("org.scala-lang.modules","scala-xml_"+constants.scalaMajorVersion,constants.scalaXmlVersion) ) } case class CompatibilityDependency(cbtHasChanged: Boolean, compatibilityTarget: File)(implicit val logger: Logger) extends DependencyImplementation{ @@ -165,11 +165,11 @@ case class CbtDependency(cbtHasChanged: Boolean, mavenCache: File, nailgunTarget override def exportedClasspath = ClassPath( Seq( stage2Target ) ) val stage1Dependency = Stage1Dependency(cbtHasChanged, mavenCache, nailgunTarget, stage1Target, compatibilityTarget) override def dependencies = Seq( - stage1Dependency, - MavenResolver(cbtHasChanged, mavenCache,MavenResolver.central).resolve( - MavenDependency("net.incongru.watchservice","barbary-watchservice","1.0"), - MavenDependency("org.eclipse.jgit", "org.eclipse.jgit", "4.2.0.201601211800-r") - ) + stage1Dependency + ) ++ + MavenResolver(cbtHasChanged, mavenCache,mavenCentral).bind( + MavenDependency("net.incongru.watchservice","barbary-watchservice","1.0"), + MavenDependency("org.eclipse.jgit", "org.eclipse.jgit", "4.2.0.201601211800-r") ) } |