From 9666c641d627a7edb33c00742a4f99920914cefb Mon Sep 17 00:00:00 2001 From: dmharrah Date: Sat, 26 Sep 2009 01:00:00 +0000 Subject: [PATCH] No longer need "->default" in configurations (automatically mapped). git-svn-id: https://simple-build-tool.googlecode.com/svn/trunk@1049 d89573ee-9141-11dd-94d4-bdf5e562f29c --- src/main/scala/sbt/ManageDependencies.scala | 5 +- src/main/scala/sbt/ManagedInterface.scala | 10 ++-- .../configurations/changes/Published.scala | 4 ++ .../configurations/changes/PublishedIvy.scala | 4 ++ .../changes/TestPublishIvyStyle.scala | 7 +++ .../configurations/changes/TestUse.scala | 13 +++++ .../configurations/changes/TestUseIvy.scala | 15 ++++++ .../configurations/changes/Use.scala | 8 +++ .../configurations/changes/build.properties | 3 ++ .../changes/ivy.build.properties | 3 ++ .../changes/ivy.use.build.properties | 3 ++ .../configurations/project/build.properties | 3 ++ .../project/build/TestPublish.scala | 7 +++ .../dependency-management/configurations/test | 49 +++++++++++++++++++ 14 files changed, 126 insertions(+), 8 deletions(-) create mode 100644 src/sbt-test/dependency-management/configurations/changes/Published.scala create mode 100644 src/sbt-test/dependency-management/configurations/changes/PublishedIvy.scala create mode 100644 src/sbt-test/dependency-management/configurations/changes/TestPublishIvyStyle.scala create mode 100644 src/sbt-test/dependency-management/configurations/changes/TestUse.scala create mode 100644 src/sbt-test/dependency-management/configurations/changes/TestUseIvy.scala create mode 100644 src/sbt-test/dependency-management/configurations/changes/Use.scala create mode 100644 src/sbt-test/dependency-management/configurations/changes/build.properties create mode 100644 src/sbt-test/dependency-management/configurations/changes/ivy.build.properties create mode 100644 src/sbt-test/dependency-management/configurations/changes/ivy.use.build.properties create mode 100644 src/sbt-test/dependency-management/configurations/project/build.properties create mode 100644 src/sbt-test/dependency-management/configurations/project/build/TestPublish.scala create mode 100644 src/sbt-test/dependency-management/configurations/test diff --git a/src/main/scala/sbt/ManageDependencies.scala b/src/main/scala/sbt/ManageDependencies.scala index 16d6f2920..3011229be 100644 --- a/src/main/scala/sbt/ManageDependencies.scala +++ b/src/main/scala/sbt/ManageDependencies.scala @@ -383,8 +383,7 @@ object ManageDependencies val module = toDefaultModuleDescriptor(md) val parser = new CustomXmlParser.CustomParser(ivy.getSettings) parser.setMd(module) - val defaultConf = if(defaultConfiguration.contains("->")) defaultConfiguration else (defaultConfiguration + "->default(compile)") - parser.setDefaultConf(defaultConf) + parser.setDefaultConf(defaultConfiguration) addDependencies(module, extraDependencies, parser) module } @@ -626,6 +625,8 @@ object ManageDependencies import XmlModuleDescriptorParser.Parser class CustomParser(settings: IvySettings) extends Parser(CustomXmlParser, settings) with NotNull { + setDefaultConfMapping("*->default(compile)") + def setSource(url: URL) = { super.setResource(new URLResource(url)) diff --git a/src/main/scala/sbt/ManagedInterface.scala b/src/main/scala/sbt/ManagedInterface.scala index 9233c0029..ac8278351 100644 --- a/src/main/scala/sbt/ManagedInterface.scala +++ b/src/main/scala/sbt/ManagedInterface.scala @@ -253,7 +253,10 @@ object Resolver def apply(name: String): FileRepository = FileRepository(name, defaultFileConfiguration, ivyStylePatterns) /** Constructs a file resolver with the given name and base directory. */ def apply(name: String, baseDirectory: File)(implicit basePatterns: Patterns): FileRepository = + { + if(baseDirectory.exists && !baseDirectory.isDirectory) error("Not a directory: " + baseDirectory.getAbsolutePath) else baseDirectory.mkdirs() baseRepository(baseDirectory.toURI)(FileRepository(name, defaultFileConfiguration, _)) + } } object url { @@ -328,12 +331,7 @@ object Configurations private[sbt] val DefaultMavenConfiguration = defaultConfiguration(true) private[sbt] val DefaultIvyConfiguration = defaultConfiguration(false) private[sbt] def DefaultConfiguration(mavenStyle: Boolean) = if(mavenStyle) DefaultMavenConfiguration else DefaultIvyConfiguration - private[sbt] def defaultConfiguration(mavenStyle: Boolean) = - { - val base = if(mavenStyle) Configurations.Compile else Configurations.Default - config(base.name + "->default(compile)") - } - + private[sbt] def defaultConfiguration(mavenStyle: Boolean) = if(mavenStyle) Configurations.Compile else Configurations.Default private[sbt] def removeDuplicates(configs: Iterable[Configuration]) = Set(scala.collection.mutable.Map(configs.map(config => (config.name, config)).toSeq: _*).values.toList: _*) } /** Represents an Ivy configuration. */ diff --git a/src/sbt-test/dependency-management/configurations/changes/Published.scala b/src/sbt-test/dependency-management/configurations/changes/Published.scala new file mode 100644 index 000000000..ddaf589e5 --- /dev/null +++ b/src/sbt-test/dependency-management/configurations/changes/Published.scala @@ -0,0 +1,4 @@ +object Published +{ + val x = 3 +} \ No newline at end of file diff --git a/src/sbt-test/dependency-management/configurations/changes/PublishedIvy.scala b/src/sbt-test/dependency-management/configurations/changes/PublishedIvy.scala new file mode 100644 index 000000000..5c671747c --- /dev/null +++ b/src/sbt-test/dependency-management/configurations/changes/PublishedIvy.scala @@ -0,0 +1,4 @@ +object PublishedIvy +{ + val x = 4 +} \ No newline at end of file diff --git a/src/sbt-test/dependency-management/configurations/changes/TestPublishIvyStyle.scala b/src/sbt-test/dependency-management/configurations/changes/TestPublishIvyStyle.scala new file mode 100644 index 000000000..49ba77e94 --- /dev/null +++ b/src/sbt-test/dependency-management/configurations/changes/TestPublishIvyStyle.scala @@ -0,0 +1,7 @@ +import sbt._ + +class TestPublish(info: ProjectInfo) extends DefaultProject(info) +{ + override def managedStyle = ManagedStyle.Ivy + val publishTo = Resolver.file("test-repo", path("repo").asFile)(Resolver.mavenStylePatterns) +} \ No newline at end of file diff --git a/src/sbt-test/dependency-management/configurations/changes/TestUse.scala b/src/sbt-test/dependency-management/configurations/changes/TestUse.scala new file mode 100644 index 000000000..fa0be9092 --- /dev/null +++ b/src/sbt-test/dependency-management/configurations/changes/TestUse.scala @@ -0,0 +1,13 @@ + +import sbt._ + +class TestUse(info: ProjectInfo) extends DefaultProject(info) +{ + val publishTo = Resolver.file("test-repo", path("repo").asFile) + val published = "test" % "test-ivy" % "1.0" + val publishedT = "test" % "test-ivy" % "1.0" % "test" + val publishedR = "test" % "test-ivy" % "1.0" % "runtime" + val mavenC = "test" % "test" % "1.0" + val mavenT = "test" % "test" % "1.0" % "test" + val mavenR = "test" % "test" % "1.0" % "runtime" +} \ No newline at end of file diff --git a/src/sbt-test/dependency-management/configurations/changes/TestUseIvy.scala b/src/sbt-test/dependency-management/configurations/changes/TestUseIvy.scala new file mode 100644 index 000000000..c9a48c266 --- /dev/null +++ b/src/sbt-test/dependency-management/configurations/changes/TestUseIvy.scala @@ -0,0 +1,15 @@ + +import sbt._ + +class TestUseIvy(info: ProjectInfo) extends DefaultProject(info) +{ + override def managedStyle = ManagedStyle.Ivy + val publishTo = Resolver.file("test-repo", path("repo").asFile) + val published = "test" % "test-ivy" % "1.0" + val publishedT = "test" % "test-ivy" % "1.0" % "test" + val publishedR = "test" % "test-ivy" % "1.0" % "runtime" + + val mavenC = "test" % "test" % "1.0" + val mavenT = "test" % "test" % "1.0" % "test" + val mavenR = "test" % "test" % "1.0" % "runtime" +} \ No newline at end of file diff --git a/src/sbt-test/dependency-management/configurations/changes/Use.scala b/src/sbt-test/dependency-management/configurations/changes/Use.scala new file mode 100644 index 000000000..acedeafb8 --- /dev/null +++ b/src/sbt-test/dependency-management/configurations/changes/Use.scala @@ -0,0 +1,8 @@ +object Use +{ + def y = Published.x +} +object UseIvy +{ + def yi = PublishedIvy.x +} \ No newline at end of file diff --git a/src/sbt-test/dependency-management/configurations/changes/build.properties b/src/sbt-test/dependency-management/configurations/changes/build.properties new file mode 100644 index 000000000..85cb472ff --- /dev/null +++ b/src/sbt-test/dependency-management/configurations/changes/build.properties @@ -0,0 +1,3 @@ +project.name=test-use +project.organization=test +project.version=1.0 \ No newline at end of file diff --git a/src/sbt-test/dependency-management/configurations/changes/ivy.build.properties b/src/sbt-test/dependency-management/configurations/changes/ivy.build.properties new file mode 100644 index 000000000..df088a2cd --- /dev/null +++ b/src/sbt-test/dependency-management/configurations/changes/ivy.build.properties @@ -0,0 +1,3 @@ +project.name=test-ivy +project.organization=test +project.version=1.0 \ No newline at end of file diff --git a/src/sbt-test/dependency-management/configurations/changes/ivy.use.build.properties b/src/sbt-test/dependency-management/configurations/changes/ivy.use.build.properties new file mode 100644 index 000000000..cd8b539bd --- /dev/null +++ b/src/sbt-test/dependency-management/configurations/changes/ivy.use.build.properties @@ -0,0 +1,3 @@ +project.name=test-ivy-use +project.organization=test +project.version=1.0 \ No newline at end of file diff --git a/src/sbt-test/dependency-management/configurations/project/build.properties b/src/sbt-test/dependency-management/configurations/project/build.properties new file mode 100644 index 000000000..22be9896f --- /dev/null +++ b/src/sbt-test/dependency-management/configurations/project/build.properties @@ -0,0 +1,3 @@ +project.name=test +project.organization=test +project.version=1.0 \ No newline at end of file diff --git a/src/sbt-test/dependency-management/configurations/project/build/TestPublish.scala b/src/sbt-test/dependency-management/configurations/project/build/TestPublish.scala new file mode 100644 index 000000000..62c0b1c8a --- /dev/null +++ b/src/sbt-test/dependency-management/configurations/project/build/TestPublish.scala @@ -0,0 +1,7 @@ +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/src/sbt-test/dependency-management/configurations/test b/src/sbt-test/dependency-management/configurations/test new file mode 100644 index 000000000..cd9862b89 --- /dev/null +++ b/src/sbt-test/dependency-management/configurations/test @@ -0,0 +1,49 @@ +# publish a jar with Published with managedStyle = ManagedStyle.Maven + +$ copy-file changes/Published.scala src/main/scala/Published.scala [success] +> publish +[success] + + +# publish a jar with PublishedIvy with managedStyle = ManagedStyle.Ivy + +$ delete src project lib_managed [success] +$ copy-file changes/ivy.build.properties project/build.properties [success] +$ copy-file changes/TestPublishIvyStyle.scala project/build/TestPublish.scala [success] +$ reload [success] +$ copy-file changes/PublishedIvy.scala src/main/scala/PublishedIvy.scala [success] +> publish +[success] + +# get and compile against each published jar with managedStyle = ManagedStyle.Maven + +$ delete src project/build lib_managed [success] +$ copy-file changes/TestUse.scala project/build/TestUse.scala [success] +$ copy-file changes/build.properties project/build.properties [success] +$ reload [success] +$ copy-file changes/Use.scala src/main/scala/Use.scala [success] + +> compile +[failure] + +> update +[success] +> compile +[success] + + +# get and compile against each published jar with managedStyle = ManagedStyle.Ivy + +$ delete src project/build lib_managed [success] +$ copy-file changes/TestUseIvy.scala project/build/TestUseIvy.scala [success] +$ copy-file changes/build.properties project/build.properties [success] +$ reload [success] +$ copy-file changes/Use.scala src/main/scala/Use.scala [success] + +> compile +[failure] + +> update +[success] +> compile +[success] \ No newline at end of file