diff --git a/ivy/IvyActions.scala b/ivy/IvyActions.scala
index a9b835976..028c2dab5 100644
--- a/ivy/IvyActions.scala
+++ b/ivy/IvyActions.scala
@@ -26,7 +26,7 @@ final class PublishConfiguration(val ivyFile: Option[File], val resolverName: St
final class UpdateConfiguration(val retrieve: Option[RetrieveConfiguration], val missingOk: Boolean, val logging: UpdateLogging.Value)
final class RetrieveConfiguration(val retrieveDirectory: File, val outputPattern: String)
-final class MakePomConfiguration(val file: File, val configurations: Option[Iterable[Configuration]] = None, val extra: NodeSeq = NodeSeq.Empty, val process: Node => Node = n => n, val filterRepositories: MavenRepository => Boolean = _ => true)
+final case class MakePomConfiguration(file: File, configurations: Option[Iterable[Configuration]] = None, extra: NodeSeq = NodeSeq.Empty, process: Node => Node = n => n, filterRepositories: MavenRepository => Boolean = _ => true)
/** Configures logging during an 'update'. `level` determines the amount of other information logged.
* `Full` is the default and logs the most.
diff --git a/ivy/IvyScala.scala b/ivy/IvyScala.scala
index 511a3e997..c79909698 100644
--- a/ivy/IvyScala.scala
+++ b/ivy/IvyScala.scala
@@ -21,7 +21,7 @@ object ScalaArtifacts
import ScalaArtifacts._
-final class IvyScala(val scalaVersion: String, val configurations: Iterable[Configuration], val checkExplicit: Boolean, val filterImplicit: Boolean, val overrideScalaVersion: Boolean)
+final case class IvyScala(scalaVersion: String, configurations: Iterable[Configuration], checkExplicit: Boolean, filterImplicit: Boolean, overrideScalaVersion: Boolean)
{
// otherwise, Ivy produces the error: "impossible to get artifacts when data has not been loaded"
// which may be related to sbt's custom conflict manager, to IVY-987, or both
diff --git a/main/Defaults.scala b/main/Defaults.scala
index 304ca1d4a..4727bebff 100644
--- a/main/Defaults.scala
+++ b/main/Defaults.scala
@@ -606,9 +606,10 @@ object Classpaths
/*}
f(module.owner.configuration :+: module.moduleSettings :+: config :+: HNil)*/
}*/
- def makePomConfigurationTask(file: File, configurations: Option[Iterable[Configuration]] = None, extra: NodeSeq = NodeSeq.Empty, process: XNode => XNode = n => n, filterRepositories: MavenRepository => Boolean = _ => true) =
+ def makePomConfigurationTask(file: File, configurations: Option[Iterable[Configuration]] = None, extra: NodeSeq = NodeSeq.Empty, process: XNode => XNode = n => n, filterRepositories: MavenRepository => Boolean = defaultRepositoryFilter) =
new MakePomConfiguration(file, configurations, extra, process, filterRepositories)
+ def defaultRepositoryFilter = (repo: MavenRepository) => !repo.root.startsWith("file:")
def getPublishTo(repo: Option[Resolver]): Resolver = repo getOrElse error("Repository for publishing is not specified.")
def deliverConfig(outputDirectory: File, status: String = "release", logging: UpdateLogging.Value = UpdateLogging.DownloadOnly) =
diff --git a/sbt/src/sbt-test/dependency-management/ivy-settings-a/build.sbt b/sbt/src/sbt-test/dependency-management/ivy-settings-a/build.sbt
index cb0d463d9..7143178e3 100644
--- a/sbt/src/sbt-test/dependency-management/ivy-settings-a/build.sbt
+++ b/sbt/src/sbt-test/dependency-management/ivy-settings-a/build.sbt
@@ -1,11 +1,6 @@
-ivyPaths <<= baseDirectory( dir => new IvyPaths(dir, Some(dir / "ivy-home")))
-
seq(externalIvySettings(), externalIvyFile())
-TaskKey("check") <<= update map { report =>
+TaskKey("check") <<= (baseDirectory, update) map { (base, report) =>
val files = report.matching( moduleFilter(organization = "org.scalacheck", name = "scalacheck", revision = "1.5") )
- if(shouldExist)
- assert(!files.isEmpty, "ScalaCheck module not found in update report")
- else
- assert(files.isEmpty, "ScalaCheck module found in update report unexpectedly")
+ assert(!files.isEmpty, "ScalaCheck module not found in update report")
}
\ No newline at end of file
diff --git a/sbt/src/sbt-test/dependency-management/ivy-settings-a/project/build.properties b/sbt/src/sbt-test/dependency-management/ivy-settings-a/project/build.properties
deleted file mode 100644
index 6f75f736f..000000000
--- a/sbt/src/sbt-test/dependency-management/ivy-settings-a/project/build.properties
+++ /dev/null
@@ -1,4 +0,0 @@
-#Project properties
-#Sun Feb 01 13:49:30 EST 2009
-project.name=Ivy Settings Test
-project.version=1.0.0
diff --git a/sbt/src/sbt-test/dependency-management/ivy-settings-a/project/build/TestProject.scala b/sbt/src/sbt-test/dependency-management/ivy-settings-a/project/build/TestProject.scala
deleted file mode 100644
index eb083fd84..000000000
--- a/sbt/src/sbt-test/dependency-management/ivy-settings-a/project/build/TestProject.scala
+++ /dev/null
@@ -1,7 +0,0 @@
-import sbt._
-
-class TestProject(info: ProjectInfo) extends DefaultProject(info)
-{
- override def ivyCacheDirectory = Some(outputPath / "ivy-cache")
- override def disableCrossPaths = true
-}
\ No newline at end of file
diff --git a/sbt/src/sbt-test/dependency-management/ivy-settings-a/test b/sbt/src/sbt-test/dependency-management/ivy-settings-a/test
index 48c7771b1..0129b8a05 100644
--- a/sbt/src/sbt-test/dependency-management/ivy-settings-a/test
+++ b/sbt/src/sbt-test/dependency-management/ivy-settings-a/test
@@ -2,8 +2,6 @@
$ copy-file changes/scalacheck-ivy.xml ivy.xml
-> update
-$ absent lib_managed/default/scalacheck-1.5.jar
$ copy-file changes/scala-tools-ivysettings.xml ivysettings.xml
-> update
-$ exists lib_managed/default/scalacheck-1.5.jar
\ No newline at end of file
+> check
diff --git a/sbt/src/sbt-test/dependency-management/ivy-settings-b/build.sbt b/sbt/src/sbt-test/dependency-management/ivy-settings-b/build.sbt
new file mode 100644
index 000000000..fd5bfeab5
--- /dev/null
+++ b/sbt/src/sbt-test/dependency-management/ivy-settings-b/build.sbt
@@ -0,0 +1,8 @@
+externalIvySettings()
+
+libraryDependencies += "org.scalacheck" % "scalacheck" % "1.5"
+
+TaskKey("check") <<= (baseDirectory, update) map { (base, report) =>
+ val files = report.matching( moduleFilter(organization = "org.scalacheck", name = "scalacheck", revision = "1.5") )
+ assert(!files.isEmpty, "ScalaCheck module not found in update report")
+}
\ No newline at end of file
diff --git a/sbt/src/sbt-test/dependency-management/ivy-settings-b/project/build.properties b/sbt/src/sbt-test/dependency-management/ivy-settings-b/project/build.properties
deleted file mode 100644
index c7a658215..000000000
--- a/sbt/src/sbt-test/dependency-management/ivy-settings-b/project/build.properties
+++ /dev/null
@@ -1,4 +0,0 @@
-#Project properties
-#Sun Feb 01 15:33:35 EST 2009
-project.name=Ivy Settings Test B
-project.version=1.0.1
diff --git a/sbt/src/sbt-test/dependency-management/ivy-settings-b/project/build/src/UpdateTestProject.scala b/sbt/src/sbt-test/dependency-management/ivy-settings-b/project/build/src/UpdateTestProject.scala
deleted file mode 100644
index 8f7323f9e..000000000
--- a/sbt/src/sbt-test/dependency-management/ivy-settings-b/project/build/src/UpdateTestProject.scala
+++ /dev/null
@@ -1,8 +0,0 @@
-import sbt._
-
-class UpdateTestProject(info: ProjectInfo) extends DefaultProject(info)
-{
- val sc = "org.scalacheck" % "scalacheck" % "1.5"
- override def ivyCacheDirectory = Some(outputPath / "ivy-cache")
- override def disableCrossPaths = true
-}
\ No newline at end of file
diff --git a/sbt/src/sbt-test/dependency-management/ivy-settings-b/test b/sbt/src/sbt-test/dependency-management/ivy-settings-b/test
index bdbedd260..892c26c06 100644
--- a/sbt/src/sbt-test/dependency-management/ivy-settings-b/test
+++ b/sbt/src/sbt-test/dependency-management/ivy-settings-b/test
@@ -1,6 +1,4 @@
-> update
-$ absent lib_managed/compile/scalacheck-1.5.jar
$ copy-file changes/scala-tools-ivysettings.xml ivysettings.xml
-> update
-$ exists lib_managed/compile/scalacheck-1.5.jar
+> check
diff --git a/sbt/src/sbt-test/dependency-management/java.net/build.sbt b/sbt/src/sbt-test/dependency-management/java.net/build.sbt
new file mode 100644
index 000000000..6c4da154b
--- /dev/null
+++ b/sbt/src/sbt-test/dependency-management/java.net/build.sbt
@@ -0,0 +1,5 @@
+ivyPaths <<= baseDirectory( dir => new IvyPaths(dir, Some(dir / "ivy-home")))
+
+resolvers += JavaNet1Repository
+
+libraryDependencies += "javax.ejb" % "ejb-api" % "3.0"
diff --git a/sbt/src/sbt-test/dependency-management/java.net/project/build.properties b/sbt/src/sbt-test/dependency-management/java.net/project/build.properties
deleted file mode 100644
index 7c89429d7..000000000
--- a/sbt/src/sbt-test/dependency-management/java.net/project/build.properties
+++ /dev/null
@@ -1,2 +0,0 @@
-project.name=test
-project.version=1.0.0
\ No newline at end of file
diff --git a/sbt/src/sbt-test/dependency-management/java.net/project/build/src/TestProject.scala b/sbt/src/sbt-test/dependency-management/java.net/project/build/src/TestProject.scala
deleted file mode 100644
index fd31e81f4..000000000
--- a/sbt/src/sbt-test/dependency-management/java.net/project/build/src/TestProject.scala
+++ /dev/null
@@ -1,8 +0,0 @@
-import sbt._
-
-class TestProject(info: ProjectInfo) extends DefaultProject(info)
-{
- override def ivyCacheDirectory = Some(outputPath / "ivy-cache")
- val javaNet = JavaNet1Repository
- val ejb = "javax.ejb" % "ejb-api" % "3.0"
-}
\ No newline at end of file
diff --git a/sbt/src/sbt-test/dependency-management/make-pom/project/MakePomTest.scala b/sbt/src/sbt-test/dependency-management/make-pom/project/MakePomTest.scala
new file mode 100644
index 000000000..efe514124
--- /dev/null
+++ b/sbt/src/sbt-test/dependency-management/make-pom/project/MakePomTest.scala
@@ -0,0 +1,59 @@
+ import sbt.{Node =>_,_}
+ import Keys._
+ import scala.xml._
+
+object MakePomTest extends Build
+{
+ lazy val projects = Seq(root)
+ lazy val root = Project("root", file(".")) settings(
+ readPom <<= makePom map XML.loadFile,
+ TaskKey("check-pom") <<= checkPom,
+ TaskKey("check-extra") <<= checkExtra,
+ makePomConfiguration ~= { _.copy(extra = ) }
+ )
+
+ val readPom = TaskKey[Elem]("read-pom")
+
+ val fakeName = "fake"
+ val fakeURL = "http://example.org"
+ val fakeRepo = fakeName at fakeURL
+ def extraTagName = "extra-tag"
+
+ def checkProject(pom: Elem) = if(pom.label != "project") error("Top level element was not 'project': " + pom.label)
+
+ def withRepositories[T](pomXML: Elem)(f: NodeSeq => T) =
+ {
+ val repositoriesElement = pomXML \ "repositories"
+ if(repositoriesElement.size == 1) f(repositoriesElement) else error("'repositories' element not found in generated pom")
+ }
+
+ lazy val checkExtra = readPom map { pomXML =>
+ checkProject(pomXML)
+ val extra = pomXML \ extraTagName
+ if(extra.isEmpty) error("'" + extraTagName + "' not found in generated pom.xml.")
+ }
+
+ lazy val checkPom = (readPom, fullResolvers) map { (pomXML, ivyRepositories) =>
+ checkProject(pomXML)
+ withRepositories(pomXML) { repositoriesElement =>
+ val repositories = repositoriesElement \ "repository"
+ val writtenRepositories = repositories.map(read).distinct
+ val mavenStyleRepositories = ivyRepositories.collect { case x: MavenRepository if x.name != "public" => normalize(x) } distinct;
+
+ lazy val explain = (("Written:" +: writtenRepositories) ++ ("Declared:" +: mavenStyleRepositories)).mkString("\n\t")
+
+ if( writtenRepositories != mavenStyleRepositories )
+ error("Written repositories did not match declared repositories.\n\t" + explain)
+ }
+ }
+
+ def read(repository: Node): MavenRepository =
+ (repository \ "name").text at normalize((repository \ "url").text)
+
+ def normalize(url: String): String =
+ {
+ val base = uri( url ).normalize.toString
+ if(base.endsWith("/")) base else (base + "/")
+ }
+ def normalize(repo: MavenRepository): MavenRepository = new MavenRepository(repo.name, normalize(repo.root))
+}
\ No newline at end of file
diff --git a/sbt/src/sbt-test/dependency-management/make-pom/project/build.properties b/sbt/src/sbt-test/dependency-management/make-pom/project/build.properties
deleted file mode 100644
index 2ca57b677..000000000
--- a/sbt/src/sbt-test/dependency-management/make-pom/project/build.properties
+++ /dev/null
@@ -1,3 +0,0 @@
-project.name=Make Pom Test
-project.organization=test
-project.version=1.0
\ No newline at end of file
diff --git a/sbt/src/sbt-test/dependency-management/make-pom/project/build/MakePomTest.scala b/sbt/src/sbt-test/dependency-management/make-pom/project/build/MakePomTest.scala
deleted file mode 100644
index 37325d933..000000000
--- a/sbt/src/sbt-test/dependency-management/make-pom/project/build/MakePomTest.scala
+++ /dev/null
@@ -1,55 +0,0 @@
-import sbt._
-
-import scala.xml._
-
-class MakePomTest(info: ProjectInfo) extends DefaultProject(info)
-{
- val fakeName = "fake"
- val fakeURL = "http://example.org"
- val fakeRepo = fakeName at fakeURL
-
- def extraTagName = "extra-tag"
- override def pomExtra =
- def readPom = XML.loadFile(pomPath.asFile)
- def checkProject(pom: Elem): Either[String, Elem] = if(pom.label == "project") Right(pom) else Left("Top level element was not 'project': " + pom.label)
-
- def withPom(f: Elem => Either[String, Unit]) = task {
- checkProject(readPom).right.flatMap(f).left.toOption
- }
- def withRepositories[T](pomXML: Elem)(f: NodeSeq => Either[String, T]) =
- {
- val repositoriesElement = pomXML \ "repositories"
- if(repositoriesElement.size == 1) f(repositoriesElement) else Left("'repositories' element not found in generated pom")
- }
-
-
- lazy val checkExtra = withPom { pomXML =>
- val extra = pomXML \ extraTagName
- if(extra.isEmpty) Left("'" + extraTagName + "' not found in generated pom.xml.") else Right(())
- }
-
- lazy val checkPom = withPom { pomXML =>
- withRepositories(pomXML) { repositoriesElement =>
-
- val repositories = repositoriesElement \ "repository"
- val writtenRepositories = Set() ++ repositories.map(read)
- val mavenStyleRepositories = Set() ++ ivyRepositories.filter(x => x.isInstanceOf[MavenRepository] && x.name != "public").map(normalize)
-
- lazy val explain = ("Written:" :: writtenRepositories.toList ::: "Declared:" :: mavenStyleRepositories.toList).mkString("\n\t")
-
- if( writtenRepositories == mavenStyleRepositories ) Right(())
- else Left("Written repositories did not match declared repositories.\n\t" + explain)
- }
- }
-
- def read(repository: Node): MavenRepository =
- (repository \ "name").text at normalize((repository \ "url").text)
-
- def normalize(url: String): String =
- {
- val base = (new java.net.URI( url )).normalize.toString
- if(base.endsWith("/")) base else (base + "/")
- }
- def normalize(repo: Resolver): Resolver = repo match { case mr: MavenRepository => normalize(mr); case _ => repo }
- def normalize(repo: MavenRepository): MavenRepository = new MavenRepository(repo.name, normalize(repo.root))
-}
\ No newline at end of file
diff --git a/sbt/src/sbt-test/dependency-management/make-pom/test b/sbt/src/sbt-test/dependency-management/make-pom/test
index d6cd7da32..3d7f79218 100644
--- a/sbt/src/sbt-test/dependency-management/make-pom/test
+++ b/sbt/src/sbt-test/dependency-management/make-pom/test
@@ -1,7 +1,2 @@
--> check-pom
--> check-extra
-
-> make-pom
-
> check-pom
> check-extra
\ No newline at end of file
diff --git a/sbt/src/sbt-test/dependency-management/module-confs/Test.sbt b/sbt/src/sbt-test/dependency-management/module-confs/Test.sbt
new file mode 100644
index 000000000..e77aa7def
--- /dev/null
+++ b/sbt/src/sbt-test/dependency-management/module-confs/Test.sbt
@@ -0,0 +1,7 @@
+{
+ def snapshotPattern = "http://scala-tools.org/repo-snapshots/[organization]/[module]/2.10.0-SNAPSHOT/[artifact]-[revision].[ext]"
+ def scalaSnapshots = Resolver.url("Scala Tools Snapshots") artifacts(snapshotPattern) ivys(snapshotPattern) mavenStyle()
+ moduleConfigurations += ModuleConfiguration("org.scala-lang", "*", "2.10.0-.*", scalaSnapshots)
+}
+
+libraryDependencies += "org.scala-lang" % "scala-compiler" % "2.10.0-20110412.015459-16"
\ No newline at end of file
diff --git a/sbt/src/sbt-test/dependency-management/module-confs/changes/WrongOrg.sbt b/sbt/src/sbt-test/dependency-management/module-confs/changes/WrongOrg.sbt
new file mode 100644
index 000000000..2ab1e7378
--- /dev/null
+++ b/sbt/src/sbt-test/dependency-management/module-confs/changes/WrongOrg.sbt
@@ -0,0 +1,7 @@
+{
+ def snapshotPattern = "http://scala-tools.org/repo-snapshots/[organization]/[module]/2.10.0-SNAPSHOT/[artifact]-[revision].[ext]"
+ def scalaSnapshots = Resolver.url("Scala Tools Snapshots") artifacts(snapshotPattern) ivys(snapshotPattern) mavenStyle()
+ moduleConfigurations += ModuleConfiguration("org.not-scala-lang", "*", "2.10.0-.*", scalaSnapshots)
+}
+
+libraryDependencies += "org.scala-lang" % "scala-compiler" % "2.10.0-20110412.015459-16"
\ No newline at end of file
diff --git a/sbt/src/sbt-test/dependency-management/module-confs/changes/WrongOrg.scala b/sbt/src/sbt-test/dependency-management/module-confs/changes/WrongOrg.scala
deleted file mode 100644
index 47f80c36c..000000000
--- a/sbt/src/sbt-test/dependency-management/module-confs/changes/WrongOrg.scala
+++ /dev/null
@@ -1,13 +0,0 @@
-import sbt._
-
-class Test(info: ProjectInfo) extends DefaultProject(info)
-{
- override def ivyCacheDirectory = Some(outputPath / "ivy-cache")
-
- def snapshotPattern = "http://scala-tools.org/repo-snapshots/[organization]/[module]/2.8.0-SNAPSHOT/[artifact]-[revision].[ext]"
- def scalaSnapshots = Resolver.url("Scala Tools Snapshots") artifacts(snapshotPattern) ivys(snapshotPattern) mavenStyle()
- val scOnly = ModuleConfiguration("org.not-scala-lang", "*", "2.8.0-.*", scalaSnapshots)
-
- val uniqueScala = "org.scala-lang" % "scala-compiler" % "2.8.0-20100115.022156-304"
- val otherDep = "org.scala-tools.sxr" % "sxr_2.7.5" % "0.2.3"
-}
\ No newline at end of file
diff --git a/sbt/src/sbt-test/dependency-management/module-confs/changes/WrongPattern.sbt b/sbt/src/sbt-test/dependency-management/module-confs/changes/WrongPattern.sbt
new file mode 100644
index 000000000..4f0d3a80c
--- /dev/null
+++ b/sbt/src/sbt-test/dependency-management/module-confs/changes/WrongPattern.sbt
@@ -0,0 +1,7 @@
+{
+ def snapshotPattern = "http://scala-tools.org/repo-snapshots/[organization]/[module]/2.10.a-SNAPSHOT/[artifact]-[revision].[ext]"
+ def scalaSnapshots = Resolver.url("Scala Tools Snapshots") artifacts(snapshotPattern) ivys(snapshotPattern) mavenStyle()
+ moduleConfigurations += ModuleConfiguration("org.scala-lang", "*", "2.10.0-.*", scalaSnapshots)
+}
+
+libraryDependencies += "org.scala-lang" % "scala-compiler" % "2.10.0-20110412.015459-16"
\ No newline at end of file
diff --git a/sbt/src/sbt-test/dependency-management/module-confs/changes/WrongPattern.scala b/sbt/src/sbt-test/dependency-management/module-confs/changes/WrongPattern.scala
deleted file mode 100644
index f999c459b..000000000
--- a/sbt/src/sbt-test/dependency-management/module-confs/changes/WrongPattern.scala
+++ /dev/null
@@ -1,13 +0,0 @@
-import sbt._
-
-class Test(info: ProjectInfo) extends DefaultProject(info)
-{
- override def ivyCacheDirectory = Some(outputPath / "ivy-cache")
-
- def snapshotPattern = "http://scala-tools.org/repo-snapshots/[organization]/[module]/2.8.a-SNAPSHOT/[artifact]-[revision].[ext]"
- def scalaSnapshots = Resolver.url("Scala Tools Snapshots") artifacts(snapshotPattern) ivys(snapshotPattern) mavenStyle()
- val scOnly = ModuleConfiguration("org.scala-lang", "*", "2.8.0-.*", scalaSnapshots)
-
- val uniqueScala = "org.scala-lang" % "scala-compiler" % "2.8.0-20100115.022156-304"
- val otherDep = "org.scala-tools.sxr" % "sxr_2.7.5" % "0.2.3"
-}
\ No newline at end of file
diff --git a/sbt/src/sbt-test/dependency-management/module-confs/changes/WrongVersion.sbt b/sbt/src/sbt-test/dependency-management/module-confs/changes/WrongVersion.sbt
new file mode 100644
index 000000000..ec469ff73
--- /dev/null
+++ b/sbt/src/sbt-test/dependency-management/module-confs/changes/WrongVersion.sbt
@@ -0,0 +1,7 @@
+{
+ def snapshotPattern = "http://scala-tools.org/repo-snapshots/[organization]/[module]/2.10.0-SNAPSHOT/[artifact]-[revision].[ext]"
+ def scalaSnapshots = Resolver.url("Scala Tools Snapshots") artifacts(snapshotPattern) ivys(snapshotPattern) mavenStyle()
+ moduleConfigurations += ModuleConfiguration("org.scala-lang", "*", "2.10.0-.*", scalaSnapshots)
+}
+
+libraryDependencies += "org.scala-lang" % "scala-compiler" % "2.10.0-20110412.015459-17"
\ No newline at end of file
diff --git a/sbt/src/sbt-test/dependency-management/module-confs/changes/WrongVersion.scala b/sbt/src/sbt-test/dependency-management/module-confs/changes/WrongVersion.scala
deleted file mode 100644
index 687e9121d..000000000
--- a/sbt/src/sbt-test/dependency-management/module-confs/changes/WrongVersion.scala
+++ /dev/null
@@ -1,13 +0,0 @@
-import sbt._
-
-class Test(info: ProjectInfo) extends DefaultProject(info)
-{
- override def ivyCacheDirectory = Some(outputPath / "ivy-cache")
-
- def snapshotPattern = "http://scala-tools.org/repo-snapshots/[organization]/[module]/2.8.0-SNAPSHOT/[artifact]-[revision].[ext]"
- def scalaSnapshots = Resolver.url("Scala Tools Snapshots") artifacts(snapshotPattern) ivys(snapshotPattern) mavenStyle()
- val scOnly = ModuleConfiguration("org.scala-lang", "*", "2.8.0-.*", scalaSnapshots)
-
- val uniqueScala = "org.scala-lang" % "scala-compiler" % "2.8.0-20100115.022156-305"
- val otherDep = "org.scala-tools.sxr" % "sxr_2.7.5" % "0.2.3"
-}
\ No newline at end of file
diff --git a/sbt/src/sbt-test/dependency-management/module-confs/common.sbt b/sbt/src/sbt-test/dependency-management/module-confs/common.sbt
new file mode 100644
index 000000000..3c07f7779
--- /dev/null
+++ b/sbt/src/sbt-test/dependency-management/module-confs/common.sbt
@@ -0,0 +1,5 @@
+ivyScala ~= { (is: Option[IvyScala]) => is.map(_.copy(checkExplicit = false, overrideScalaVersion = false)) }
+
+ivyPaths <<= baseDirectory( dir => new IvyPaths(dir, Some(dir / "ivy-home")))
+
+libraryDependencies += "junit" % "junit" % "4.8"
\ No newline at end of file
diff --git a/sbt/src/sbt-test/dependency-management/module-confs/project/build.properties b/sbt/src/sbt-test/dependency-management/module-confs/project/build.properties
deleted file mode 100644
index c6df3d9ce..000000000
--- a/sbt/src/sbt-test/dependency-management/module-confs/project/build.properties
+++ /dev/null
@@ -1,2 +0,0 @@
-project.name=Test Module Configurations
-project.version=1.0
\ No newline at end of file
diff --git a/sbt/src/sbt-test/dependency-management/module-confs/project/build/Test.scala b/sbt/src/sbt-test/dependency-management/module-confs/project/build/Test.scala
deleted file mode 100644
index fd1519263..000000000
--- a/sbt/src/sbt-test/dependency-management/module-confs/project/build/Test.scala
+++ /dev/null
@@ -1,15 +0,0 @@
-import sbt._
-
-class Test(info: ProjectInfo) extends DefaultProject(info)
-{
- override def ivyCacheDirectory = Some(outputPath / "ivy-cache")
-
- def snapshotPattern = "http://scala-tools.org/repo-snapshots/[organization]/[module]/2.8.0-SNAPSHOT/[artifact]-[revision].[ext]"
- def scalaSnapshots = Resolver.url("Scala Tools Snapshots") artifacts(snapshotPattern) ivys(snapshotPattern) mavenStyle()
- val scOnly = ModuleConfiguration("org.scala-lang", "*", "2.8.0-.*", scalaSnapshots)
-
- val uniqueScala = "org.scala-lang" % "scala-compiler" % "2.8.0-20100511.013550-380"
- val otherDep = "org.scala-tools.sxr" % "sxr_2.7.5" % "0.2.3"
-
- override def checkExplicitScalaDependencies = false
-}
\ No newline at end of file
diff --git a/sbt/src/sbt-test/dependency-management/module-confs/test b/sbt/src/sbt-test/dependency-management/module-confs/test
index 16466a54b..9bea9add9 100644
--- a/sbt/src/sbt-test/dependency-management/module-confs/test
+++ b/sbt/src/sbt-test/dependency-management/module-confs/test
@@ -1,14 +1,16 @@
> update
> clean
-$ copy-file changes/WrongOrg.scala project/build/Test.scala
+$ copy-file changes/WrongOrg.sbt Test.sbt
> reload
-> update
+> clean
-$ copy-file changes/WrongVersion.scala project/build/Test.scala
+$ copy-file changes/WrongVersion.sbt Test.sbt
> reload
-> update
+> clean
-$ copy-file changes/WrongPattern.scala project/build/Test.scala
+$ copy-file changes/WrongPattern.sbt Test.sbt
> reload
-> update
diff --git a/sbt/src/sbt-test/dependency-management/package-to-publish/project/build.properties b/sbt/src/sbt-test/dependency-management/package-to-publish/project/build.properties
deleted file mode 100644
index 5a5bc0dec..000000000
--- a/sbt/src/sbt-test/dependency-management/package-to-publish/project/build.properties
+++ /dev/null
@@ -1,2 +0,0 @@
-project.name=Publish Test
-project.version=1.0
\ No newline at end of file
diff --git a/sbt/src/sbt-test/dependency-management/package-to-publish/project/build/Test.scala b/sbt/src/sbt-test/dependency-management/package-to-publish/project/build/Test.scala
deleted file mode 100644
index 00c3f923c..000000000
--- a/sbt/src/sbt-test/dependency-management/package-to-publish/project/build/Test.scala
+++ /dev/null
@@ -1,33 +0,0 @@
-import sbt._
-
-class Test(info: ProjectInfo) extends DefaultProject(info)
-{
- override def ivyCacheDirectory = Some(outputPath / "ivy-cache")
-
- override def managedStyle = ManagedStyle.Maven
- def testRepoPath = path("test-repo")
- val publishTo = Resolver.file("test repo", testRepoPath asFile)
-
- def srcExt = "-sources.jar"
- def srcFilter = extFilter(srcExt)
- def docExt = "-javadoc.jar"
- def docFilter = extFilter(docExt)
- def extFilter(ext: String) = "*" + ext
-
- override def packageDocsJar = defaultJarPath(docExt)
- override def packageSrcJar= defaultJarPath(srcExt)
-
- val sourceArtifact = Artifact(artifactID, "src", "jar", "sources")
- val docsArtifact = Artifact(artifactID, "docs", "jar", Some("javadoc"), Nil, None)
- override def packageToPublishActions = super.packageToPublishActions ++ Seq(packageDocs, packageSrc)
-
- lazy val check = task { check0 }
-
- def check0 = checkPom orElse checkBin orElse checkSource orElse checkDoc
- def checkPom = exists("pom", "*.pom")
- def checkDoc = exists("javadoc", docFilter)
- def checkSource = exists("sources", srcFilter)
- def checkBin = exists("binary", "*.jar" - (srcFilter | docFilter))
- def exists(label: String, filter: sbt.NameFilter) =
- if( (testRepoPath ** filter).get.isEmpty) Some("No " + label + " published") else None
-}
\ No newline at end of file
diff --git a/sbt/src/sbt-test/dependency-management/package-to-publish/src/main/scala/Test.scala b/sbt/src/sbt-test/dependency-management/package-to-publish/src/main/scala/Test.scala
deleted file mode 100644
index 7396cec1d..000000000
--- a/sbt/src/sbt-test/dependency-management/package-to-publish/src/main/scala/Test.scala
+++ /dev/null
@@ -1 +0,0 @@
-class TestClass
\ No newline at end of file
diff --git a/sbt/src/sbt-test/dependency-management/package-to-publish/test b/sbt/src/sbt-test/dependency-management/package-to-publish/test
deleted file mode 100644
index 6bae15e55..000000000
--- a/sbt/src/sbt-test/dependency-management/package-to-publish/test
+++ /dev/null
@@ -1,3 +0,0 @@
--> check
-> publish
-> check
\ No newline at end of file
diff --git a/sbt/src/sbt-test/dependency-management/parent-ivy-settings/project/SettingsTest.scala b/sbt/src/sbt-test/dependency-management/parent-ivy-settings/project/SettingsTest.scala
new file mode 100644
index 000000000..adea9d87b
--- /dev/null
+++ b/sbt/src/sbt-test/dependency-management/parent-ivy-settings/project/SettingsTest.scala
@@ -0,0 +1,17 @@
+ import sbt._
+ import Keys._
+
+object SettingsTest extends Build
+{
+ lazy val projects = Seq(parent, sub, configgy)
+ lazy val parent: Project = Project("Parent", file(".")) aggregate(sub) settings(
+ externalIvySettings(),
+ ivyPaths <<= baseDirectory( dir => new IvyPaths(dir, Some(dir / "ivy-home")))
+ )
+ lazy val sub: Project = Project("Sub", file("sub"), delegates = parent :: Nil) dependsOn(configgy) aggregate(configgy) settings(
+ externalIvySettings()
+ )
+ lazy val configgy = Project("Configgy", file("configgy"), delegates = sub :: Nil) settings(
+ libraryDependencies += "net.lag" % "configgy" % "1.1"
+ )
+}
\ No newline at end of file
diff --git a/sbt/src/sbt-test/dependency-management/parent-ivy-settings/test b/sbt/src/sbt-test/dependency-management/parent-ivy-settings/test
index 22099a981..93c165b6f 100644
--- a/sbt/src/sbt-test/dependency-management/parent-ivy-settings/test
+++ b/sbt/src/sbt-test/dependency-management/parent-ivy-settings/test
@@ -1,13 +1,13 @@
-> update
-> clean-lib
+> clean
$ copy-file changes/ivysettings.xml sub/ivysettings.xml
> update
-> clean-lib
+> clean
$ delete sub/ivysettings.xml
-> update
-> clean-lib
+> clean
$ copy-file changes/ivysettings.xml ivysettings.xml
> update
\ No newline at end of file
diff --git a/sbt/src/sbt-test/dependency-management/parent-publish/project/Parent.scala b/sbt/src/sbt-test/dependency-management/parent-publish/project/Parent.scala
new file mode 100644
index 000000000..3a51d5d8b
--- /dev/null
+++ b/sbt/src/sbt-test/dependency-management/parent-publish/project/Parent.scala
@@ -0,0 +1,10 @@
+ import sbt._
+
+object ParentTest extends Build
+{
+ lazy val projects = Seq(parent, core, reporters, jfreechart)
+ lazy val parent: Project = Project("Flowmodel", file(".")) aggregate(core, reporters)
+ lazy val core: Project = Project("Flowmodel core", file("core"), delegates = parent :: Nil)
+ lazy val reporters: Project = Project("Extra reporters", file("reporters"), delegates = parent :: Nil) aggregate(jfreechart) dependsOn(jfreechart)
+ lazy val jfreechart: Project = Project("JFreeChart reporters", file("jfreechart"), delegates = reporters :: Nil) dependsOn(core)
+}
diff --git a/sbt/src/sbt-test/dependency-management/parent-publish/project/build.properties b/sbt/src/sbt-test/dependency-management/parent-publish/project/build.properties
deleted file mode 100644
index 199af5bc0..000000000
--- a/sbt/src/sbt-test/dependency-management/parent-publish/project/build.properties
+++ /dev/null
@@ -1,2 +0,0 @@
-project.version=1.0
-project.name=Parent Test
\ No newline at end of file
diff --git a/sbt/src/sbt-test/dependency-management/parent-publish/project/build/Parent.scala b/sbt/src/sbt-test/dependency-management/parent-publish/project/build/Parent.scala
deleted file mode 100644
index a84707859..000000000
--- a/sbt/src/sbt-test/dependency-management/parent-publish/project/build/Parent.scala
+++ /dev/null
@@ -1,12 +0,0 @@
-import sbt._
-
-class FlowmodelProject(info: ProjectInfo) extends ParentProject(info)
-{
- lazy val core = project("core", "Flowmodel core")
- lazy val reporters = project("reporters", "Extra reporters", new Reporters(_))
-
- class Reporters(info: ProjectInfo) extends ParentProject(info)
- {
- lazy val jfreechart = project("jfreechart", "JFreeChart reporters", core)
- }
-}
\ No newline at end of file
diff --git a/sbt/src/sbt-test/dependency-management/pom-advanced/project/PomRepoTest.scala b/sbt/src/sbt-test/dependency-management/pom-advanced/project/PomRepoTest.scala
new file mode 100644
index 000000000..f2a9df6ca
--- /dev/null
+++ b/sbt/src/sbt-test/dependency-management/pom-advanced/project/PomRepoTest.scala
@@ -0,0 +1,32 @@
+ import sbt._
+ import Keys._
+ import complete.DefaultParsers._
+
+object PomRepoTest extends Build
+{
+ lazy val projects = Seq(root)
+ lazy val root = Project("root", file(".")) settings(
+ resolvers ++= Seq(local, ScalaToolsSnapshots),
+ InputKey("check-pom") <<= InputTask(_ => spaceDelimited("")) { result => (makePom, result, streams) map checkPomRepositories },
+ makePomConfiguration <<= (makePomConfiguration, baseDirectory) { (conf, base) =>
+ conf.copy(filterRepositories = pomIncludeRepository(base, conf.filterRepositories) )
+ },
+ ivyPaths <<= baseDirectory( dir => new IvyPaths(dir, Some(dir / "ivy-home")))
+ )
+
+ val local = "local-maven-repo" at "file://" + (Path.userHome / ".m2" /"repository").absolutePath
+
+ def pomIncludeRepository(base: File, prev: MavenRepository => Boolean) = (r: MavenRepository) =>
+ if(base / "repo.none" exists) false else if(base / "repo.all" exists) true else prev(r)
+
+ def checkPomRepositories(file: File, args: Seq[String], s: TaskStreams)
+ {
+ val repositories = scala.xml.XML.loadFile(file) \\ "repository"
+ val extracted = repositories.map { repo => MavenRepository(repo \ "name" text, repo \ "url" text) }
+ val expected = args.map(GlobFilter.apply)
+ s.log.info("Extracted: " + extracted.mkString("\n\t", "\n\t", "\n"))
+ s.log.info("Expected: " + args.mkString("\n\t", "\n\t", "\n"))
+ extracted.find { e => !expected.exists(_.accept(e.root)) } map { "Repository should not be exported: " + _ } orElse
+ (expected.find { e => !extracted.exists(r => e.accept(r.root)) } map { "Repository should be exported: " + _ } ) foreach error
+ }
+}
\ No newline at end of file
diff --git a/sbt/src/sbt-test/dependency-management/pom-advanced/project/build.properties b/sbt/src/sbt-test/dependency-management/pom-advanced/project/build.properties
deleted file mode 100644
index 0505fa0e4..000000000
--- a/sbt/src/sbt-test/dependency-management/pom-advanced/project/build.properties
+++ /dev/null
@@ -1,2 +0,0 @@
-project.name=Pom Repository Filter
-project.version=1.0
\ No newline at end of file
diff --git a/sbt/src/sbt-test/dependency-management/pom-advanced/project/build/PomRepoTest.scala b/sbt/src/sbt-test/dependency-management/pom-advanced/project/build/PomRepoTest.scala
deleted file mode 100644
index 6670d646b..000000000
--- a/sbt/src/sbt-test/dependency-management/pom-advanced/project/build/PomRepoTest.scala
+++ /dev/null
@@ -1,24 +0,0 @@
-import sbt._
-
-class PomRepoTest(info: ProjectInfo) extends DefaultProject(info)
-{
- val local = "local-maven-repo" at "file://" + (Path.userHome / ".m2" /"repository").absolutePath
- val remote = ScalaToolsSnapshots
-
- override def pomIncludeRepository(r: MavenRepository) =
- if("repo.none".asFile.exists) false else if("repo.all".asFile.exists) true else super.pomIncludeRepository(r)
-
- lazy val checkPom =
- task { args => task { checkPomRepositories(args.toList) } dependsOn(makePom) }
-
- def checkPomRepositories(args: List[String]): Option[String] =
- {
- val repositories = scala.xml.XML.loadFile(pomPath asFile) \\ "repository"
- val extracted = repositories.map { repo => MavenRepository(repo \ "name" text, repo \ "url" text) }
- val expected = args.map(GlobFilter.apply)
- log.info("Extracted: " + extracted.mkString("\n\t", "\n\t", "\n"))
- log.info("Expected: " + args.mkString("\n\t", "\n\t", "\n"))
- (extracted.find { e => !expected.exists(_.accept(e.root)) } map { "Repository should not be exported: " + _ }) orElse
- (expected.find { e => !extracted.exists(r => e.accept(r.root)) } map { "Repository should be exported: " + _ } )
- }
-}
\ No newline at end of file