mirror of https://github.com/sbt/sbt.git
Use ConfigRef in reports
This commit is contained in:
parent
9f2f700762
commit
13e803d199
|
|
@ -72,7 +72,8 @@ lazy val lm = (project in file("librarymanagement"))
|
|||
gigahorseOkhttp,
|
||||
okhttpUrlconnection,
|
||||
sjsonnewScalaJson.value % Optional,
|
||||
scalaTest),
|
||||
scalaTest,
|
||||
scalaCheck),
|
||||
libraryDependencies ++= scalaXml.value,
|
||||
resourceGenerators in Compile += Def.task(
|
||||
Util.generateVersionFile(
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@ final class RetrieveConfiguration private (
|
|||
val retrieveDirectory: java.io.File,
|
||||
val outputPattern: String,
|
||||
val sync: Boolean,
|
||||
val configurationsToRetrieve: Option[Set[sbt.librarymanagement.Configuration]]) extends Serializable {
|
||||
val configurationsToRetrieve: Option[Set[sbt.librarymanagement.ConfigRef]]) extends Serializable {
|
||||
|
||||
private def this(retrieveDirectory: java.io.File, outputPattern: String) = this(retrieveDirectory, outputPattern, false, None)
|
||||
|
||||
|
|
@ -22,7 +22,7 @@ final class RetrieveConfiguration private (
|
|||
override def toString: String = {
|
||||
"RetrieveConfiguration(" + retrieveDirectory + ", " + outputPattern + ", " + sync + ", " + configurationsToRetrieve + ")"
|
||||
}
|
||||
protected[this] def copy(retrieveDirectory: java.io.File = retrieveDirectory, outputPattern: String = outputPattern, sync: Boolean = sync, configurationsToRetrieve: Option[Set[sbt.librarymanagement.Configuration]] = configurationsToRetrieve): RetrieveConfiguration = {
|
||||
protected[this] def copy(retrieveDirectory: java.io.File = retrieveDirectory, outputPattern: String = outputPattern, sync: Boolean = sync, configurationsToRetrieve: Option[Set[sbt.librarymanagement.ConfigRef]] = configurationsToRetrieve): RetrieveConfiguration = {
|
||||
new RetrieveConfiguration(retrieveDirectory, outputPattern, sync, configurationsToRetrieve)
|
||||
}
|
||||
def withRetrieveDirectory(retrieveDirectory: java.io.File): RetrieveConfiguration = {
|
||||
|
|
@ -34,12 +34,12 @@ final class RetrieveConfiguration private (
|
|||
def withSync(sync: Boolean): RetrieveConfiguration = {
|
||||
copy(sync = sync)
|
||||
}
|
||||
def withConfigurationsToRetrieve(configurationsToRetrieve: Option[Set[sbt.librarymanagement.Configuration]]): RetrieveConfiguration = {
|
||||
def withConfigurationsToRetrieve(configurationsToRetrieve: Option[Set[sbt.librarymanagement.ConfigRef]]): RetrieveConfiguration = {
|
||||
copy(configurationsToRetrieve = configurationsToRetrieve)
|
||||
}
|
||||
}
|
||||
object RetrieveConfiguration {
|
||||
|
||||
def apply(retrieveDirectory: java.io.File, outputPattern: String): RetrieveConfiguration = new RetrieveConfiguration(retrieveDirectory, outputPattern, false, None)
|
||||
def apply(retrieveDirectory: java.io.File, outputPattern: String, sync: Boolean, configurationsToRetrieve: Option[Set[sbt.librarymanagement.Configuration]]): RetrieveConfiguration = new RetrieveConfiguration(retrieveDirectory, outputPattern, sync, configurationsToRetrieve)
|
||||
def apply(retrieveDirectory: java.io.File, outputPattern: String, sync: Boolean, configurationsToRetrieve: Option[Set[sbt.librarymanagement.ConfigRef]]): RetrieveConfiguration = new RetrieveConfiguration(retrieveDirectory, outputPattern, sync, configurationsToRetrieve)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@
|
|||
package sbt.librarymanagement
|
||||
final class Caller private (
|
||||
val caller: sbt.librarymanagement.ModuleID,
|
||||
val callerConfigurations: Vector[String],
|
||||
val callerConfigurations: Vector[sbt.librarymanagement.ConfigRef],
|
||||
val callerExtraAttributes: Map[String, String],
|
||||
val isForceDependency: Boolean,
|
||||
val isChangingDependency: Boolean,
|
||||
|
|
@ -25,13 +25,13 @@ final class Caller private (
|
|||
override def toString: String = {
|
||||
s"$caller"
|
||||
}
|
||||
protected[this] def copy(caller: sbt.librarymanagement.ModuleID = caller, callerConfigurations: Vector[String] = callerConfigurations, callerExtraAttributes: Map[String, String] = callerExtraAttributes, isForceDependency: Boolean = isForceDependency, isChangingDependency: Boolean = isChangingDependency, isTransitiveDependency: Boolean = isTransitiveDependency, isDirectlyForceDependency: Boolean = isDirectlyForceDependency): Caller = {
|
||||
protected[this] def copy(caller: sbt.librarymanagement.ModuleID = caller, callerConfigurations: Vector[sbt.librarymanagement.ConfigRef] = callerConfigurations, callerExtraAttributes: Map[String, String] = callerExtraAttributes, isForceDependency: Boolean = isForceDependency, isChangingDependency: Boolean = isChangingDependency, isTransitiveDependency: Boolean = isTransitiveDependency, isDirectlyForceDependency: Boolean = isDirectlyForceDependency): Caller = {
|
||||
new Caller(caller, callerConfigurations, callerExtraAttributes, isForceDependency, isChangingDependency, isTransitiveDependency, isDirectlyForceDependency)
|
||||
}
|
||||
def withCaller(caller: sbt.librarymanagement.ModuleID): Caller = {
|
||||
copy(caller = caller)
|
||||
}
|
||||
def withCallerConfigurations(callerConfigurations: Vector[String]): Caller = {
|
||||
def withCallerConfigurations(callerConfigurations: Vector[sbt.librarymanagement.ConfigRef]): Caller = {
|
||||
copy(callerConfigurations = callerConfigurations)
|
||||
}
|
||||
def withCallerExtraAttributes(callerExtraAttributes: Map[String, String]): Caller = {
|
||||
|
|
@ -52,5 +52,5 @@ final class Caller private (
|
|||
}
|
||||
object Caller {
|
||||
|
||||
def apply(caller: sbt.librarymanagement.ModuleID, callerConfigurations: Vector[String], callerExtraAttributes: Map[String, String], isForceDependency: Boolean, isChangingDependency: Boolean, isTransitiveDependency: Boolean, isDirectlyForceDependency: Boolean): Caller = new Caller(caller, callerConfigurations, callerExtraAttributes, isForceDependency, isChangingDependency, isTransitiveDependency, isDirectlyForceDependency)
|
||||
def apply(caller: sbt.librarymanagement.ModuleID, callerConfigurations: Vector[sbt.librarymanagement.ConfigRef], callerExtraAttributes: Map[String, String], isForceDependency: Boolean, isChangingDependency: Boolean, isTransitiveDependency: Boolean, isDirectlyForceDependency: Boolean): Caller = new Caller(caller, callerConfigurations, callerExtraAttributes, isForceDependency, isChangingDependency, isTransitiveDependency, isDirectlyForceDependency)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -5,14 +5,14 @@
|
|||
// DO NOT EDIT MANUALLY
|
||||
package sbt.librarymanagement
|
||||
import _root_.sjsonnew.{ Unbuilder, Builder, JsonFormat, deserializationError }
|
||||
trait CallerFormats { self: sbt.librarymanagement.ModuleIDFormats with sjsonnew.BasicJsonProtocol =>
|
||||
trait CallerFormats { self: sbt.librarymanagement.ModuleIDFormats with sbt.librarymanagement.ConfigRefFormats with sjsonnew.BasicJsonProtocol =>
|
||||
implicit lazy val CallerFormat: JsonFormat[sbt.librarymanagement.Caller] = new JsonFormat[sbt.librarymanagement.Caller] {
|
||||
override def read[J](jsOpt: Option[J], unbuilder: Unbuilder[J]): sbt.librarymanagement.Caller = {
|
||||
jsOpt match {
|
||||
case Some(js) =>
|
||||
unbuilder.beginObject(js)
|
||||
val caller = unbuilder.readField[sbt.librarymanagement.ModuleID]("caller")
|
||||
val callerConfigurations = unbuilder.readField[Vector[String]]("callerConfigurations")
|
||||
val callerConfigurations = unbuilder.readField[Vector[sbt.librarymanagement.ConfigRef]]("callerConfigurations")
|
||||
val callerExtraAttributes = unbuilder.readField[Map[String, String]]("callerExtraAttributes")
|
||||
val isForceDependency = unbuilder.readField[Boolean]("isForceDependency")
|
||||
val isChangingDependency = unbuilder.readField[Boolean]("isChangingDependency")
|
||||
|
|
|
|||
|
|
@ -19,7 +19,7 @@ final class ConfigRef private (
|
|||
37 * (37 * (17 + "ConfigRef".##) + name.##)
|
||||
}
|
||||
override def toString: String = {
|
||||
"ConfigRef(" + name + ")"
|
||||
name
|
||||
}
|
||||
protected[this] def copy(name: String = name): ConfigRef = {
|
||||
new ConfigRef(name)
|
||||
|
|
|
|||
|
|
@ -7,7 +7,7 @@ package sbt.librarymanagement
|
|||
/** Provides information about resolution of a single configuration. */
|
||||
final class ConfigurationReport private (
|
||||
/** the configuration this report is for. */
|
||||
val configuration: String,
|
||||
val configuration: sbt.librarymanagement.ConfigRef,
|
||||
/** a sequence containing one report for each module resolved for this configuration. */
|
||||
val modules: Vector[sbt.librarymanagement.ModuleReport],
|
||||
/** a sequence containing one report for each org/name, which may or may not be part of the final resolution. */
|
||||
|
|
@ -27,10 +27,10 @@ final class ConfigurationReport private (
|
|||
(if (details.isEmpty) modules.mkString + details.flatMap(_.modules).filter(_.evicted).map("\t\t(EVICTED) " + _ + "\n").mkString
|
||||
else details.mkString)
|
||||
}
|
||||
protected[this] def copy(configuration: String = configuration, modules: Vector[sbt.librarymanagement.ModuleReport] = modules, details: Vector[sbt.librarymanagement.OrganizationArtifactReport] = details): ConfigurationReport = {
|
||||
protected[this] def copy(configuration: sbt.librarymanagement.ConfigRef = configuration, modules: Vector[sbt.librarymanagement.ModuleReport] = modules, details: Vector[sbt.librarymanagement.OrganizationArtifactReport] = details): ConfigurationReport = {
|
||||
new ConfigurationReport(configuration, modules, details)
|
||||
}
|
||||
def withConfiguration(configuration: String): ConfigurationReport = {
|
||||
def withConfiguration(configuration: sbt.librarymanagement.ConfigRef): ConfigurationReport = {
|
||||
copy(configuration = configuration)
|
||||
}
|
||||
def withModules(modules: Vector[sbt.librarymanagement.ModuleReport]): ConfigurationReport = {
|
||||
|
|
@ -42,5 +42,5 @@ final class ConfigurationReport private (
|
|||
}
|
||||
object ConfigurationReport {
|
||||
|
||||
def apply(configuration: String, modules: Vector[sbt.librarymanagement.ModuleReport], details: Vector[sbt.librarymanagement.OrganizationArtifactReport]): ConfigurationReport = new ConfigurationReport(configuration, modules, details)
|
||||
def apply(configuration: sbt.librarymanagement.ConfigRef, modules: Vector[sbt.librarymanagement.ModuleReport], details: Vector[sbt.librarymanagement.OrganizationArtifactReport]): ConfigurationReport = new ConfigurationReport(configuration, modules, details)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -5,13 +5,13 @@
|
|||
// DO NOT EDIT MANUALLY
|
||||
package sbt.librarymanagement
|
||||
import _root_.sjsonnew.{ Unbuilder, Builder, JsonFormat, deserializationError }
|
||||
trait ConfigurationReportFormats { self: sbt.librarymanagement.ModuleReportFormats with sbt.librarymanagement.OrganizationArtifactReportFormats with sjsonnew.BasicJsonProtocol =>
|
||||
trait ConfigurationReportFormats { self: sbt.librarymanagement.ConfigRefFormats with sbt.librarymanagement.ModuleReportFormats with sbt.librarymanagement.OrganizationArtifactReportFormats with sjsonnew.BasicJsonProtocol =>
|
||||
implicit lazy val ConfigurationReportFormat: JsonFormat[sbt.librarymanagement.ConfigurationReport] = new JsonFormat[sbt.librarymanagement.ConfigurationReport] {
|
||||
override def read[J](jsOpt: Option[J], unbuilder: Unbuilder[J]): sbt.librarymanagement.ConfigurationReport = {
|
||||
jsOpt match {
|
||||
case Some(js) =>
|
||||
unbuilder.beginObject(js)
|
||||
val configuration = unbuilder.readField[String]("configuration")
|
||||
val configuration = unbuilder.readField[sbt.librarymanagement.ConfigRef]("configuration")
|
||||
val modules = unbuilder.readField[Vector[sbt.librarymanagement.ModuleReport]]("modules")
|
||||
val details = unbuilder.readField[Vector[sbt.librarymanagement.OrganizationArtifactReport]]("details")
|
||||
unbuilder.endObject()
|
||||
|
|
|
|||
|
|
@ -17,7 +17,7 @@ final class InclExclRule private (
|
|||
val organization: String,
|
||||
val name: String,
|
||||
val artifact: String,
|
||||
val configurations: Vector[String],
|
||||
val configurations: Vector[sbt.librarymanagement.ConfigRef],
|
||||
val crossVersion: sbt.librarymanagement.CrossVersion) extends Serializable {
|
||||
|
||||
private def this() = this("*", "*", "*", Vector.empty, sbt.librarymanagement.Disabled())
|
||||
|
|
@ -32,7 +32,7 @@ final class InclExclRule private (
|
|||
override def toString: String = {
|
||||
"InclExclRule(" + organization + ", " + name + ", " + artifact + ", " + configurations + ", " + crossVersion + ")"
|
||||
}
|
||||
protected[this] def copy(organization: String = organization, name: String = name, artifact: String = artifact, configurations: Vector[String] = configurations, crossVersion: sbt.librarymanagement.CrossVersion = crossVersion): InclExclRule = {
|
||||
protected[this] def copy(organization: String = organization, name: String = name, artifact: String = artifact, configurations: Vector[sbt.librarymanagement.ConfigRef] = configurations, crossVersion: sbt.librarymanagement.CrossVersion = crossVersion): InclExclRule = {
|
||||
new InclExclRule(organization, name, artifact, configurations, crossVersion)
|
||||
}
|
||||
def withOrganization(organization: String): InclExclRule = {
|
||||
|
|
@ -44,7 +44,7 @@ final class InclExclRule private (
|
|||
def withArtifact(artifact: String): InclExclRule = {
|
||||
copy(artifact = artifact)
|
||||
}
|
||||
def withConfigurations(configurations: Vector[String]): InclExclRule = {
|
||||
def withConfigurations(configurations: Vector[sbt.librarymanagement.ConfigRef]): InclExclRule = {
|
||||
copy(configurations = configurations)
|
||||
}
|
||||
def withCrossVersion(crossVersion: sbt.librarymanagement.CrossVersion): InclExclRule = {
|
||||
|
|
@ -54,5 +54,5 @@ final class InclExclRule private (
|
|||
object InclExclRule extends sbt.librarymanagement.InclExclRuleFunctions {
|
||||
|
||||
def apply(): InclExclRule = new InclExclRule("*", "*", "*", Vector.empty, sbt.librarymanagement.Disabled())
|
||||
def apply(organization: String, name: String, artifact: String, configurations: Vector[String], crossVersion: sbt.librarymanagement.CrossVersion): InclExclRule = new InclExclRule(organization, name, artifact, configurations, crossVersion)
|
||||
def apply(organization: String, name: String, artifact: String, configurations: Vector[sbt.librarymanagement.ConfigRef], crossVersion: sbt.librarymanagement.CrossVersion): InclExclRule = new InclExclRule(organization, name, artifact, configurations, crossVersion)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@
|
|||
// DO NOT EDIT MANUALLY
|
||||
package sbt.librarymanagement
|
||||
import _root_.sjsonnew.{ Unbuilder, Builder, JsonFormat, deserializationError }
|
||||
trait InclExclRuleFormats { self: sbt.librarymanagement.CrossVersionFormats with sjsonnew.BasicJsonProtocol =>
|
||||
trait InclExclRuleFormats { self: sbt.librarymanagement.ConfigRefFormats with sbt.librarymanagement.CrossVersionFormats with sjsonnew.BasicJsonProtocol =>
|
||||
implicit lazy val InclExclRuleFormat: JsonFormat[sbt.librarymanagement.InclExclRule] = new JsonFormat[sbt.librarymanagement.InclExclRule] {
|
||||
override def read[J](jsOpt: Option[J], unbuilder: Unbuilder[J]): sbt.librarymanagement.InclExclRule = {
|
||||
jsOpt match {
|
||||
|
|
@ -14,7 +14,7 @@ implicit lazy val InclExclRuleFormat: JsonFormat[sbt.librarymanagement.InclExclR
|
|||
val organization = unbuilder.readField[String]("organization")
|
||||
val name = unbuilder.readField[String]("name")
|
||||
val artifact = unbuilder.readField[String]("artifact")
|
||||
val configurations = unbuilder.readField[Vector[String]]("configurations")
|
||||
val configurations = unbuilder.readField[Vector[sbt.librarymanagement.ConfigRef]]("configurations")
|
||||
val crossVersion = unbuilder.readField[sbt.librarymanagement.CrossVersion]("crossVersion")
|
||||
unbuilder.endObject()
|
||||
sbt.librarymanagement.InclExclRule(organization, name, artifact, configurations, crossVersion)
|
||||
|
|
|
|||
|
|
@ -24,7 +24,7 @@ final class ModuleReport private (
|
|||
val extraAttributes: Map[String, String],
|
||||
val isDefault: Option[Boolean],
|
||||
val branch: Option[String],
|
||||
val configurations: Vector[String],
|
||||
val configurations: Vector[sbt.librarymanagement.ConfigRef],
|
||||
val licenses: Vector[scala.Tuple2[String, Option[String]]],
|
||||
val callers: Vector[sbt.librarymanagement.Caller]) extends sbt.librarymanagement.ModuleReportExtra with Serializable {
|
||||
|
||||
|
|
@ -41,7 +41,7 @@ final class ModuleReport private (
|
|||
s"\t\t$module: " +
|
||||
(if (arts.size <= 1) "" else "\n\t\t\t") + arts.mkString("\n\t\t\t") + "\n"
|
||||
}
|
||||
protected[this] def copy(module: sbt.librarymanagement.ModuleID = module, artifacts: Vector[scala.Tuple2[sbt.librarymanagement.Artifact, java.io.File]] = artifacts, missingArtifacts: Vector[sbt.librarymanagement.Artifact] = missingArtifacts, status: Option[String] = status, publicationDate: Option[java.util.Calendar] = publicationDate, resolver: Option[String] = resolver, artifactResolver: Option[String] = artifactResolver, evicted: Boolean = evicted, evictedData: Option[String] = evictedData, evictedReason: Option[String] = evictedReason, problem: Option[String] = problem, homepage: Option[String] = homepage, extraAttributes: Map[String, String] = extraAttributes, isDefault: Option[Boolean] = isDefault, branch: Option[String] = branch, configurations: Vector[String] = configurations, licenses: Vector[scala.Tuple2[String, Option[String]]] = licenses, callers: Vector[sbt.librarymanagement.Caller] = callers): ModuleReport = {
|
||||
protected[this] def copy(module: sbt.librarymanagement.ModuleID = module, artifacts: Vector[scala.Tuple2[sbt.librarymanagement.Artifact, java.io.File]] = artifacts, missingArtifacts: Vector[sbt.librarymanagement.Artifact] = missingArtifacts, status: Option[String] = status, publicationDate: Option[java.util.Calendar] = publicationDate, resolver: Option[String] = resolver, artifactResolver: Option[String] = artifactResolver, evicted: Boolean = evicted, evictedData: Option[String] = evictedData, evictedReason: Option[String] = evictedReason, problem: Option[String] = problem, homepage: Option[String] = homepage, extraAttributes: Map[String, String] = extraAttributes, isDefault: Option[Boolean] = isDefault, branch: Option[String] = branch, configurations: Vector[sbt.librarymanagement.ConfigRef] = configurations, licenses: Vector[scala.Tuple2[String, Option[String]]] = licenses, callers: Vector[sbt.librarymanagement.Caller] = callers): ModuleReport = {
|
||||
new ModuleReport(module, artifacts, missingArtifacts, status, publicationDate, resolver, artifactResolver, evicted, evictedData, evictedReason, problem, homepage, extraAttributes, isDefault, branch, configurations, licenses, callers)
|
||||
}
|
||||
def withModule(module: sbt.librarymanagement.ModuleID): ModuleReport = {
|
||||
|
|
@ -89,7 +89,7 @@ final class ModuleReport private (
|
|||
def withBranch(branch: Option[String]): ModuleReport = {
|
||||
copy(branch = branch)
|
||||
}
|
||||
def withConfigurations(configurations: Vector[String]): ModuleReport = {
|
||||
def withConfigurations(configurations: Vector[sbt.librarymanagement.ConfigRef]): ModuleReport = {
|
||||
copy(configurations = configurations)
|
||||
}
|
||||
def withLicenses(licenses: Vector[scala.Tuple2[String, Option[String]]]): ModuleReport = {
|
||||
|
|
@ -102,5 +102,5 @@ final class ModuleReport private (
|
|||
object ModuleReport {
|
||||
|
||||
def apply(module: sbt.librarymanagement.ModuleID, artifacts: Vector[scala.Tuple2[sbt.librarymanagement.Artifact, java.io.File]], missingArtifacts: Vector[sbt.librarymanagement.Artifact]): ModuleReport = new ModuleReport(module, artifacts, missingArtifacts, None, None, None, None, false, None, None, None, None, Map.empty, None, None, Vector.empty, Vector.empty, Vector.empty)
|
||||
def apply(module: sbt.librarymanagement.ModuleID, artifacts: Vector[scala.Tuple2[sbt.librarymanagement.Artifact, java.io.File]], missingArtifacts: Vector[sbt.librarymanagement.Artifact], status: Option[String], publicationDate: Option[java.util.Calendar], resolver: Option[String], artifactResolver: Option[String], evicted: Boolean, evictedData: Option[String], evictedReason: Option[String], problem: Option[String], homepage: Option[String], extraAttributes: Map[String, String], isDefault: Option[Boolean], branch: Option[String], configurations: Vector[String], licenses: Vector[scala.Tuple2[String, Option[String]]], callers: Vector[sbt.librarymanagement.Caller]): ModuleReport = new ModuleReport(module, artifacts, missingArtifacts, status, publicationDate, resolver, artifactResolver, evicted, evictedData, evictedReason, problem, homepage, extraAttributes, isDefault, branch, configurations, licenses, callers)
|
||||
def apply(module: sbt.librarymanagement.ModuleID, artifacts: Vector[scala.Tuple2[sbt.librarymanagement.Artifact, java.io.File]], missingArtifacts: Vector[sbt.librarymanagement.Artifact], status: Option[String], publicationDate: Option[java.util.Calendar], resolver: Option[String], artifactResolver: Option[String], evicted: Boolean, evictedData: Option[String], evictedReason: Option[String], problem: Option[String], homepage: Option[String], extraAttributes: Map[String, String], isDefault: Option[Boolean], branch: Option[String], configurations: Vector[sbt.librarymanagement.ConfigRef], licenses: Vector[scala.Tuple2[String, Option[String]]], callers: Vector[sbt.librarymanagement.Caller]): ModuleReport = new ModuleReport(module, artifacts, missingArtifacts, status, publicationDate, resolver, artifactResolver, evicted, evictedData, evictedReason, problem, homepage, extraAttributes, isDefault, branch, configurations, licenses, callers)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@
|
|||
// DO NOT EDIT MANUALLY
|
||||
package sbt.librarymanagement
|
||||
import _root_.sjsonnew.{ Unbuilder, Builder, JsonFormat, deserializationError }
|
||||
trait ModuleReportFormats { self: sbt.librarymanagement.ModuleIDFormats with sbt.librarymanagement.ArtifactFormats with sbt.librarymanagement.CallerFormats with sjsonnew.BasicJsonProtocol =>
|
||||
trait ModuleReportFormats { self: sbt.librarymanagement.ModuleIDFormats with sbt.librarymanagement.ArtifactFormats with sbt.librarymanagement.ConfigRefFormats with sbt.librarymanagement.CallerFormats with sjsonnew.BasicJsonProtocol =>
|
||||
implicit lazy val ModuleReportFormat: JsonFormat[sbt.librarymanagement.ModuleReport] = new JsonFormat[sbt.librarymanagement.ModuleReport] {
|
||||
override def read[J](jsOpt: Option[J], unbuilder: Unbuilder[J]): sbt.librarymanagement.ModuleReport = {
|
||||
jsOpt match {
|
||||
|
|
@ -26,7 +26,7 @@ implicit lazy val ModuleReportFormat: JsonFormat[sbt.librarymanagement.ModuleRep
|
|||
val extraAttributes = unbuilder.readField[Map[String, String]]("extraAttributes")
|
||||
val isDefault = unbuilder.readField[Option[Boolean]]("isDefault")
|
||||
val branch = unbuilder.readField[Option[String]]("branch")
|
||||
val configurations = unbuilder.readField[Vector[String]]("configurations")
|
||||
val configurations = unbuilder.readField[Vector[sbt.librarymanagement.ConfigRef]]("configurations")
|
||||
val licenses = unbuilder.readField[Vector[scala.Tuple2[String, Option[String]]]]("licenses")
|
||||
val callers = unbuilder.readField[Vector[sbt.librarymanagement.Caller]]("callers")
|
||||
unbuilder.endObject()
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@
|
|||
// DO NOT EDIT MANUALLY
|
||||
package sbt.librarymanagement
|
||||
import _root_.sjsonnew.{ Unbuilder, Builder, JsonFormat, deserializationError }
|
||||
trait RetrieveConfigurationFormats { self: sbt.librarymanagement.ConfigurationFormats with sjsonnew.BasicJsonProtocol =>
|
||||
trait RetrieveConfigurationFormats { self: sbt.librarymanagement.ConfigRefFormats with sjsonnew.BasicJsonProtocol =>
|
||||
implicit lazy val RetrieveConfigurationFormat: JsonFormat[sbt.internal.librarymanagement.RetrieveConfiguration] = new JsonFormat[sbt.internal.librarymanagement.RetrieveConfiguration] {
|
||||
override def read[J](jsOpt: Option[J], unbuilder: Unbuilder[J]): sbt.internal.librarymanagement.RetrieveConfiguration = {
|
||||
jsOpt match {
|
||||
|
|
@ -14,7 +14,7 @@ implicit lazy val RetrieveConfigurationFormat: JsonFormat[sbt.internal.libraryma
|
|||
val retrieveDirectory = unbuilder.readField[java.io.File]("retrieveDirectory")
|
||||
val outputPattern = unbuilder.readField[String]("outputPattern")
|
||||
val sync = unbuilder.readField[Boolean]("sync")
|
||||
val configurationsToRetrieve = unbuilder.readField[Option[Set[sbt.librarymanagement.Configuration]]]("configurationsToRetrieve")
|
||||
val configurationsToRetrieve = unbuilder.readField[Option[Set[sbt.librarymanagement.ConfigRef]]]("configurationsToRetrieve")
|
||||
unbuilder.endObject()
|
||||
sbt.internal.librarymanagement.RetrieveConfiguration(retrieveDirectory, outputPattern, sync, configurationsToRetrieve)
|
||||
case None =>
|
||||
|
|
|
|||
|
|
@ -52,7 +52,7 @@
|
|||
"type": "record",
|
||||
"fields": [
|
||||
{ "name": "caller", "type": "sbt.librarymanagement.ModuleID" },
|
||||
{ "name": "callerConfigurations", "type": "String*" },
|
||||
{ "name": "callerConfigurations", "type": "sbt.librarymanagement.ConfigRef*" },
|
||||
{ "name": "callerExtraAttributes", "type": "Map[String, String]" },
|
||||
{ "name": "isForceDependency", "type": "boolean" },
|
||||
{ "name": "isChangingDependency", "type": "boolean" },
|
||||
|
|
@ -76,7 +76,8 @@
|
|||
"doc": [ "The name of the configuration that eventually get used by Maven." ]
|
||||
}
|
||||
],
|
||||
"parentsCompanion": "sbt.librarymanagement.ConfigRefFunctions"
|
||||
"parentsCompanion": "sbt.librarymanagement.ConfigRefFunctions",
|
||||
"toString": "name"
|
||||
},
|
||||
{
|
||||
"name": "ConfigurationReport",
|
||||
|
|
@ -88,7 +89,7 @@
|
|||
],
|
||||
"parents": "sbt.librarymanagement.ConfigurationReportExtra",
|
||||
"fields": [
|
||||
{ "name": "configuration", "type": "String", "doc": [ "the configuration this report is for." ] },
|
||||
{ "name": "configuration", "type": "sbt.librarymanagement.ConfigRef", "doc": [ "the configuration this report is for." ] },
|
||||
{
|
||||
"name": "modules",
|
||||
"type": "sbt.librarymanagement.ModuleReport*",
|
||||
|
|
@ -233,7 +234,7 @@
|
|||
{ "name": "organization", "type": "String", "default": "\"*\"", "since": "0.0.1" },
|
||||
{ "name": "name", "type": "String", "default": "\"*\"", "since": "0.0.1" },
|
||||
{ "name": "artifact", "type": "String", "default": "\"*\"", "since": "0.0.1" },
|
||||
{ "name": "configurations", "type": "String*", "default": "Vector.empty", "since": "0.0.1" },
|
||||
{ "name": "configurations", "type": "sbt.librarymanagement.ConfigRef*", "default": "Vector.empty", "since": "0.0.1" },
|
||||
{ "name": "crossVersion", "type": "sbt.librarymanagement.CrossVersion", "default": "sbt.librarymanagement.Disabled()", "since": "0.0.1"}
|
||||
],
|
||||
"parentsCompanion": "sbt.librarymanagement.InclExclRuleFunctions"
|
||||
|
|
@ -351,7 +352,7 @@
|
|||
{ "name": "extraAttributes", "type": "Map[String, String]", "default": "Map.empty", "since": "0.0.1" },
|
||||
{ "name": "isDefault", "type": "Option[Boolean]", "default": "None", "since": "0.0.1" },
|
||||
{ "name": "branch", "type": "Option[String]", "default": "None", "since": "0.0.1" },
|
||||
{ "name": "configurations", "type": "String*", "default": "Vector.empty", "since": "0.0.1" },
|
||||
{ "name": "configurations", "type": "sbt.librarymanagement.ConfigRef*", "default": "Vector.empty", "since": "0.0.1" },
|
||||
{ "name": "licenses", "type": "scala.Tuple2[String, Option[String]]*", "default": "Vector.empty", "since": "0.0.1" },
|
||||
{ "name": "callers", "type": "sbt.librarymanagement.Caller*", "default": "Vector.empty", "since": "0.0.1" }
|
||||
],
|
||||
|
|
@ -805,8 +806,8 @@
|
|||
"fields": [
|
||||
{ "name": "retrieveDirectory", "type": "java.io.File" },
|
||||
{ "name": "outputPattern", "type": "String" },
|
||||
{ "name": "sync", "type": "boolean", "default": "false", "since": "0.0.1" },
|
||||
{ "name": "configurationsToRetrieve", "type": "Option[Set[sbt.librarymanagement.Configuration]]", "default": "None", "since": "0.0.1" }
|
||||
{ "name": "sync", "type": "boolean", "default": "false", "since": "0.0.1" },
|
||||
{ "name": "configurationsToRetrieve", "type": "Option[Set[sbt.librarymanagement.ConfigRef]]", "default": "None", "since": "0.0.1" }
|
||||
]
|
||||
},
|
||||
{
|
||||
|
|
|
|||
|
|
@ -829,7 +829,7 @@ private[sbt] object IvySbt {
|
|||
IvyScala.excludeRule(
|
||||
excls.organization,
|
||||
excls.name,
|
||||
excls.configurations,
|
||||
excls.configurations map { _.name },
|
||||
excls.artifact
|
||||
)
|
||||
)
|
||||
|
|
@ -842,7 +842,7 @@ private[sbt] object IvySbt {
|
|||
IvyScala.includeRule(
|
||||
incls.organization,
|
||||
incls.name,
|
||||
incls.configurations,
|
||||
incls.configurations map { _.name },
|
||||
incls.artifact
|
||||
)
|
||||
)
|
||||
|
|
@ -877,7 +877,7 @@ private[sbt] object IvySbt {
|
|||
val exclude = CrossVersion.substituteCross(exclude0, ivyScala)
|
||||
val confs =
|
||||
if (exclude.configurations.isEmpty) moduleID.getConfigurationsNames.toList
|
||||
else exclude.configurations
|
||||
else exclude.configurations map { _.name }
|
||||
val excludeRule =
|
||||
IvyScala.excludeRule(exclude.organization, exclude.name, confs, exclude.artifact)
|
||||
moduleID.addExcludeRule(excludeRule)
|
||||
|
|
|
|||
|
|
@ -541,19 +541,15 @@ object IvyActions {
|
|||
config: RetrieveConfiguration
|
||||
): UpdateReport = {
|
||||
val copyChecksums = ivy.getVariable(ConvertResolver.ManagedChecksums).toBoolean
|
||||
val toRetrieve = config.configurationsToRetrieve
|
||||
val toRetrieve: Option[Set[ConfigRef]] = config.configurationsToRetrieve
|
||||
val base = config.retrieveDirectory
|
||||
val pattern = config.outputPattern
|
||||
val configurationNames = toRetrieve match {
|
||||
case None => None
|
||||
case Some(configs) => Some(configs.map(_.name))
|
||||
}
|
||||
val existingFiles = PathFinder(base).allPaths.get filterNot { _.isDirectory }
|
||||
val toCopy = new collection.mutable.HashSet[(File, File)]
|
||||
val retReport = report retrieve { (conf, mid, art, cached) =>
|
||||
configurationNames match {
|
||||
val retReport = report retrieve { (conf: ConfigRef, mid, art, cached) =>
|
||||
toRetrieve match {
|
||||
case None => performRetrieve(conf, mid, art, base, pattern, cached, copyChecksums, toCopy)
|
||||
case Some(names) if names(conf) =>
|
||||
case Some(refs) if refs(conf) =>
|
||||
performRetrieve(conf, mid, art, base, pattern, cached, copyChecksums, toCopy)
|
||||
case _ => cached
|
||||
}
|
||||
|
|
@ -572,7 +568,7 @@ object IvyActions {
|
|||
}
|
||||
|
||||
private def performRetrieve(
|
||||
conf: String,
|
||||
conf: ConfigRef,
|
||||
mid: ModuleID,
|
||||
art: Artifact,
|
||||
base: File,
|
||||
|
|
@ -603,7 +599,7 @@ object IvyActions {
|
|||
}
|
||||
|
||||
private def retrieveTarget(
|
||||
conf: String,
|
||||
conf: ConfigRef,
|
||||
mid: ModuleID,
|
||||
art: Artifact,
|
||||
base: File,
|
||||
|
|
@ -611,7 +607,7 @@ object IvyActions {
|
|||
): File =
|
||||
new File(base, substitute(conf, mid, art, pattern))
|
||||
|
||||
private def substitute(conf: String, mid: ModuleID, art: Artifact, pattern: String): String = {
|
||||
private def substitute(conf: ConfigRef, mid: ModuleID, art: Artifact, pattern: String): String = {
|
||||
val mextra = IvySbt.javaMap(mid.extraAttributes, true)
|
||||
val aextra = IvySbt.extra(art, true)
|
||||
IvyPatternHelper.substitute(
|
||||
|
|
@ -623,7 +619,7 @@ object IvyActions {
|
|||
art.name,
|
||||
art.`type`,
|
||||
art.extension,
|
||||
conf,
|
||||
conf.name,
|
||||
null,
|
||||
mextra,
|
||||
aextra
|
||||
|
|
|
|||
|
|
@ -89,7 +89,7 @@ object IvyRetrieve {
|
|||
def toCaller(caller: IvyCaller): Caller = {
|
||||
val m = toModuleID(caller.getModuleRevisionId)
|
||||
val callerConfigurations = caller.getCallerConfigurations.toVector collect {
|
||||
case x if nonEmptyString(x).isDefined => x
|
||||
case x if nonEmptyString(x).isDefined => ConfigRef(x)
|
||||
}
|
||||
val ddOpt = Option(caller.getDependencyDescriptor)
|
||||
val (extraAttributes, isForce, isChanging, isTransitive, isDirectlyForce) = ddOpt match {
|
||||
|
|
@ -167,7 +167,9 @@ object IvyRetrieve {
|
|||
case _ => dep.getResolvedId.getExtraAttributes
|
||||
})
|
||||
val isDefault = Option(dep.getDescriptor) map { _.isDefault }
|
||||
val configurations = dep.getConfigurations(confReport.getConfiguration).toVector
|
||||
val configurations = dep.getConfigurations(confReport.getConfiguration).toVector map {
|
||||
ConfigRef(_)
|
||||
}
|
||||
val licenses: Vector[(String, Option[String])] = mdOpt match {
|
||||
case Some(md) =>
|
||||
md.getLicenses.toVector collect {
|
||||
|
|
@ -235,7 +237,7 @@ object IvyRetrieve {
|
|||
UpdateStats(report.getResolveTime, report.getDownloadTime, report.getDownloadSize, false)
|
||||
def configurationReport(confReport: ConfigurationResolveReport): ConfigurationReport =
|
||||
ConfigurationReport(
|
||||
confReport.getConfiguration,
|
||||
ConfigRef(confReport.getConfiguration),
|
||||
moduleReports(confReport),
|
||||
organizationArtifactReports(confReport)
|
||||
)
|
||||
|
|
|
|||
|
|
@ -35,7 +35,7 @@ private[sbt] object JsonUtil {
|
|||
def toLite(ur: UpdateReport): UpdateReportLite =
|
||||
UpdateReportLite(ur.configurations map { cr =>
|
||||
ConfigurationReportLite(
|
||||
cr.configuration,
|
||||
cr.configuration.name,
|
||||
cr.details map {
|
||||
oar =>
|
||||
OrganizationArtifactReport(
|
||||
|
|
@ -92,7 +92,7 @@ private[sbt] object JsonUtil {
|
|||
!mr.evicted && mr.problem.isEmpty
|
||||
}
|
||||
}
|
||||
ConfigurationReport(cr.configuration, modules, details)
|
||||
ConfigurationReport(ConfigRef(cr.configuration), modules, details)
|
||||
}
|
||||
UpdateReport(cachedDescriptor, configReports, stats, Map.empty)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -512,14 +512,16 @@ private[sbt] trait CachedResolutionResolveEngine extends ResolveEngine {
|
|||
)
|
||||
val configReports = rootModuleConfigs map { conf =>
|
||||
log.debug("::: -----------")
|
||||
val crs = reports flatMap { _.configurations filter { _.configuration == conf.getName } }
|
||||
mergeConfigurationReports(conf.getName, crs, os, log)
|
||||
val crs = reports flatMap {
|
||||
_.configurations filter { _.configuration.name == conf.getName }
|
||||
}
|
||||
mergeConfigurationReports(ConfigRef(conf.getName), crs, os, log)
|
||||
}
|
||||
UpdateReport(cachedDescriptor, configReports, stats, Map.empty)
|
||||
}
|
||||
// memory usage 62%, of which 58% is in mergeOrganizationArtifactReports
|
||||
def mergeConfigurationReports(
|
||||
rootModuleConf: String,
|
||||
rootModuleConf: ConfigRef,
|
||||
reports: Vector[ConfigurationReport],
|
||||
os: Vector[IvyOverride],
|
||||
log: Logger
|
||||
|
|
@ -539,7 +541,7 @@ private[sbt] trait CachedResolutionResolveEngine extends ResolveEngine {
|
|||
* Returns a tuple of (merged org + name combo, newly evicted modules)
|
||||
*/
|
||||
def mergeOrganizationArtifactReports(
|
||||
rootModuleConf: String,
|
||||
rootModuleConf: ConfigRef,
|
||||
reports0: Vector[OrganizationArtifactReport],
|
||||
os: Vector[IvyOverride],
|
||||
log: Logger
|
||||
|
|
@ -735,7 +737,7 @@ private[sbt] trait CachedResolutionResolveEngine extends ResolveEngine {
|
|||
* Returns a touple of (surviving modules ++ non-conflicting modules, newly evicted modules).
|
||||
*/
|
||||
def mergeModuleReports(
|
||||
rootModuleConf: String,
|
||||
rootModuleConf: ConfigRef,
|
||||
modules: Vector[ModuleReport],
|
||||
os: Vector[IvyOverride],
|
||||
log: Logger
|
||||
|
|
@ -787,7 +789,7 @@ private[sbt] trait CachedResolutionResolveEngine extends ResolveEngine {
|
|||
* This transitively evicts any non-evicted modules whose only callers are newly evicted.
|
||||
*/
|
||||
def transitivelyEvict(
|
||||
rootModuleConf: String,
|
||||
rootModuleConf: ConfigRef,
|
||||
pairs: List[(String, String)],
|
||||
reports0: Map[(String, String), Vector[OrganizationArtifactReport]],
|
||||
evicted0: Vector[ModuleReport],
|
||||
|
|
@ -833,7 +835,7 @@ private[sbt] trait CachedResolutionResolveEngine extends ResolveEngine {
|
|||
* which may be because Ivy makes all Maven dependencies as forced="true".
|
||||
*/
|
||||
def resolveConflict(
|
||||
rootModuleConf: String,
|
||||
rootModuleConf: ConfigRef,
|
||||
conflicts: Vector[ModuleReport],
|
||||
os: Vector[IvyOverride],
|
||||
log: Logger
|
||||
|
|
@ -945,7 +947,7 @@ private[sbt] trait CachedResolutionResolveEngine extends ResolveEngine {
|
|||
}
|
||||
// These are the configurations from the original project we want to resolve.
|
||||
val rootModuleConfs = md0.getConfigurations.toVector
|
||||
val configurations0 = ur.configurations.toVector
|
||||
val configurations0: Vector[ConfigurationReport] = ur.configurations.toVector
|
||||
// This is how md looks from md0 via dd's mapping.
|
||||
val remappedConfigs0: Map[String, Vector[String]] = Map(rootModuleConfs map { conf0 =>
|
||||
val remapped
|
||||
|
|
@ -969,7 +971,7 @@ private[sbt] trait CachedResolutionResolveEngine extends ResolveEngine {
|
|||
val remappedCRs = configurations0 filter { cr =>
|
||||
remappedConfigs(conf0.getName) contains cr.configuration
|
||||
}
|
||||
mergeConfigurationReports(conf0.getName, remappedCRs, os, log)
|
||||
mergeConfigurationReports(ConfigRef(conf0.getName), remappedCRs, os, log)
|
||||
}
|
||||
UpdateReport(ur.cachedDescriptor, configurations, ur.stats, ur.stamps)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -14,6 +14,7 @@ object Configurations {
|
|||
def defaultInternal: Seq[Configuration] = Seq(CompileInternal, RuntimeInternal, TestInternal)
|
||||
def auxiliary: Seq[Configuration] = Seq(Pom)
|
||||
def names(cs: Seq[Configuration]) = cs.map(_.name)
|
||||
def refs(cs: Seq[Configuration]) = cs.map(_.toConfigRef)
|
||||
|
||||
lazy val RuntimeInternal = optionalInternal(Runtime)
|
||||
lazy val TestInternal = fullInternal(Test)
|
||||
|
|
|
|||
|
|
@ -28,7 +28,7 @@ trait DependencyFilterExtra {
|
|||
}
|
||||
def configurationFilter(name: NameFilter = AllPassFilter): ConfigurationFilter =
|
||||
new ConfigurationFilter {
|
||||
def apply(c: String): Boolean = name.accept(c)
|
||||
def apply(c: ConfigRef): Boolean = name.accept(c.name)
|
||||
}
|
||||
}
|
||||
object DependencyFilter extends DependencyFilterExtra {
|
||||
|
|
@ -38,7 +38,7 @@ object DependencyFilter extends DependencyFilterExtra {
|
|||
artifact: ArtifactFilter = artifactFilter()
|
||||
): DependencyFilter =
|
||||
new DependencyFilter {
|
||||
def apply(c: String, m: ModuleID, a: Artifact): Boolean =
|
||||
def apply(c: ConfigRef, m: ModuleID, a: Artifact): Boolean =
|
||||
configuration(c) && module(m) && artifact(a)
|
||||
}
|
||||
def apply(
|
||||
|
|
@ -47,7 +47,7 @@ object DependencyFilter extends DependencyFilterExtra {
|
|||
combine: (Boolean, Boolean) => Boolean
|
||||
): DependencyFilter =
|
||||
new DependencyFilter {
|
||||
def apply(c: String, m: ModuleID, a: Artifact): Boolean = combine(x(c, m, a), y(c, m, a))
|
||||
def apply(c: ConfigRef, m: ModuleID, a: Artifact): Boolean = combine(x(c, m, a), y(c, m, a))
|
||||
}
|
||||
def allPass: DependencyFilter = configurationFilter()
|
||||
implicit def fnToModuleFilter(f: ModuleID => Boolean): ModuleFilter = new ModuleFilter {
|
||||
|
|
@ -56,12 +56,12 @@ object DependencyFilter extends DependencyFilterExtra {
|
|||
implicit def fnToArtifactFilter(f: Artifact => Boolean): ArtifactFilter = new ArtifactFilter {
|
||||
def apply(m: Artifact) = f(m)
|
||||
}
|
||||
implicit def fnToConfigurationFilter(f: String => Boolean): ConfigurationFilter =
|
||||
new ConfigurationFilter { def apply(c: String) = f(c) }
|
||||
implicit def fnToConfigurationFilter(f: ConfigRef => Boolean): ConfigurationFilter =
|
||||
new ConfigurationFilter { def apply(c: ConfigRef) = f(c) }
|
||||
implicit def subDepFilterToFn[Arg](f: SubDepFilter[Arg, _]): Arg => Boolean = f apply _
|
||||
}
|
||||
trait DependencyFilter {
|
||||
def apply(configuration: String, module: ModuleID, artifact: Artifact): Boolean
|
||||
def apply(configuration: ConfigRef, module: ModuleID, artifact: Artifact): Boolean
|
||||
final def &&(o: DependencyFilter) = DependencyFilter(this, o, _ && _)
|
||||
final def ||(o: DependencyFilter) = DependencyFilter(this, o, _ || _)
|
||||
final def --(o: DependencyFilter) = DependencyFilter(this, o, _ && !_)
|
||||
|
|
@ -80,20 +80,20 @@ trait ModuleFilter extends SubDepFilter[ModuleID, ModuleFilter] {
|
|||
protected final def make(f: ModuleID => Boolean) = new ModuleFilter {
|
||||
def apply(m: ModuleID) = f(m)
|
||||
}
|
||||
final def apply(configuration: String, module: ModuleID, artifact: Artifact): Boolean =
|
||||
final def apply(configuration: ConfigRef, module: ModuleID, artifact: Artifact): Boolean =
|
||||
apply(module)
|
||||
}
|
||||
trait ArtifactFilter extends SubDepFilter[Artifact, ArtifactFilter] {
|
||||
protected final def make(f: Artifact => Boolean) = new ArtifactFilter {
|
||||
def apply(m: Artifact) = f(m)
|
||||
}
|
||||
final def apply(configuration: String, module: ModuleID, artifact: Artifact): Boolean =
|
||||
final def apply(configuration: ConfigRef, module: ModuleID, artifact: Artifact): Boolean =
|
||||
apply(artifact)
|
||||
}
|
||||
trait ConfigurationFilter extends SubDepFilter[String, ConfigurationFilter] {
|
||||
protected final def make(f: String => Boolean) = new ConfigurationFilter {
|
||||
def apply(m: String) = f(m)
|
||||
trait ConfigurationFilter extends SubDepFilter[ConfigRef, ConfigurationFilter] {
|
||||
protected final def make(f: ConfigRef => Boolean) = new ConfigurationFilter {
|
||||
def apply(m: ConfigRef) = f(m)
|
||||
}
|
||||
final def apply(configuration: String, module: ModuleID, artifact: Artifact): Boolean =
|
||||
final def apply(configuration: ConfigRef, module: ModuleID, artifact: Artifact): Boolean =
|
||||
apply(configuration)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@ import sbt.util.ShowLines
|
|||
import sbt.internal.librarymanagement.{ InlineConfiguration, IvySbt }
|
||||
|
||||
final class EvictionWarningOptions private[sbt] (
|
||||
val configurations: Seq[Configuration],
|
||||
val configurations: Seq[ConfigRef],
|
||||
val warnScalaVersionEviction: Boolean,
|
||||
val warnDirectEvictions: Boolean,
|
||||
val warnTransitiveEvictions: Boolean,
|
||||
|
|
@ -16,9 +16,7 @@ final class EvictionWarningOptions private[sbt] (
|
|||
val showCallers: Boolean,
|
||||
val guessCompatible: Function1[(ModuleID, Option[ModuleID], Option[IvyScala]), Boolean]
|
||||
) {
|
||||
private[sbt] def configStrings = configurations map { _.name }
|
||||
|
||||
def withConfigurations(configurations: Seq[Configuration]): EvictionWarningOptions =
|
||||
def withConfigurations(configurations: Seq[ConfigRef]): EvictionWarningOptions =
|
||||
copy(configurations = configurations)
|
||||
def withWarnScalaVersionEviction(warnScalaVersionEviction: Boolean): EvictionWarningOptions =
|
||||
copy(warnScalaVersionEviction = warnScalaVersionEviction)
|
||||
|
|
@ -36,7 +34,7 @@ final class EvictionWarningOptions private[sbt] (
|
|||
copy(guessCompatible = guessCompatible)
|
||||
|
||||
private[sbt] def copy(
|
||||
configurations: Seq[Configuration] = configurations,
|
||||
configurations: Seq[ConfigRef] = configurations,
|
||||
warnScalaVersionEviction: Boolean = warnScalaVersionEviction,
|
||||
warnDirectEvictions: Boolean = warnDirectEvictions,
|
||||
warnTransitiveEvictions: Boolean = warnTransitiveEvictions,
|
||||
|
|
@ -193,7 +191,7 @@ object EvictionWarning {
|
|||
): Seq[OrganizationArtifactReport] = {
|
||||
val buffer: mutable.ListBuffer[OrganizationArtifactReport] = mutable.ListBuffer()
|
||||
val confs = report.configurations filter { x =>
|
||||
options.configStrings contains x.configuration
|
||||
options.configurations contains x.configuration
|
||||
}
|
||||
confs flatMap { confReport =>
|
||||
confReport.details map { detail =>
|
||||
|
|
|
|||
|
|
@ -69,7 +69,7 @@ final class RichUpdateReport(report: UpdateReport) {
|
|||
}
|
||||
|
||||
private[sbt] def substitute(
|
||||
f: (String, ModuleID, Vector[(Artifact, File)]) => Vector[(Artifact, File)]
|
||||
f: (ConfigRef, ModuleID, Vector[(Artifact, File)]) => Vector[(Artifact, File)]
|
||||
): UpdateReport =
|
||||
moduleReportMap { (configuration, modReport) =>
|
||||
val newArtifacts = f(configuration, modReport.module, modReport.artifacts)
|
||||
|
|
@ -78,15 +78,15 @@ final class RichUpdateReport(report: UpdateReport) {
|
|||
.withMissingArtifacts(modReport.missingArtifacts)
|
||||
}
|
||||
|
||||
def toSeq: Seq[(String, ModuleID, Artifact, File)] = toVector
|
||||
def toVector: Vector[(String, ModuleID, Artifact, File)] =
|
||||
def toSeq: Seq[(ConfigRef, ModuleID, Artifact, File)] = toVector
|
||||
def toVector: Vector[(ConfigRef, ModuleID, Artifact, File)] =
|
||||
for {
|
||||
confReport <- report.configurations
|
||||
modReport <- confReport.modules
|
||||
(artifact, file) <- modReport.artifacts
|
||||
} yield (confReport.configuration, modReport.module, artifact, file)
|
||||
|
||||
def allMissing: Vector[(String, ModuleID, Artifact)] =
|
||||
def allMissing: Vector[(ConfigRef, ModuleID, Artifact)] =
|
||||
for {
|
||||
confReport <- report.configurations
|
||||
modReport <- confReport.modules
|
||||
|
|
@ -99,7 +99,7 @@ final class RichUpdateReport(report: UpdateReport) {
|
|||
.withMissingArtifacts((modReport.missingArtifacts ++ f(modReport.module)).distinct)
|
||||
}
|
||||
|
||||
private[sbt] def moduleReportMap(f: (String, ModuleReport) => ModuleReport): UpdateReport = {
|
||||
private[sbt] def moduleReportMap(f: (ConfigRef, ModuleReport) => ModuleReport): UpdateReport = {
|
||||
val newConfigurations = report.configurations.map { confReport =>
|
||||
import confReport._
|
||||
val newModules = modules map { modReport =>
|
||||
|
|
|
|||
|
|
@ -7,7 +7,7 @@ import java.io.File
|
|||
import java.{ util => ju }
|
||||
|
||||
abstract class ConfigurationReportExtra {
|
||||
def configuration: String
|
||||
def configuration: ConfigRef
|
||||
def modules: Vector[ModuleReport]
|
||||
def details: Vector[OrganizationArtifactReport]
|
||||
|
||||
|
|
@ -28,7 +28,7 @@ abstract class ConfigurationReportExtra {
|
|||
} else module
|
||||
}
|
||||
|
||||
def retrieve(f: (String, ModuleID, Artifact, File) => File): ConfigurationReport =
|
||||
def retrieve(f: (ConfigRef, ModuleID, Artifact, File) => File): ConfigurationReport =
|
||||
ConfigurationReport(configuration, modules map {
|
||||
_.retrieve((mid, art, file) => f(configuration, mid, art, file))
|
||||
}, details)
|
||||
|
|
@ -50,7 +50,7 @@ abstract class ModuleReportExtra {
|
|||
def extraAttributes: Map[String, String]
|
||||
def isDefault: Option[Boolean]
|
||||
def branch: Option[String]
|
||||
def configurations: Vector[String]
|
||||
def configurations: Vector[ConfigRef]
|
||||
def licenses: Vector[(String, Option[String])]
|
||||
def callers: Vector[Caller]
|
||||
|
||||
|
|
@ -115,7 +115,7 @@ abstract class ModuleReportExtra {
|
|||
extraAttributes: Map[String, String] = extraAttributes,
|
||||
isDefault: Option[Boolean] = isDefault,
|
||||
branch: Option[String] = branch,
|
||||
configurations: Vector[String] = configurations,
|
||||
configurations: Vector[ConfigRef] = configurations,
|
||||
licenses: Vector[(String, Option[String])] = licenses,
|
||||
callers: Vector[Caller] = callers
|
||||
): ModuleReport
|
||||
|
|
@ -144,12 +144,12 @@ abstract class UpdateReportExtra {
|
|||
}
|
||||
}
|
||||
|
||||
def retrieve(f: (String, ModuleID, Artifact, File) => File): UpdateReport =
|
||||
def retrieve(f: (ConfigRef, ModuleID, Artifact, File) => File): UpdateReport =
|
||||
UpdateReport(cachedDescriptor, configurations map { _ retrieve f }, stats, stamps)
|
||||
|
||||
/** Gets the report for the given configuration, or `None` if the configuration was not resolved.*/
|
||||
def configuration(s: String) = configurations.find(_.configuration == s)
|
||||
def configuration(s: ConfigRef) = configurations.find(_.configuration == s)
|
||||
|
||||
/** Gets the names of all resolved configurations. This `UpdateReport` contains one `ConfigurationReport` for each configuration in this list. */
|
||||
def allConfigurations: Seq[String] = configurations.map(_.configuration)
|
||||
def allConfigurations: Vector[ConfigRef] = configurations.map(_.configuration)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -57,7 +57,7 @@ class DMSerializationSpec extends UnitSpec {
|
|||
UpdateStats(0, 0, 0, false),
|
||||
Map(new File("./foo") -> 0))
|
||||
lazy val configurationReportExample =
|
||||
ConfigurationReport("compile",
|
||||
ConfigurationReport(ConfigRef("compile"),
|
||||
Vector(moduleReportExample),
|
||||
Vector(organizationArtifactReportExample))
|
||||
lazy val organizationArtifactReportExample =
|
||||
|
|
|
|||
|
|
@ -28,7 +28,7 @@ class IvyRepoSpec extends BaseIvySpecification with DependencyBuilders {
|
|||
val report = ivyUpdate(m)
|
||||
|
||||
import Inside._
|
||||
inside(report.configuration("compile").map(_.modules)) {
|
||||
inside(report.configuration(ConfigRef("compile")).map(_.modules)) {
|
||||
case Some(Seq(mr)) =>
|
||||
inside(mr.artifacts) {
|
||||
case Seq((ar, _)) =>
|
||||
|
|
@ -82,7 +82,7 @@ class IvyRepoSpec extends BaseIvySpecification with DependencyBuilders {
|
|||
log)
|
||||
|
||||
import Inside._
|
||||
inside(report2.configuration("compile").map(_.modules)) {
|
||||
inside(report2.configuration(ConfigRef("compile")).map(_.modules)) {
|
||||
case Some(Seq(mr)) =>
|
||||
inside(mr.artifacts) {
|
||||
case Seq((ar, _)) =>
|
||||
|
|
|
|||
|
|
@ -46,6 +46,7 @@ object Dependencies {
|
|||
val scalaCompiler = Def.setting { "org.scala-lang" % "scala-compiler" % scalaVersion.value }
|
||||
val scalaXml = scala211Module("scala-xml", "1.0.5")
|
||||
val scalaTest = "org.scalatest" %% "scalatest" % "3.0.1" % Test
|
||||
val scalaCheck = "org.scalacheck" %% "scalacheck" % "1.13.4" % Test
|
||||
val sjsonnew = Def.setting { "com.eed3si9n" %% "sjson-new-core" % contrabandSjsonNewVersion.value }
|
||||
val sjsonnewScalaJson = Def.setting { "com.eed3si9n" %% "sjson-new-scalajson" % contrabandSjsonNewVersion.value }
|
||||
val gigahorseOkhttp = "com.eed3si9n" %% "gigahorse-okhttp" % "0.3.0"
|
||||
|
|
|
|||
Loading…
Reference in New Issue