diff --git a/sbt/src/sbt-test/dependency-management/artifact/project/ArtifactTest.scala b/sbt/src/sbt-test/dependency-management/artifact/project/ArtifactTest.scala
index c4cceac49..397ef934a 100644
--- a/sbt/src/sbt-test/dependency-management/artifact/project/ArtifactTest.scala
+++ b/sbt/src/sbt-test/dependency-management/artifact/project/ArtifactTest.scala
@@ -5,18 +5,19 @@ object ArtifactTest extends Build
{
lazy val projects = Seq(root)
lazy val root = Project("root", file(".")) settings(
- ivyPaths <<= (baseDirectory, target)( (dir, t) => new IvyPaths(dir, Some(t))),
+ ivyPaths <<= (baseDirectory, target)( (dir, t) => new IvyPaths(dir, Some(t / "ivy-cache"))),
publishTo := Some(Resolver.file("Test Publish Repo", file("test-repo"))),
resolvers <<= (resolvers, publishTo)(_ ++ _.toList),
- jarName in Compile := ArtifactName(base := artifactID, version = vers, tpe = classifier, ext = ext, cross = "", config = ""),
- projectID := (if(retrieve) retrieveID else publishedID),
- artifacts := artifact :: Nil
- libraryDependencies ++= (if(retrieve) publishedID :: Nil else Nil),
- // needed to add a jar with a different extension to the classpath
- classpathFilter := "*." + ext,
- check <<= checkTask
+ projectID <<= baseDirectory { base => (if(base / "retrieve" exists) retrieveID else publishedID) },
+ artifact in (Compile, packageBin) := mainArtifact,
+ libraryDependencies <<= (libraryDependencies, baseDirectory) { (deps, base) => deps ++ (if(base / "retrieve" exists) publishedID :: Nil else Nil) },
+ // needed to add a jar with a different type to the managed classpath
+ classpathTypes := Set(tpe),
+ check <<= checkTask(dependencyClasspath),
+ checkFull <<= checkTask(fullClasspath)
)
+ lazy val checkFull = TaskKey[Unit]("check-full")
lazy val check = TaskKey[Unit]("check")
// define strings for defining the artifact
@@ -27,16 +28,16 @@ object ArtifactTest extends Build
def vers = "1.1"
def org = "test"
- def artifact = Artifact(artifactID, tpe, ext, classifier)
+ def mainArtifact = Artifact(artifactID, tpe, ext, classifier)
// define the IDs to use for publishing and retrieving
- def publishedID = org % artifactID % vers artifacts(artifact)
+ def publishedID = org % artifactID % vers artifacts(mainArtifact)
def retrieveID = org % "test-retrieve" % "2.0"
// check that the test class is on the compile classpath, either because it was compiled or because it was properly retrieved
- def checkTask = (fullClasspath in Compile, scalaInstance) map { (cp, si) =>
- val loader = classpath.ClasspathUtilities.toLoader(cp.files, si.loader)
- try { Class.forName("test.Test", false, loader) }
+ def checkTask(classpath: TaskKey[Classpath]) = (classpath in Compile, scalaInstance) map { (cp, si) =>
+ val loader = sbt.classpath.ClasspathUtilities.toLoader(cp.files, si.loader)
+ try { Class.forName("test.Test", false, loader); () }
catch { case _: ClassNotFoundException | _: NoClassDefFoundError => error("Dependency not retrieved properly") }
}
}
diff --git a/sbt/src/sbt-test/dependency-management/artifact/test b/sbt/src/sbt-test/dependency-management/artifact/test
index 2e317d56f..65b6db19b 100644
--- a/sbt/src/sbt-test/dependency-management/artifact/test
+++ b/sbt/src/sbt-test/dependency-management/artifact/test
@@ -1,13 +1,11 @@
# verify that check fails when test class is not present
-> check
-# compile and jar test class
-> package
-# verify that check succeeds
-> check
+# verify that check-full succeeds
+> check-full
# publish test jar to test repository
->publish
+> publish
# delete test jar and verify check fails again
> clean
@@ -15,6 +13,7 @@
# tell project definition to switch to retrieve mode
$ touch retrieve
+> reload
+
# verify that artifact with extension, type, and classifier can be retreieved
-> update
> check
\ No newline at end of file
diff --git a/sbt/src/sbt-test/dependency-management/classifier/build.sbt b/sbt/src/sbt-test/dependency-management/classifier/build.sbt
new file mode 100644
index 000000000..ab96c9fb0
--- /dev/null
+++ b/sbt/src/sbt-test/dependency-management/classifier/build.sbt
@@ -0,0 +1,3 @@
+ivyPaths <<= (baseDirectory, target)( (dir, t) => new IvyPaths(dir, Some(t / "ivy-cache")))
+
+libraryDependencies += "org.testng" % "testng" % "5.7" classifier "jdk15"
diff --git a/sbt/src/sbt-test/dependency-management/classifier/project/build.properties b/sbt/src/sbt-test/dependency-management/classifier/project/build.properties
deleted file mode 100644
index 0f796df80..000000000
--- a/sbt/src/sbt-test/dependency-management/classifier/project/build.properties
+++ /dev/null
@@ -1,2 +0,0 @@
-project.name=Test Classifier
-project.version=1.0
\ No newline at end of file
diff --git a/sbt/src/sbt-test/dependency-management/classifier/project/build/Test.scala b/sbt/src/sbt-test/dependency-management/classifier/project/build/Test.scala
deleted file mode 100644
index 9cf18923a..000000000
--- a/sbt/src/sbt-test/dependency-management/classifier/project/build/Test.scala
+++ /dev/null
@@ -1,7 +0,0 @@
-import sbt._
-
-class Test(info: ProjectInfo) extends DefaultProject(info)
-{
- override def ivyCacheDirectory = Some(outputPath / "ivy-cache")
- val testng = "org.testng" % "testng" % "5.7" classifier "jdk15"
-}
\ No newline at end of file
diff --git a/sbt/src/sbt-test/dependency-management/configurations/build.sbt b/sbt/src/sbt-test/dependency-management/configurations/build.sbt
new file mode 100644
index 000000000..ae702547f
--- /dev/null
+++ b/sbt/src/sbt-test/dependency-management/configurations/build.sbt
@@ -0,0 +1,10 @@
+// the default, but make it explicit
+publishMavenStyle := true
+
+publishTo <<= baseDirectory(bd => Some( Resolver.file("test-repo", bd / "repo") ) )
+
+name := "test"
+
+organization := "org.example"
+
+version := "1.0"
diff --git a/sbt/src/sbt-test/dependency-management/configurations/changes/ivy/TestPublish.sbt b/sbt/src/sbt-test/dependency-management/configurations/changes/ivy/TestPublish.sbt
new file mode 100644
index 000000000..9f1fc169b
--- /dev/null
+++ b/sbt/src/sbt-test/dependency-management/configurations/changes/ivy/TestPublish.sbt
@@ -0,0 +1,11 @@
+publishMavenStyle := false
+
+publishTo <<= baseDirectory { base =>
+ Some( Resolver.file("test-repo", base / "repo")(Patterns(false, Resolver.mavenStyleBasePattern)) )
+}
+
+name := "test-ivy"
+
+organization := "org.example"
+
+version := "1.0"
diff --git a/sbt/src/sbt-test/dependency-management/configurations/changes/ivy/TestPublish.scala b/sbt/src/sbt-test/dependency-management/configurations/changes/ivy/TestPublish.scala
deleted file mode 100644
index 934644b00..000000000
--- a/sbt/src/sbt-test/dependency-management/configurations/changes/ivy/TestPublish.scala
+++ /dev/null
@@ -1,7 +0,0 @@
-import sbt._
-
-class TestPublish(info: ProjectInfo) extends DefaultProject(info)
-{
- override def managedStyle = ManagedStyle.Ivy
- val publishTo = Resolver.file("test-repo", path("repo").asFile)(Patterns(false, Resolver.mavenStyleBasePattern))
-}
\ No newline at end of file
diff --git a/sbt/src/sbt-test/dependency-management/configurations/changes/ivy/TestUse.sbt b/sbt/src/sbt-test/dependency-management/configurations/changes/ivy/TestUse.sbt
new file mode 100644
index 000000000..a29853df8
--- /dev/null
+++ b/sbt/src/sbt-test/dependency-management/configurations/changes/ivy/TestUse.sbt
@@ -0,0 +1,17 @@
+publishMavenStyle := false
+
+resolvers <<= baseDirectory { base =>
+ Resolver.file("test-repo", base / "repo")(Patterns(false, Resolver.mavenStyleBasePattern)) :: Nil
+}
+
+libraryDependencies ++= Seq(
+ "org.example" %% "test-ivy" % "1.0",
+ "org.example" %% "test-ivy" % "1.0" % "test",
+ "org.example" %% "test-ivy" % "1.0" % "runtime"
+)
+
+name := "test-ivy-use"
+
+organization := "test"
+
+version := "1.0"
diff --git a/sbt/src/sbt-test/dependency-management/configurations/changes/ivy/TestUse.scala b/sbt/src/sbt-test/dependency-management/configurations/changes/ivy/TestUse.scala
deleted file mode 100644
index e8f3445ba..000000000
--- a/sbt/src/sbt-test/dependency-management/configurations/changes/ivy/TestUse.scala
+++ /dev/null
@@ -1,11 +0,0 @@
-
-import sbt._
-
-class TestUse(info: ProjectInfo) extends DefaultProject(info)
-{
- override def managedStyle = ManagedStyle.Ivy
- val testLocal = Resolver.file("test-repo", path("repo").asFile)(Patterns(false, Resolver.mavenStyleBasePattern))
- val mavenC = "org.example" %% "test-ivy" % "1.0"
- val mavenT = "org.example" %% "test-ivy" % "1.0" % "test"
- val mavenR = "org.example" %% "test-ivy" % "1.0" % "runtime"
-}
\ No newline at end of file
diff --git a/sbt/src/sbt-test/dependency-management/configurations/changes/maven/TestUse.sbt b/sbt/src/sbt-test/dependency-management/configurations/changes/maven/TestUse.sbt
new file mode 100644
index 000000000..5acddca8b
--- /dev/null
+++ b/sbt/src/sbt-test/dependency-management/configurations/changes/maven/TestUse.sbt
@@ -0,0 +1,15 @@
+resolvers <<= baseDirectory { base =>
+ Resolver.file("test-repo", base / "repo") :: Nil
+}
+
+libraryDependencies ++= Seq(
+ "org.example" %% "test" % "1.0",
+ "org.example" %% "test" % "1.0" % "test",
+ "org.example" %% "test" % "1.0" % "runtime"
+)
+
+name := "test-use"
+
+organization := "test"
+
+version := "1.0"
diff --git a/sbt/src/sbt-test/dependency-management/configurations/changes/maven/TestUse.scala b/sbt/src/sbt-test/dependency-management/configurations/changes/maven/TestUse.scala
deleted file mode 100644
index db2bea94f..000000000
--- a/sbt/src/sbt-test/dependency-management/configurations/changes/maven/TestUse.scala
+++ /dev/null
@@ -1,10 +0,0 @@
-
-import sbt._
-
-class TestUse(info: ProjectInfo) extends DefaultProject(info)
-{
- val testLocal = Resolver.file("test-repo", path("repo").asFile)
- val mavenC = "org.example" %% "test" % "1.0"
- val mavenT = "org.example" %% "test" % "1.0" % "test"
- val mavenR = "org.example" %% "test" % "1.0" % "runtime"
-}
\ No newline at end of file
diff --git a/sbt/src/sbt-test/dependency-management/configurations/project/build.properties b/sbt/src/sbt-test/dependency-management/configurations/project/build.properties
deleted file mode 100644
index f38a35c95..000000000
--- a/sbt/src/sbt-test/dependency-management/configurations/project/build.properties
+++ /dev/null
@@ -1,3 +0,0 @@
-project.name=test
-project.organization=org.example
-project.version=1.0
\ No newline at end of file
diff --git a/sbt/src/sbt-test/dependency-management/configurations/project/build/TestPublish.scala b/sbt/src/sbt-test/dependency-management/configurations/project/build/TestPublish.scala
deleted file mode 100644
index 62c0b1c8a..000000000
--- a/sbt/src/sbt-test/dependency-management/configurations/project/build/TestPublish.scala
+++ /dev/null
@@ -1,7 +0,0 @@
-import sbt._
-
-class TestPublish(info: ProjectInfo) extends DefaultProject(info)
-{
- override def managedStyle = ManagedStyle.Maven // the default, but make it explicit
- val publishTo = Resolver.file("test-repo", path("repo").asFile)
-}
\ No newline at end of file
diff --git a/sbt/src/sbt-test/dependency-management/configurations/test b/sbt/src/sbt-test/dependency-management/configurations/test
index 8d3a67f5b..029ffbda2 100644
--- a/sbt/src/sbt-test/dependency-management/configurations/test
+++ b/sbt/src/sbt-test/dependency-management/configurations/test
@@ -1,43 +1,30 @@
-# publish a jar with Published with managedStyle = ManagedStyle.Maven
+# publish a jar with Published with publishManagedStyle = true
$ copy-file changes/maven/Published.scala src/main/scala/Published.scala
> publish
-# get and compile against each published jar with managedStyle = ManagedStyle.Maven
+# get and compile against each published jar with publishManagedStyle = true
-> set project.name test-use
-> set project.organization test
-$ delete src project/build lib_managed
-$ copy-file changes/maven/TestUse.scala project/build/TestUse.scala
+$ delete src build.sbt target
+$ copy-file changes/maven/TestUse.sbt build.sbt
> reload
$ copy-file changes/maven/Use.scala src/main/scala/Use.scala
--> compile
-
-> update
> compile
-
-# publish a jar with PublishedIvy with managedStyle = ManagedStyle.Ivy
-> set project.name test-ivy
-> set project.organization org.example
-$ delete src project/build lib_managed repo
-$ copy-file changes/ivy/TestPublish.scala project/build/TestPublish.scala
+# publish a jar with PublishedIvy with publishManagedStyle = false
+$ delete src build.sbt target repo
+$ copy-file changes/ivy/TestPublish.sbt build.sbt
> reload
$ copy-file changes/ivy/Published.scala src/main/scala/Published.scala
> publish
-# get and compile against each published jar with managedStyle = ManagedStyle.Ivy
+# get and compile against each published jar with publishManagedStyle = false
-> set project.name test-ivy-use
-> set project.organization test
-$ delete src project/build lib_managed
-$ copy-file changes/ivy/TestUse.scala project/build/TestUse.scala
+$ delete src build.sbt target
+$ copy-file changes/ivy/TestUse.sbt build.sbt
> reload
$ copy-file changes/ivy/Use.scala src/main/scala/Use.scala
--> compile
-
-> update
> compile
\ No newline at end of file
diff --git a/sbt/src/sbt-test/dependency-management/exclude-transitive/project/TestProject.scala b/sbt/src/sbt-test/dependency-management/exclude-transitive/project/TestProject.scala
new file mode 100644
index 000000000..bd6080146
--- /dev/null
+++ b/sbt/src/sbt-test/dependency-management/exclude-transitive/project/TestProject.scala
@@ -0,0 +1,28 @@
+ import sbt._
+ import Keys._
+
+object TestProject extends Build
+{
+ lazy val projects = Seq(root)
+ lazy val root = Project("root", file(".")) settings(
+ ivyPaths <<= (baseDirectory, target)( (dir, t) => new IvyPaths(dir, Some(t / "ivy-cache"))),
+ libraryDependencies += transitive("javax.mail" % "mail" % "1.4.1"),
+ TaskKey("check-transitive") <<= check(true),
+ TaskKey("check-intransitive") <<= check(false)
+ )
+
+ def transitive(dep: ModuleID) =
+ {
+ println("transitive(" + dep + ") = " + file("transitive").exists)
+ if(file("transitive").exists) dep else dep.intransitive()
+ }
+
+ private def check(transitive: Boolean) =
+ (dependencyClasspath in Compile) map { downloaded =>
+ val jars = downloaded.size
+ if(transitive)
+ if(jars <= 1) error("Transitive dependencies not downloaded")
+ else
+ if(jars > 1) error("Transitive dependencies downloaded (" + downloaded.files.mkString(", ") + ")")
+ }
+}
diff --git a/sbt/src/sbt-test/dependency-management/exclude-transitive/project/build.properties b/sbt/src/sbt-test/dependency-management/exclude-transitive/project/build.properties
deleted file mode 100644
index e66951c84..000000000
--- a/sbt/src/sbt-test/dependency-management/exclude-transitive/project/build.properties
+++ /dev/null
@@ -1,2 +0,0 @@
-project.name=Exclude Transitive
-project.version=1.0
diff --git a/sbt/src/sbt-test/dependency-management/exclude-transitive/project/build/src/TestProject.scala b/sbt/src/sbt-test/dependency-management/exclude-transitive/project/build/src/TestProject.scala
deleted file mode 100644
index cf2d2ef40..000000000
--- a/sbt/src/sbt-test/dependency-management/exclude-transitive/project/build/src/TestProject.scala
+++ /dev/null
@@ -1,26 +0,0 @@
-import sbt._
-
-class TestProject(info: ProjectInfo) extends DefaultProject(info)
-{
- def transitive(dep: ModuleID) = if("transitive".asFile.exists) dep else dep.intransitive()
- val javaMail = transitive("javax.mail" % "mail" % "1.4.1")
-
- lazy val checkTransitive = task { check(true) }
- lazy val checkIntransitive = task { check(false) }
-
- private def check(transitive: Boolean) =
- {
- val downloaded = compileClasspath.get
- val jars = downloaded.size
- if(transitive)
- {
- if(jars > 1) None
- else Some("Transitive dependencies not downloaded")
- }
- else
- {
- if(jars == 1) None
- else Some("Transitive dependencies downloaded (" + downloaded.mkString(", ") + ")")
- }
- }
-}
diff --git a/sbt/src/sbt-test/dependency-management/exclude-transitive/test b/sbt/src/sbt-test/dependency-management/exclude-transitive/test
index 3911dabf1..9ed9d122e 100644
--- a/sbt/src/sbt-test/dependency-management/exclude-transitive/test
+++ b/sbt/src/sbt-test/dependency-management/exclude-transitive/test
@@ -1,10 +1,10 @@
# load the project definition with transitive dependencies enabled
# and check that they are not downloaded
-
+$ pause
$ touch transitive
+$ pause
> reload
-
-> update
+$ pause
> check-transitive
-> check-intransitive
@@ -17,7 +17,5 @@ $ delete ivy-cache
$ delete transitive
> reload
-> update
-
-> check-transitive
> check-intransitive
\ No newline at end of file
diff --git a/sbt/src/sbt-test/dependency-management/extra/DefineColor.sbt b/sbt/src/sbt-test/dependency-management/extra/DefineColor.sbt
new file mode 100644
index 000000000..b84a7f219
--- /dev/null
+++ b/sbt/src/sbt-test/dependency-management/extra/DefineColor.sbt
@@ -0,0 +1,15 @@
+ivyPaths <<= (baseDirectory, target)( (dir, t) => new IvyPaths(dir, Some(t / "ivy-cache")))
+
+publishMavenStyle := false
+
+publishTo <<= baseDirectory { base =>
+ Some(Resolver.file("test-repo", base / "repo" / "test")(Resolver.defaultIvyPatterns))
+}
+
+projectID <<= projectID { _.extra("e:color" -> "red") }
+
+organization := "org.scala-tools.sbt"
+
+version := "1.0"
+
+name := "define-color"
\ No newline at end of file
diff --git a/sbt/src/sbt-test/dependency-management/extra/changes/UseColor.sbt b/sbt/src/sbt-test/dependency-management/extra/changes/UseColor.sbt
new file mode 100644
index 000000000..d7aff5e2e
--- /dev/null
+++ b/sbt/src/sbt-test/dependency-management/extra/changes/UseColor.sbt
@@ -0,0 +1,17 @@
+ivyPaths <<= (baseDirectory, target)( (dir, t) => new IvyPaths(dir, Some(t / "ivy-cache")) )
+
+publishMavenStyle := false
+
+resolvers <<= baseDirectory( base =>
+ Resolver.file("test-repo", base / "repo" / "test")(Resolver.defaultIvyPatterns) :: Nil
+)
+
+libraryDependencies <<= baseDirectory { base =>
+ val color = IO.read(base / "color")
+ val dep = "org.scala-tools.sbt" %% "define-color" % "1.0" extra("e:color" -> color)
+ dep :: Nil
+}
+
+organization := "org.example"
+
+name := "use-color"
\ No newline at end of file
diff --git a/sbt/src/sbt-test/dependency-management/extra/changes/UseColor.scala b/sbt/src/sbt-test/dependency-management/extra/changes/UseColor.scala
deleted file mode 100644
index 2b0093e76..000000000
--- a/sbt/src/sbt-test/dependency-management/extra/changes/UseColor.scala
+++ /dev/null
@@ -1,13 +0,0 @@
-import sbt._
-
-class UseColor(info: ProjectInfo) extends DefaultProject(info)
-{
- override def ivyCacheDirectory = Some(outputPath / "ivy-cache")
-
- override def managedStyle = ManagedStyle.Ivy
- val repo = Resolver.file("test-repo", ("repo" / "test").asFile)
- def color = FileUtilities.readString("color".asFile, log).right.getOrElse(error("No color specified"))
- override def libraryDependencies = Set(
- "org.scala-tools.sbt" %% "test-ivy-extra" %"1.0" extra("e:color" -> color)
- )
-}
\ No newline at end of file
diff --git a/sbt/src/sbt-test/dependency-management/extra/changes/color b/sbt/src/sbt-test/dependency-management/extra/changes/color
deleted file mode 100644
index 46f29e8eb..000000000
--- a/sbt/src/sbt-test/dependency-management/extra/changes/color
+++ /dev/null
@@ -1 +0,0 @@
-red
\ No newline at end of file
diff --git a/sbt/src/sbt-test/dependency-management/extra/project/build.properties b/sbt/src/sbt-test/dependency-management/extra/project/build.properties
deleted file mode 100644
index c566cd577..000000000
--- a/sbt/src/sbt-test/dependency-management/extra/project/build.properties
+++ /dev/null
@@ -1,3 +0,0 @@
-project.name=test-ivy-extra
-project.version=1.0
-project.organization=org.scala-tools.sbt
\ No newline at end of file
diff --git a/sbt/src/sbt-test/dependency-management/extra/project/build/DefineColor.scala b/sbt/src/sbt-test/dependency-management/extra/project/build/DefineColor.scala
deleted file mode 100644
index 5d337e24f..000000000
--- a/sbt/src/sbt-test/dependency-management/extra/project/build/DefineColor.scala
+++ /dev/null
@@ -1,10 +0,0 @@
-import sbt._
-
-class DefineColor(info: ProjectInfo) extends DefaultProject(info)
-{
- override def ivyCacheDirectory = Some(outputPath / "ivy-cache")
-
- override def managedStyle = ManagedStyle.Ivy
- val publishTo = Resolver.file("test-repo", ("repo" / "test").asFile)
- override def projectID = super.projectID extra("e:color" -> "red")
-}
\ No newline at end of file
diff --git a/sbt/src/sbt-test/dependency-management/extra/test b/sbt/src/sbt-test/dependency-management/extra/test
index 1d6137036..f49bf0f03 100644
--- a/sbt/src/sbt-test/dependency-management/extra/test
+++ b/sbt/src/sbt-test/dependency-management/extra/test
@@ -1,12 +1,12 @@
> publish
-> set project.name UseColor
-$ delete project/build/
-$ copy-file changes/UseColor.scala project/build/UseColor.scala
+$ delete DefineColor.sbt
+$ copy-file changes/UseColor.sbt UseColor.sbt
$ copy-file changes/blue color
> reload
-> update
$ copy-file changes/red color
+> reload
> update
\ No newline at end of file
diff --git a/sbt/src/sbt-test/dependency-management/info/project/InfoTest.scala b/sbt/src/sbt-test/dependency-management/info/project/InfoTest.scala
new file mode 100644
index 000000000..cd79621da
--- /dev/null
+++ b/sbt/src/sbt-test/dependency-management/info/project/InfoTest.scala
@@ -0,0 +1,40 @@
+ import sbt._
+ import Keys._
+ import scala.xml._
+
+object InfoTest extends Build
+{
+ lazy val projects = Seq(root)
+ lazy val root = Project("root", file(".")) settings(
+ ivyPaths <<= (baseDirectory, target)( (dir, t) => new IvyPaths(dir, Some(t / "ivy-cache"))),
+ ivyXML <<= (baseDirectory, organization, moduleID) apply inlineXML,
+ TaskKey("check-download") <<= checkDownload,
+ delivered <<= deliverLocal map XML.loadFile,
+ TaskKey("check-info") <<= checkInfo
+ )
+ lazy val delivered = TaskKey[NodeSeq]("delivered")
+
+ def inlineXML(baseDirectory: File, organization: String, moduleID: String): NodeSeq =
+ if(baseDirectory / "info" exists)
+ (
+
+
+ ScalaQuery is a type-safe database query API for Scala.
+
+
+ )
+ else
+
+
+ def customInfo = file("info").exists
+ def checkDownload = (dependencyClasspath in Compile) map { cp => if(cp.isEmpty) error("Dependency not downloaded") }
+ def checkInfo = delivered map { d =>
+ if((d \ "info").isEmpty)
+ error("No info tag generated")
+ else if(customInfo)
+ if( !deliveredWithCustom(d) ) error("Expected 'license' and 'description' tags in info tag, got: \n" + (d \ "info"))
+ else
+ if( deliveredWithCustom(d) ) error("Expected empty 'info' tag, got: \n" + (d \ "info"))
+ }
+ def deliveredWithCustom(d: NodeSeq) = !(d \ "info" \ "license").isEmpty && !(d \ "info" \ "description").isEmpty
+}
\ No newline at end of file
diff --git a/sbt/src/sbt-test/dependency-management/info/project/build.properties b/sbt/src/sbt-test/dependency-management/info/project/build.properties
deleted file mode 100644
index 54ea234fa..000000000
--- a/sbt/src/sbt-test/dependency-management/info/project/build.properties
+++ /dev/null
@@ -1,3 +0,0 @@
-project.name=test
-project.org=test
-project.version=1.0
diff --git a/sbt/src/sbt-test/dependency-management/info/project/build/InfoTest.scala b/sbt/src/sbt-test/dependency-management/info/project/build/InfoTest.scala
deleted file mode 100644
index 037d065ce..000000000
--- a/sbt/src/sbt-test/dependency-management/info/project/build/InfoTest.scala
+++ /dev/null
@@ -1,34 +0,0 @@
-import sbt._
-
-class InfoTest(info: ProjectInfo) extends DefaultProject(info)
-{
- override def ivyCacheDirectory = Some(outputPath / "ivy-cache")
-
- override def ivyXML =
- if(customInfo)
- (
-
-
- ScalaQuery is a type-safe database query API for Scala.
-
-
- )
- else
-
-
- def customInfo = "info".asFile.exists
-
- lazy val checkDownload = task { if(compileClasspath.get.isEmpty) Some("Dependency not downloaded") else None }
- lazy val checkInfo = task {
- if((delivered \ "info").isEmpty)
- Some("No info tag generated")
- else if(customInfo)
- if( deliveredWithCustom ) None else Some("Expected 'license' and 'description' tags in info tag, got: \n" + (delivered \ "info"))
- else
- if( deliveredWithCustom ) Some("Expected empty 'info' tag, got: \n" + (delivered \ "info")) else None
- }
- def deliveredWithCustom = !(delivered \ "info" \ "license").isEmpty && !(delivered \ "info" \ "description").isEmpty
- def delivered = scala.xml.XML.loadFile(ivyFile)
-
- def ivyFile = (outputPath * "ivy*.xml").get.toList.head.asFile
-}
\ No newline at end of file
diff --git a/sbt/src/sbt-test/dependency-management/info/test b/sbt/src/sbt-test/dependency-management/info/test
index de451a8d3..b6ae3116d 100644
--- a/sbt/src/sbt-test/dependency-management/info/test
+++ b/sbt/src/sbt-test/dependency-management/info/test
@@ -1,13 +1,9 @@
-> update
> check-download
-> deliver-local
> check-info
> clean
-> clean-lib
$ touch info
+> reload
-> update
> check-download
-> deliver-local
> check-info
\ No newline at end of file
diff --git a/sbt/src/sbt-test/tests/specs-compat/build.sbt b/sbt/src/sbt-test/tests/specs-compat/build.sbt
new file mode 100644
index 000000000..56d0df884
--- /dev/null
+++ b/sbt/src/sbt-test/tests/specs-compat/build.sbt
@@ -0,0 +1 @@
+libraryDependencies += "org.scala-tools.testing" %% "specs" % "1.6.1" intransitive()
diff --git a/sbt/src/sbt-test/tests/specs-compat/test b/sbt/src/sbt-test/tests/specs-compat/test
index 943bb2d7d..1776dbd87 100644
--- a/sbt/src/sbt-test/tests/specs-compat/test
+++ b/sbt/src/sbt-test/tests/specs-compat/test
@@ -1,9 +1,7 @@
-> ++2.7.5
-> update
+> ++ 2.7.5
> test-only Success
-> test-only Failure
-> ++2.7.7
-> update
+> ++ 2.7.7
> test-only Success
-> test-only Failure
\ No newline at end of file