aboutsummaryrefslogtreecommitdiff
path: root/stage1
diff options
context:
space:
mode:
authorChristopher Vogt <oss.nsp@cvogt.org>2016-05-03 00:45:50 +0300
committerChristopher Vogt <oss.nsp@cvogt.org>2016-05-03 10:27:23 +0300
commit323dd568b61a49c0ac17dbf3ad50098e82c2989b (patch)
treef67f5f259ff73f4c3a516310bc1d8e342eb56e98 /stage1
parentaf207e272664720b77b376214292b0c5716fc20b (diff)
downloadcbt-323dd568b61a49c0ac17dbf3ad50098e82c2989b.tar.gz
cbt-323dd568b61a49c0ac17dbf3ad50098e82c2989b.tar.bz2
cbt-323dd568b61a49c0ac17dbf3ad50098e82c2989b.zip
Convenience factory methods for Resolvers
Diffstat (limited to 'stage1')
-rw-r--r--stage1/MavenRepository.scala15
-rw-r--r--stage1/Stage1Lib.scala10
-rw-r--r--stage1/cbt.scala7
-rw-r--r--stage1/resolver.scala26
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")
)
}