diff --git a/sbt/src/sbt-test/dependency-management/pom-advanced/build.sbt b/sbt/src/sbt-test/dependency-management/pom-advanced/build.sbt new file mode 100644 index 000000000..96b2d46f9 --- /dev/null +++ b/sbt/src/sbt-test/dependency-management/pom-advanced/build.sbt @@ -0,0 +1,33 @@ +import complete.DefaultParsers._ + +lazy val root = (project in file(".")). + settings( + resolvers ++= Seq(local, Resolver.sonatypeRepo("releases"), Resolver.sonatypeRepo("snapshots")), + InputKey[Unit]("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 addSlash(s: String): String = + s match { + case s if s endsWith "/" => s + case _ => s + "/" + } + +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, addSlash(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 +} 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 deleted file mode 100644 index f2d303be4..000000000 --- a/sbt/src/sbt-test/dependency-management/pom-advanced/project/PomRepoTest.scala +++ /dev/null @@ -1,38 +0,0 @@ - import sbt._ - import Import._ - import Keys._ - import complete.DefaultParsers._ - -object PomRepoTest extends Build -{ - lazy val root = Project("root", file(".")) settings( - resolvers ++= Seq(local, Resolver.sonatypeRepo("releases"), Resolver.sonatypeRepo("snapshots")), - InputKey[Unit]("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 addSlash(s: String): String = - s match { - case s if s endsWith "/" => s - case _ => s + "/" - } - - 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, addSlash(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 - } -}