From 76a1f12b1068b49d4ac50e6f77a1d6a617971511 Mon Sep 17 00:00:00 2001 From: Dale Wijnand Date: Fri, 17 Jun 2016 09:01:32 +0200 Subject: [PATCH 1/5] Remove scalacOptions that are already defined in sbt-houserules > show lm/scalacOptions [info] List(-encoding, utf8, -deprecation, -feature, -unchecked, -Xlint, -language:higherKinds, -language:implicitConversions, -Xfuture, -Yinline-warnings, -Yno-adapted-args, -Ywarn-dead-code, -Ywarn-numeric-widen, -Ywarn-value-discard, -encoding, utf8, -deprecation, -feature, -unchecked, -Xlint, -language:higherKinds, -language:implicitConversions, -Xfuture, -Yinline-warnings, -Xfatal-warnings, -Yno-adapted-args, -Ywarn-dead-code, -Ywarn-numeric-widen, -Ywarn-value-discard) [success] Total time: 0 s, completed 17-Jun-2016 09:00:40 > git diff [info] diff --git a/build.sbt b/build.sbt [info] index 254bb64..fed7303 100644 [info] --- a/build.sbt [info] +++ b/build.sbt [info] @@ -16,21 +16,7 @@ def commonSettings: Seq[Setting[_]] = Seq( [info] incOptions := incOptions.value.withNameHashing(true), [info] crossScalaVersions := Seq(scala210, scala211), [info] resolvers += Resolver.sonatypeRepo("public"), [info] - scalacOptions ++= Seq( [info] - "-encoding", "utf8", [info] - "-deprecation", [info] - "-feature", [info] - "-unchecked", [info] - "-Xlint", [info] - "-language:higherKinds", [info] - "-language:implicitConversions", [info] - "-Xfuture", [info] - "-Yinline-warnings", [info] - "-Xfatal-warnings", [info] - "-Yno-adapted-args", [info] - "-Ywarn-dead-code", [info] - "-Ywarn-numeric-widen", [info] - "-Ywarn-value-discard"), [info] + scalacOptions += "-Xfatal-warnings", [info] previousArtifact := None, // Some(organization.value %% moduleName.value % "1.0.0"), [info] publishArtifact in Compile := true, [info] publishArtifact in Test := false RELOAD > reload [info] Loading global plugins from /Users/dnw/.dotfiles/.sbt/0.13/plugins [info] Loading project definition from /d/sbt-library-management/project [info] Set current project to LM Root (in build file:/d/sbt-library-management/) > show lm/scalacOptions [info] List(-encoding, utf8, -deprecation, -feature, -unchecked, -Xlint, -language:higherKinds, -language:implicitConversions, -Xfuture, -Yinline-warnings, -Yno-adapted-args, -Ywarn-dead-code, -Ywarn-numeric-widen, -Ywarn-value-discard, -Xfatal-warnings) --- build.sbt | 16 +--------------- 1 file changed, 1 insertion(+), 15 deletions(-) diff --git a/build.sbt b/build.sbt index 254bb647d..fed730335 100644 --- a/build.sbt +++ b/build.sbt @@ -16,21 +16,7 @@ def commonSettings: Seq[Setting[_]] = Seq( incOptions := incOptions.value.withNameHashing(true), crossScalaVersions := Seq(scala210, scala211), resolvers += Resolver.sonatypeRepo("public"), - scalacOptions ++= Seq( - "-encoding", "utf8", - "-deprecation", - "-feature", - "-unchecked", - "-Xlint", - "-language:higherKinds", - "-language:implicitConversions", - "-Xfuture", - "-Yinline-warnings", - "-Xfatal-warnings", - "-Yno-adapted-args", - "-Ywarn-dead-code", - "-Ywarn-numeric-widen", - "-Ywarn-value-discard"), + scalacOptions += "-Xfatal-warnings", previousArtifact := None, // Some(organization.value %% moduleName.value % "1.0.0"), publishArtifact in Compile := true, publishArtifact in Test := false From 7db91141e1021579741b0bdd081b531b78b580cc Mon Sep 17 00:00:00 2001 From: Dale Wijnand Date: Fri, 17 Jun 2016 09:03:23 +0200 Subject: [PATCH 2/5] Remove re-setting publishArtifact in Test, defined in commonSettings > show root/test:publishArtifact [info] lm/test:publishArtifact [info] false [info] root/test:publishArtifact [info] false > git diff [info] diff --git a/build.sbt b/build.sbt [info] index fed7303..6f1fb03 100644 [info] --- a/build.sbt [info] +++ b/build.sbt [info] @@ -37,7 +37,6 @@ lazy val root = (project in file(".")). [info] publish := {}, [info] publishLocal := {}, [info] publishArtifact in Compile := false, [info] - publishArtifact in Test := false, [info] publishArtifact := false, [info] customCommands [info] ) [info] @@ -50,7 +49,6 @@ lazy val lm = (project in file("librarymanagement")). [info] utilLogging, sbtIO, utilTesting % Test, [info] utilCollection, utilCompletion, ivy, jsch, sbtSerialization, scalaReflect.value, launcherInterface), [info] resourceGenerators in Compile <+= (version, resourceManaged, streams, compile in Compile) map Util.generateVersionFile, [info] - publishArtifact in Test := false, [info] binaryIssueFilters ++= Seq() [info] ) [info] RELOAD > reload [info] Loading global plugins from /Users/dnw/.dotfiles/.sbt/0.13/plugins [info] Loading project definition from /d/sbt-library-management/project [info] Set current project to LM Root (in build file:/d/sbt-library-management/) > show root/test:publishArtifact [info] lm/test:publishArtifact [info] false [info] root/test:publishArtifact [info] false --- build.sbt | 2 -- 1 file changed, 2 deletions(-) diff --git a/build.sbt b/build.sbt index fed730335..6f1fb0363 100644 --- a/build.sbt +++ b/build.sbt @@ -37,7 +37,6 @@ lazy val root = (project in file(".")). publish := {}, publishLocal := {}, publishArtifact in Compile := false, - publishArtifact in Test := false, publishArtifact := false, customCommands ) @@ -50,7 +49,6 @@ lazy val lm = (project in file("librarymanagement")). utilLogging, sbtIO, utilTesting % Test, utilCollection, utilCompletion, ivy, jsch, sbtSerialization, scalaReflect.value, launcherInterface), resourceGenerators in Compile <+= (version, resourceManaged, streams, compile in Compile) map Util.generateVersionFile, - publishArtifact in Test := false, binaryIssueFilters ++= Seq() ) From 9bf0da7bec90ab8496ddf2253d1052567fedc42f Mon Sep 17 00:00:00 2001 From: Dale Wijnand Date: Fri, 17 Jun 2016 09:04:49 +0200 Subject: [PATCH 3/5] Remove scripted test, forward-port fallout --- .../chainresolver/build.sbt | 36 ------------------- .../dependency-management/chainresolver/test | 3 -- 2 files changed, 39 deletions(-) delete mode 100644 sbt/src/sbt-test/dependency-management/chainresolver/build.sbt delete mode 100644 sbt/src/sbt-test/dependency-management/chainresolver/test diff --git a/sbt/src/sbt-test/dependency-management/chainresolver/build.sbt b/sbt/src/sbt-test/dependency-management/chainresolver/build.sbt deleted file mode 100644 index f9454c341..000000000 --- a/sbt/src/sbt-test/dependency-management/chainresolver/build.sbt +++ /dev/null @@ -1,36 +0,0 @@ -lazy val check = taskKey[Unit]("Runs the check") - -def commonSettings: Seq[Def.Setting[_]] = - Seq( - ivyPaths := new IvyPaths( (baseDirectory in ThisBuild).value, Some((target in LocalRootProject).value / "ivy-cache")), - scalaVersion in ThisBuild := "2.11.7", - organization in ThisBuild := "com.example", - version in ThisBuild := "0.1.0-SNAPSHOT", - autoScalaLibrary := false, - crossPaths := false - ) - -lazy val realCommonsIoClient = project. - settings( - commonSettings, - name := "a", - libraryDependencies := Seq( - "commons-io" % "commons-io" % "1.3" - ), - fullResolvers := fullResolvers.value.filterNot(_.name == "inter-project") - ) - -lazy val fakeCommonsIo = project. - settings( - commonSettings, - organization := "commons-io", - name := "commons-io", - version := "1.3" - ) - -lazy val fakeCommonsIoClient = project. - dependsOn(fakeCommonsIo % "test->test"). - settings( - commonSettings, - name := "c" - ) diff --git a/sbt/src/sbt-test/dependency-management/chainresolver/test b/sbt/src/sbt-test/dependency-management/chainresolver/test deleted file mode 100644 index c3786f997..000000000 --- a/sbt/src/sbt-test/dependency-management/chainresolver/test +++ /dev/null @@ -1,3 +0,0 @@ -> realCommonsIoClient/update - -> fakeCommonsIoClient/update From 931b7d7af59b068a3ba5756651d4be193917156d Mon Sep 17 00:00:00 2001 From: Dale Wijnand Date: Tue, 21 Jun 2016 16:06:40 +0100 Subject: [PATCH 4/5] Remove unused and unused imports Note that the pickler/sbt-serlization macros are bringing in unused imports.. --- build.sbt | 3 +- .../librarymanagement/ComponentManager.scala | 3 +- .../librarymanagement/ConvertResolver.scala | 3 +- .../librarymanagement/CustomPomParser.scala | 14 ------- .../librarymanagement/CustomXmlParser.scala | 1 - .../librarymanagement/FakeResolver.scala | 6 --- .../sbt/internal/librarymanagement/Ivy.scala | 41 ++++++------------- .../internal/librarymanagement/IvyCache.scala | 3 +- .../librarymanagement/IvyConfigurations.scala | 2 +- .../librarymanagement/IvyLogger.scala | 3 +- .../librarymanagement/IvyRetrieve.scala | 2 - .../internal/librarymanagement/JsonUtil.scala | 2 - .../internal/librarymanagement/MakePom.scala | 1 - .../librarymanagement/ProjectResolver.scala | 5 +-- .../librarymanagement/ResolutionCache.scala | 7 +--- .../librarymanagement/RichUpdateReport.scala | 1 - .../impl/DependencyBuilders.scala | 6 --- .../CachedResolutionResolveEngine.scala | 16 +++----- .../ivyint/MergeDescriptors.scala | 13 ++---- .../sbt/librarymanagement/Artifact.scala | 2 +- .../librarymanagement/ConflictWarning.scala | 2 - .../sbt/librarymanagement/IvyInterface.scala | 6 +-- .../sbt/librarymanagement/Resolver.scala | 2 +- .../sbt/librarymanagement/UpdateOptions.scala | 3 +- .../sbt/librarymanagement/UpdateReport.scala | 2 - 25 files changed, 35 insertions(+), 114 deletions(-) diff --git a/build.sbt b/build.sbt index 6f1fb0363..6222b2428 100644 --- a/build.sbt +++ b/build.sbt @@ -16,7 +16,8 @@ def commonSettings: Seq[Setting[_]] = Seq( incOptions := incOptions.value.withNameHashing(true), crossScalaVersions := Seq(scala210, scala211), resolvers += Resolver.sonatypeRepo("public"), - scalacOptions += "-Xfatal-warnings", + scalacOptions += "-Ywarn-unused", + scalacOptions += "-Ywarn-unused-import", previousArtifact := None, // Some(organization.value %% moduleName.value % "1.0.0"), publishArtifact in Compile := true, publishArtifact in Test := false diff --git a/librarymanagement/src/main/scala/sbt/internal/librarymanagement/ComponentManager.scala b/librarymanagement/src/main/scala/sbt/internal/librarymanagement/ComponentManager.scala index 5b7034de0..480912e7a 100644 --- a/librarymanagement/src/main/scala/sbt/internal/librarymanagement/ComponentManager.scala +++ b/librarymanagement/src/main/scala/sbt/internal/librarymanagement/ComponentManager.scala @@ -3,7 +3,7 @@ */ package sbt.internal.librarymanagement -import java.io.{ File, FileOutputStream } +import java.io.File import java.util.concurrent.Callable import sbt.util.Logger import sbt.librarymanagement._ @@ -57,7 +57,6 @@ class ComponentManager(globalLock: xsbti.GlobalLock, provider: xsbti.ComponentPr case xs => invalid("Expected single file for component '" + id + "', found: " + xs.mkString(", ")) } private def invalid(msg: String) = throw new InvalidComponent(msg) - private def invalid(e: NotInCache) = throw new InvalidComponent(e.getMessage, e) def define(id: String, files: Iterable[File]) = lockLocalCache { provider.defineComponent(id, files.toSeq.toArray) } /** Retrieve the file for component 'id' from the local repository. */ diff --git a/librarymanagement/src/main/scala/sbt/internal/librarymanagement/ConvertResolver.scala b/librarymanagement/src/main/scala/sbt/internal/librarymanagement/ConvertResolver.scala index 99b731f89..1d0a6a470 100644 --- a/librarymanagement/src/main/scala/sbt/internal/librarymanagement/ConvertResolver.scala +++ b/librarymanagement/src/main/scala/sbt/internal/librarymanagement/ConvertResolver.scala @@ -5,7 +5,6 @@ package sbt.internal.librarymanagement import java.net.URL import java.util.Collections -import org.apache.ivy.core.module.id.ModuleRevisionId import org.apache.ivy.core.module.descriptor.DependencyDescriptor import org.apache.ivy.core.resolve.ResolveData import org.apache.ivy.core.settings.IvySettings @@ -245,7 +244,7 @@ private[sbt] object ConvertResolver { } fireTransferInitiated(resource, TransferEvent.REQUEST_PUT); try { - var totalLength = source.length + val totalLength = source.length if (totalLength > 0) { progress.setTotalLength(totalLength); } diff --git a/librarymanagement/src/main/scala/sbt/internal/librarymanagement/CustomPomParser.scala b/librarymanagement/src/main/scala/sbt/internal/librarymanagement/CustomPomParser.scala index 7cee3008c..fbcf53649 100644 --- a/librarymanagement/src/main/scala/sbt/internal/librarymanagement/CustomPomParser.scala +++ b/librarymanagement/src/main/scala/sbt/internal/librarymanagement/CustomPomParser.scala @@ -11,10 +11,8 @@ import org.apache.ivy.util.extendable.ExtendableItem import java.io.{ File, InputStream } import java.net.URL -import java.util.regex.Pattern import sbt.internal.librarymanagement.mavenint.{ PomExtraDependencyAttributes, SbtPomExtraProperties } import sbt.io.Hash -import sbt.librarymanagement._ // @deprecated("We now use an Aether-based pom parser.", "0.13.8") final class CustomPomParser(delegate: ModuleDescriptorParser, transform: (ModuleDescriptorParser, ModuleDescriptor) => ModuleDescriptor) extends ModuleDescriptorParser { @@ -99,12 +97,6 @@ object CustomPomParser { // parses the immediate text nodes of the property. val extraDepAttributes = getDependencyExtra(filtered) - // Fixes up the detected extension in some cases missed by Ivy. - val convertArtifacts = artifactExtIncorrect(md) - - // Merges artifact sections for duplicate dependency definitions - val mergeDuplicates = IvySbt.hasDuplicateDependencies(md.getDependencies) - val unqualify = toUnqualify(filtered) // Here we always add extra attributes. There's a scenario where parent-pom information corrupts child-poms with "e:" namespaced xml elements @@ -123,12 +115,8 @@ object CustomPomParser { private[sbt] def toUnqualify(propertyAttributes: Map[String, String]): Map[String, String] = (propertyAttributes - ExtraAttributesKey) map { case (k, v) => ("e:" + k, v) } - private[this] def artifactExtIncorrect(md: ModuleDescriptor): Boolean = - md.getConfigurations.exists(conf => md.getArtifacts(conf.getName).exists(art => JarPackagings(art.getExt))) private[this] def shouldBeUnqualified(m: Map[String, String]): Map[String, String] = m.filterKeys(unqualifiedKeys) - private[this] def condAddExtra(properties: Map[String, String], id: ModuleRevisionId): ModuleRevisionId = - if (properties.isEmpty) id else addExtra(properties, id) private[this] def addExtra(properties: Map[String, String], id: ModuleRevisionId): ModuleRevisionId = { import collection.JavaConverters._ @@ -167,8 +155,6 @@ object CustomPomParser { } private[this] def transform(dep: DependencyDescriptor, f: ModuleRevisionId => ModuleRevisionId): DependencyDescriptor = DefaultDependencyDescriptor.transformInstance(dep, namespaceTransformer(dep.getDependencyRevisionId, f), false) - private[this] def extraTransformer(txId: ModuleRevisionId, extra: Map[String, String]): NamespaceTransformer = - namespaceTransformer(txId, revId => addExtra(extra, revId)) private[this] def namespaceTransformer(txId: ModuleRevisionId, f: ModuleRevisionId => ModuleRevisionId): NamespaceTransformer = new NamespaceTransformer { diff --git a/librarymanagement/src/main/scala/sbt/internal/librarymanagement/CustomXmlParser.scala b/librarymanagement/src/main/scala/sbt/internal/librarymanagement/CustomXmlParser.scala index cad47b173..d8100ddcf 100644 --- a/librarymanagement/src/main/scala/sbt/internal/librarymanagement/CustomXmlParser.scala +++ b/librarymanagement/src/main/scala/sbt/internal/librarymanagement/CustomXmlParser.scala @@ -11,7 +11,6 @@ import org.apache.ivy.core.settings.IvySettings import org.apache.ivy.plugins.parser.xml.XmlModuleDescriptorParser import org.apache.ivy.plugins.repository.Resource import org.apache.ivy.plugins.repository.url.URLResource -import sbt.librarymanagement._ /** Subclasses the default Ivy file parser in order to provide access to protected methods.*/ private[sbt] object CustomXmlParser extends XmlModuleDescriptorParser { diff --git a/librarymanagement/src/main/scala/sbt/internal/librarymanagement/FakeResolver.scala b/librarymanagement/src/main/scala/sbt/internal/librarymanagement/FakeResolver.scala index 197922940..58ef9f63d 100644 --- a/librarymanagement/src/main/scala/sbt/internal/librarymanagement/FakeResolver.scala +++ b/librarymanagement/src/main/scala/sbt/internal/librarymanagement/FakeResolver.scala @@ -14,7 +14,6 @@ import org.apache.ivy.core.resolve.{ DownloadOptions, ResolveData, ResolvedModul import org.apache.ivy.core.search.{ ModuleEntry, OrganisationEntry, RevisionEntry } import org.apache.ivy.core.settings.IvySettings import org.apache.ivy.plugins.namespace.Namespace -import org.apache.ivy.plugins.repository.url.URLResource import org.apache.ivy.plugins.resolver.{ DependencyResolver, ResolverSettings } import org.apache.ivy.plugins.resolver.util.ResolvedResource @@ -77,7 +76,6 @@ private[sbt] class FakeResolver(private var name: String, cacheDir: File, module val report = new DownloadReport artifacts foreach { art => - val artifactOrigin = locate(art) Option(locate(art)) foreach (o => report.addArtifactReport(download(o, options))) } @@ -177,10 +175,6 @@ private[sbt] class FakeResolver(private var name: String, cacheDir: File, module override def setSettings(settings: ResolverSettings): Unit = () - private class LocalURLResource(jar: File) extends URLResource(jar.toURI.toURL) { - override def isLocal(): Boolean = true - } - } private[sbt] object FakeResolver { diff --git a/librarymanagement/src/main/scala/sbt/internal/librarymanagement/Ivy.scala b/librarymanagement/src/main/scala/sbt/internal/librarymanagement/Ivy.scala index 4e908fb66..29e8b0b42 100644 --- a/librarymanagement/src/main/scala/sbt/internal/librarymanagement/Ivy.scala +++ b/librarymanagement/src/main/scala/sbt/internal/librarymanagement/Ivy.scala @@ -5,35 +5,25 @@ package sbt.internal.librarymanagement import java.io.File import java.net.URI -import java.text.ParseException import java.util.concurrent.Callable -import java.util.{ Collection, Collections => CS, Date } -import CS.singleton import org.apache.ivy.Ivy -import org.apache.ivy.core.report.ResolveReport -import org.apache.ivy.core.{ IvyPatternHelper, LogOptions, IvyContext } -import org.apache.ivy.core.cache.{ ResolutionCacheManager, CacheMetadataOptions, DefaultRepositoryCacheManager, ModuleDescriptorWriter } +import org.apache.ivy.core.IvyPatternHelper +import org.apache.ivy.core.cache.{ CacheMetadataOptions, DefaultRepositoryCacheManager } import org.apache.ivy.core.event.EventManager import org.apache.ivy.core.module.descriptor.{ Artifact => IArtifact, DefaultArtifact, DefaultDependencyArtifactDescriptor, MDArtifact } import org.apache.ivy.core.module.descriptor.{ DefaultDependencyDescriptor, DefaultModuleDescriptor, DependencyDescriptor, ModuleDescriptor, License } import org.apache.ivy.core.module.descriptor.OverrideDependencyDescriptorMediator -import org.apache.ivy.core.module.id.{ ArtifactId, ModuleId, ModuleRevisionId } +import org.apache.ivy.core.module.id.{ ModuleId, ModuleRevisionId } import org.apache.ivy.core.resolve._ import org.apache.ivy.core.settings.IvySettings import org.apache.ivy.core.sort.SortEngine -import org.apache.ivy.plugins.latest.{ LatestStrategy, LatestRevisionStrategy, ArtifactInfo } import org.apache.ivy.plugins.matcher.PatternMatcher -import org.apache.ivy.plugins.parser.m2.{ PomModuleDescriptorParser } -import org.apache.ivy.plugins.resolver.{ ChainResolver, DependencyResolver, BasicResolver } -import org.apache.ivy.plugins.resolver.util.{ HasLatestStrategy, ResolvedResource } -import org.apache.ivy.plugins.version.ExactVersionMatcher -import org.apache.ivy.plugins.repository.file.{ FileResource, FileRepository => IFileRepository } -import org.apache.ivy.plugins.repository.url.URLResource -import org.apache.ivy.util.{ Message, MessageLogger, StringUtils => IvyStringUtils } +import org.apache.ivy.plugins.resolver.DependencyResolver +import org.apache.ivy.util.{ Message, MessageLogger } import org.apache.ivy.util.extendable.ExtendableItem -import scala.xml.{ NodeSeq, Text } +import scala.xml.NodeSeq import scala.collection.mutable import sbt.util.Logger @@ -44,12 +34,13 @@ import ivyint.{ CachedResolutionResolveEngine, CachedResolutionResolveCache, Sbt final class IvySbt(val configuration: IvyConfiguration) { import configuration.baseDirectory - /** + /* * ========== Configuration/Setup ============ * This part configures the Ivy instance by first creating the logger interface to ivy, then IvySettings, and then the Ivy instance. * These are lazy so that they are loaded within the right context. This is important so that no Ivy XML configuration needs to be loaded, * saving some time. This is necessary because Ivy has global state (IvyContext, Message, DocumentBuilder, ...). */ + private def withDefaultLogger[T](logger: MessageLogger)(f: => T): T = { def action() = @@ -119,7 +110,8 @@ final class IvySbt(val configuration: IvyConfiguration) { private lazy val ivy: Ivy = mkIvy // Must be the same file as is used in Update in the launcher private lazy val ivyLockFile = new File(settings.getDefaultIvyUserDir, ".sbt.ivy.lock") - /** ========== End Configuration/Setup ============*/ + + // ========== End Configuration/Setup ============ /** Uses the configured Ivy instance within a safe context.*/ def withIvy[T](log: Logger)(f: Ivy => T): T = @@ -269,7 +261,7 @@ private[sbt] object IvySbt { settings.addResolver(chain) chain } - val otherChain = makeChain("Other", "sbt-other", other) + makeChain("Other", "sbt-other", other) val mainChain = makeChain("Default", "sbt-chain", resolvers) settings.setDefaultResolver(mainChain.getName) } @@ -461,15 +453,6 @@ private[sbt] object IvySbt { if (map.isEmpty) null else scala.collection.JavaConversions.mapAsJavaMap(map) } - private object javaMap { - import java.util.{ HashMap, Map } - def apply[K, V](pairs: (K, V)*): Map[K, V] = - { - val map = new HashMap[K, V] - pairs.foreach { case (key, value) => map.put(key, value) } - map - } - } /** Creates a full ivy file for 'module' using the 'dependencies' XML as the part after the <info>...</info> section. */ private def wrapped(module: ModuleID, dependencies: NodeSeq) = { @@ -608,7 +591,7 @@ private[sbt] object IvySbt { parser.parseDepsConfs(confs, dependencyDescriptor) } for (artifact <- dependency.explicitArtifacts) { - import artifact.{ name, classifier, `type`, extension, url } + import artifact.{ name, `type`, extension, url } val extraMap = extra(artifact) val ivyArtifact = new DefaultDependencyArtifactDescriptor(dependencyDescriptor, name, `type`, extension, url.orNull, extraMap) copyConfigurations(artifact, ivyArtifact.addConfiguration) diff --git a/librarymanagement/src/main/scala/sbt/internal/librarymanagement/IvyCache.scala b/librarymanagement/src/main/scala/sbt/internal/librarymanagement/IvyCache.scala index d7ce761c6..ba3d97912 100644 --- a/librarymanagement/src/main/scala/sbt/internal/librarymanagement/IvyCache.scala +++ b/librarymanagement/src/main/scala/sbt/internal/librarymanagement/IvyCache.scala @@ -4,7 +4,6 @@ package sbt.internal.librarymanagement import java.io.File -import java.net.URL import org.apache.ivy.core.cache.{ ArtifactOrigin, CacheDownloadOptions, DefaultRepositoryCacheManager } import org.apache.ivy.core.module.descriptor.{ Artifact => IvyArtifact, DefaultArtifact } @@ -69,7 +68,7 @@ class IvyCache(val ivyHome: Option[File]) { /** Calls the given function with the default Ivy cache.*/ def withDefaultCache[T](lock: Option[xsbti.GlobalLock], log: Logger)(f: DefaultRepositoryCacheManager => T): T = { - val (ivy, local) = basicLocalIvy(lock, log) + val (ivy, _) = basicLocalIvy(lock, log) ivy.withIvy(log) { ivy => val cache = ivy.getSettings.getDefaultRepositoryCacheManager.asInstanceOf[DefaultRepositoryCacheManager] cache.setUseOrigin(false) diff --git a/librarymanagement/src/main/scala/sbt/internal/librarymanagement/IvyConfigurations.scala b/librarymanagement/src/main/scala/sbt/internal/librarymanagement/IvyConfigurations.scala index d71f959ec..101e48c41 100644 --- a/librarymanagement/src/main/scala/sbt/internal/librarymanagement/IvyConfigurations.scala +++ b/librarymanagement/src/main/scala/sbt/internal/librarymanagement/IvyConfigurations.scala @@ -4,7 +4,7 @@ package sbt.internal.librarymanagement import java.io.File -import java.net.{ URI, URL } +import java.net.URI import scala.xml.NodeSeq import sbt.util.Logger import sbt.librarymanagement._ diff --git a/librarymanagement/src/main/scala/sbt/internal/librarymanagement/IvyLogger.scala b/librarymanagement/src/main/scala/sbt/internal/librarymanagement/IvyLogger.scala index b5d61fc06..028306694 100644 --- a/librarymanagement/src/main/scala/sbt/internal/librarymanagement/IvyLogger.scala +++ b/librarymanagement/src/main/scala/sbt/internal/librarymanagement/IvyLogger.scala @@ -5,7 +5,6 @@ package sbt.internal.librarymanagement import org.apache.ivy.util.{ Message, MessageLogger, MessageLoggerEngine } import sbt.util.Logger -import sbt.librarymanagement._ /** Interface to Ivy logging. */ private final class IvyLoggerInterface(logger: Logger) extends MessageLogger { @@ -52,4 +51,4 @@ private final class SbtMessageLoggerEngine extends MessageLoggerEngine { private object SbtIvyLogger { val UnknownResolver = "unknown resolver" def acceptError(msg: String) = (msg ne null) && !msg.startsWith(UnknownResolver) -} \ No newline at end of file +} diff --git a/librarymanagement/src/main/scala/sbt/internal/librarymanagement/IvyRetrieve.scala b/librarymanagement/src/main/scala/sbt/internal/librarymanagement/IvyRetrieve.scala index 0432719d5..b9917e1ad 100644 --- a/librarymanagement/src/main/scala/sbt/internal/librarymanagement/IvyRetrieve.scala +++ b/librarymanagement/src/main/scala/sbt/internal/librarymanagement/IvyRetrieve.scala @@ -6,7 +6,6 @@ package sbt.internal.librarymanagement import java.io.File import java.{ util => ju } import collection.mutable -import java.net.URL import org.apache.ivy.core.{ module, report, resolve } import module.descriptor.{ Artifact => IvyArtifact, License => IvyLicense } import module.id.{ ModuleRevisionId, ModuleId => IvyModuleId } @@ -52,7 +51,6 @@ object IvyRetrieve { // only the revolved modules. // Sometimes the entire module can be excluded via rules etc. private[sbt] def organizationArtifactReports(confReport: ConfigurationResolveReport): Seq[OrganizationArtifactReport] = { - val dependencies = confReport.getModuleRevisionIds.toArray.toVector collect { case revId: ModuleRevisionId => revId } val moduleIds = confReport.getModuleIds.toArray.toVector collect { case mId: IvyModuleId => mId } def organizationArtifact(mid: IvyModuleId): OrganizationArtifactReport = { val deps = confReport.getNodes(mid).toArray.toVector collect { case node: IvyNode => node } diff --git a/librarymanagement/src/main/scala/sbt/internal/librarymanagement/JsonUtil.scala b/librarymanagement/src/main/scala/sbt/internal/librarymanagement/JsonUtil.scala index b570c7cef..69a6fa282 100644 --- a/librarymanagement/src/main/scala/sbt/internal/librarymanagement/JsonUtil.scala +++ b/librarymanagement/src/main/scala/sbt/internal/librarymanagement/JsonUtil.scala @@ -1,11 +1,9 @@ package sbt.internal.librarymanagement import java.io.File -import java.net.URL import org.apache.ivy.core import core.module.descriptor.ModuleDescriptor import sbt.serialization._ -import java.net.{ URLEncoder, URLDecoder } import sbt.util.Logger import sbt.librarymanagement._ diff --git a/librarymanagement/src/main/scala/sbt/internal/librarymanagement/MakePom.scala b/librarymanagement/src/main/scala/sbt/internal/librarymanagement/MakePom.scala index e52bb165b..2103cc6f0 100644 --- a/librarymanagement/src/main/scala/sbt/internal/librarymanagement/MakePom.scala +++ b/librarymanagement/src/main/scala/sbt/internal/librarymanagement/MakePom.scala @@ -369,7 +369,6 @@ class MakePom(val log: Logger) { def makeRepositories(settings: IvySettings, includeAll: Boolean, filterRepositories: MavenRepository => Boolean) = { - class MavenRepo(name: String, snapshots: Boolean, releases: Boolean) val repositories = if (includeAll) allResolvers(settings) else resolvers(settings.getDefaultResolver) val mavenRepositories = repositories.flatMap { diff --git a/librarymanagement/src/main/scala/sbt/internal/librarymanagement/ProjectResolver.scala b/librarymanagement/src/main/scala/sbt/internal/librarymanagement/ProjectResolver.scala index 760f63f52..caca5a9ed 100644 --- a/librarymanagement/src/main/scala/sbt/internal/librarymanagement/ProjectResolver.scala +++ b/librarymanagement/src/main/scala/sbt/internal/librarymanagement/ProjectResolver.scala @@ -7,15 +7,14 @@ import java.io.File import java.util.Date import org.apache.ivy.core.{ cache, module, report, resolve, search } -import cache.{ ArtifactOrigin, RepositoryCacheManager } +import cache.ArtifactOrigin import search.{ ModuleEntry, OrganisationEntry, RevisionEntry } import module.id.ModuleRevisionId import module.descriptor.{ Artifact => IArtifact, DefaultArtifact, DependencyDescriptor, ModuleDescriptor } import org.apache.ivy.plugins.namespace.Namespace -import org.apache.ivy.plugins.resolver.{ DependencyResolver, ResolverSettings } +import org.apache.ivy.plugins.resolver.ResolverSettings import report.{ ArtifactDownloadReport, DownloadReport, DownloadStatus, MetadataArtifactDownloadReport } import resolve.{ DownloadOptions, ResolveData, ResolvedModuleRevision } -import sbt.librarymanagement._ /** * A Resolver that uses a predefined mapping from module ids to in-memory descriptors. diff --git a/librarymanagement/src/main/scala/sbt/internal/librarymanagement/ResolutionCache.scala b/librarymanagement/src/main/scala/sbt/internal/librarymanagement/ResolutionCache.scala index a480c8ed3..25103ba89 100644 --- a/librarymanagement/src/main/scala/sbt/internal/librarymanagement/ResolutionCache.scala +++ b/librarymanagement/src/main/scala/sbt/internal/librarymanagement/ResolutionCache.scala @@ -1,13 +1,11 @@ package sbt.internal.librarymanagement import java.io.File -import java.io.FileInputStream -import java.util.Properties import org.apache.ivy.core import org.apache.ivy.plugins.parser import core.IvyPatternHelper import core.settings.IvySettings -import core.cache.{ CacheMetadataOptions, DefaultRepositoryCacheManager, DefaultResolutionCacheManager, ResolutionCacheManager } +import core.cache.ResolutionCacheManager import core.module.id.ModuleRevisionId import core.module.descriptor.ModuleDescriptor import ResolutionCache.{ Name, ReportDirectory, ResolvedName, ResolvedPattern } @@ -78,9 +76,6 @@ private[sbt] object ResolutionCache { private val ReportDirectory = "reports" - // name of the file providing a dependency resolution report for a configuration - private val ReportFileName = "report.xml" - // base name (name except for extension) of resolution report file private val ResolvedName = "resolved.xml" diff --git a/librarymanagement/src/main/scala/sbt/internal/librarymanagement/RichUpdateReport.scala b/librarymanagement/src/main/scala/sbt/internal/librarymanagement/RichUpdateReport.scala index e4005ef21..db283b6c7 100644 --- a/librarymanagement/src/main/scala/sbt/internal/librarymanagement/RichUpdateReport.scala +++ b/librarymanagement/src/main/scala/sbt/internal/librarymanagement/RichUpdateReport.scala @@ -3,7 +3,6 @@ package internal package librarymanagement import java.io.File -import java.net.URL import sbt.librarymanagement._ /** Provides extra methods for filtering the contents of an `UpdateReport` and for obtaining references to a selected subset of the underlying files. */ diff --git a/librarymanagement/src/main/scala/sbt/internal/librarymanagement/impl/DependencyBuilders.scala b/librarymanagement/src/main/scala/sbt/internal/librarymanagement/impl/DependencyBuilders.scala index 517ea1aa0..9ceac2da6 100755 --- a/librarymanagement/src/main/scala/sbt/internal/librarymanagement/impl/DependencyBuilders.scala +++ b/librarymanagement/src/main/scala/sbt/internal/librarymanagement/impl/DependencyBuilders.scala @@ -29,17 +29,11 @@ final class GroupID private[sbt] (private[sbt] val groupID: String) { def %(artifactID: String) = groupArtifact(artifactID, CrossVersion.Disabled) def %%(artifactID: String): GroupArtifactID = groupArtifact(artifactID, CrossVersion.binary) - @deprecated(deprecationMessage, "0.12.0") - def %%(artifactID: String, crossVersion: String => String) = groupArtifact(artifactID, CrossVersion.binaryMapped(crossVersion)) - @deprecated(deprecationMessage, "0.12.0") - def %%(artifactID: String, alternatives: (String, String)*) = groupArtifact(artifactID, CrossVersion.binaryMapped(Map(alternatives: _*) orElse { case s => s })) - private def groupArtifact(artifactID: String, cross: CrossVersion) = { nonEmpty(artifactID, "Artifact ID") new GroupArtifactID(groupID, artifactID, cross) } - private[this] def deprecationMessage = """Use the cross method on the constructed ModuleID. For example: ("a" % "b" % "1").cross(...)""" } final class GroupArtifactID private[sbt] ( private[sbt] val groupID: String, diff --git a/librarymanagement/src/main/scala/sbt/internal/librarymanagement/ivyint/CachedResolutionResolveEngine.scala b/librarymanagement/src/main/scala/sbt/internal/librarymanagement/ivyint/CachedResolutionResolveEngine.scala index 892d4b8e4..ef9d20209 100644 --- a/librarymanagement/src/main/scala/sbt/internal/librarymanagement/ivyint/CachedResolutionResolveEngine.scala +++ b/librarymanagement/src/main/scala/sbt/internal/librarymanagement/ivyint/CachedResolutionResolveEngine.scala @@ -2,7 +2,6 @@ package sbt.internal.librarymanagement package ivyint import java.util.Date -import java.net.URL import java.io.File import java.text.SimpleDateFormat import collection.concurrent @@ -12,19 +11,18 @@ import org.apache.ivy.Ivy import org.apache.ivy.core import core.resolve._ import core.module.id.{ ModuleRevisionId, ModuleId => IvyModuleId } -import core.report.{ ResolveReport, ConfigurationResolveReport, DownloadReport } +import core.report.ResolveReport import core.module.descriptor.{ DefaultModuleDescriptor, ModuleDescriptor, DefaultDependencyDescriptor, DependencyDescriptor, Configuration => IvyConfiguration, ExcludeRule, IncludeRule } -import core.module.descriptor.{ OverrideDependencyDescriptorMediator, DependencyArtifactDescriptor, DefaultDependencyArtifactDescriptor } -import core.{ IvyPatternHelper, LogOptions } +import core.module.descriptor.{ OverrideDependencyDescriptorMediator, DependencyArtifactDescriptor } +import core.IvyPatternHelper import org.apache.ivy.util.{ Message, MessageLogger } import org.apache.ivy.plugins.latest.{ ArtifactInfo => IvyArtifactInfo } import org.apache.ivy.plugins.matcher.{ MapMatcher, PatternMatcher } import annotation.tailrec import scala.concurrent.duration._ -import sbt.io.{ DirectoryFilter, Hash, IO, Path } +import sbt.io.{ DirectoryFilter, Hash, IO } import sbt.util.Logger import sbt.librarymanagement._ -import Configurations.{ System => _, _ } import sbt.internal.librarymanagement.syntax._ private[sbt] object CachedResolutionResolveCache { @@ -254,8 +252,6 @@ private[sbt] trait ArtificialModuleDescriptor { self: DefaultModuleDescriptor => } private[sbt] trait CachedResolutionResolveEngine extends ResolveEngine { - import CachedResolutionResolveCache._ - private[sbt] def cachedResolutionResolveCache: CachedResolutionResolveCache private[sbt] def projectResolver: Option[ProjectResolver] private[sbt] def makeInstance: Ivy @@ -313,7 +309,7 @@ private[sbt] trait CachedResolutionResolveEngine extends ResolveEngine { def doWorkUsingIvy(md: ModuleDescriptor): Either[ResolveException, UpdateReport] = { val options1 = new ResolveOptions(options0) - var rr = withIvy(log) { ivy => + val rr = withIvy(log) { ivy => ivy.resolve(md, options1) } if (!rr.hasError || missingOk) Right(IvyRetrieve.updateReport(rr, cachedDescriptor)) @@ -718,7 +714,7 @@ private[sbt] trait CachedResolutionResolveEngine extends ResolveEngine { val (surviving, evicted) = cache.getOrElseUpdateConflict(cf0, cf1, conflicts) { doResolveConflict } (surviving, evicted) } else { - val (surviving, evicted, mgr) = doResolveConflict + val (surviving, evicted, _) = doResolveConflict (surviving, evicted) } } diff --git a/librarymanagement/src/main/scala/sbt/internal/librarymanagement/ivyint/MergeDescriptors.scala b/librarymanagement/src/main/scala/sbt/internal/librarymanagement/ivyint/MergeDescriptors.scala index 475e6056f..b3c8c378c 100644 --- a/librarymanagement/src/main/scala/sbt/internal/librarymanagement/ivyint/MergeDescriptors.scala +++ b/librarymanagement/src/main/scala/sbt/internal/librarymanagement/ivyint/MergeDescriptors.scala @@ -1,17 +1,10 @@ package sbt.internal.librarymanagement package ivyint -import java.io.File -import java.net.URI -import java.util.{ Collection, Collections => CS } -import CS.singleton - -import org.apache.ivy.{ core, plugins, util, Ivy } +import org.apache.ivy.core import core.module.descriptor.{ DependencyArtifactDescriptor, DefaultDependencyArtifactDescriptor } -import core.module.descriptor.{ DefaultDependencyDescriptor => DDD, DependencyDescriptor } -import core.module.id.{ ArtifactId, ModuleId, ModuleRevisionId } -import plugins.namespace.Namespace -import util.extendable.ExtendableItem +import core.module.descriptor.DependencyDescriptor +import core.module.id.{ ArtifactId, ModuleRevisionId } private[sbt] object MergeDescriptors { def mergeable(a: DependencyDescriptor, b: DependencyDescriptor): Boolean = diff --git a/librarymanagement/src/main/scala/sbt/librarymanagement/Artifact.scala b/librarymanagement/src/main/scala/sbt/librarymanagement/Artifact.scala index 8bf97bc05..fd9e33bef 100644 --- a/librarymanagement/src/main/scala/sbt/librarymanagement/Artifact.scala +++ b/librarymanagement/src/main/scala/sbt/librarymanagement/Artifact.scala @@ -11,7 +11,7 @@ final case class Artifact(name: String, `type`: String, extension: String, class def extra(attributes: (String, String)*) = copy(extraAttributes = extraAttributes ++ ModuleID.checkE(attributes)) } -import Configurations.{ config, Optional, Pom, Test } +import Configurations.{ Optional, Pom, Test } object Artifact { def apply(name: String): Artifact = Artifact(name, DefaultType, DefaultExtension, None, Nil, None) diff --git a/librarymanagement/src/main/scala/sbt/librarymanagement/ConflictWarning.scala b/librarymanagement/src/main/scala/sbt/librarymanagement/ConflictWarning.scala index ab98c67af..98d9fe46a 100644 --- a/librarymanagement/src/main/scala/sbt/librarymanagement/ConflictWarning.scala +++ b/librarymanagement/src/main/scala/sbt/librarymanagement/ConflictWarning.scala @@ -1,6 +1,5 @@ package sbt.librarymanagement -import sbt.internal.librarymanagement.DependencyFilter._ import sbt.util.{ Logger, Level } /** @@ -13,7 +12,6 @@ final case class ConflictWarning(label: String, level: Level.Value, failOnConfli object ConflictWarning { def disable: ConflictWarning = ConflictWarning("", Level.Debug, false) - private def org = (_: ModuleID).organization private[this] def idString(org: String, name: String) = s"$org:$name" def default(label: String): ConflictWarning = ConflictWarning(label, Level.Error, true) diff --git a/librarymanagement/src/main/scala/sbt/librarymanagement/IvyInterface.scala b/librarymanagement/src/main/scala/sbt/librarymanagement/IvyInterface.scala index 964fe7447..54531bae4 100644 --- a/librarymanagement/src/main/scala/sbt/librarymanagement/IvyInterface.scala +++ b/librarymanagement/src/main/scala/sbt/librarymanagement/IvyInterface.scala @@ -3,11 +3,7 @@ */ package sbt.librarymanagement -import java.io.File -import java.net.{ URI, URL } -import scala.xml.NodeSeq -import org.apache.ivy.plugins.resolver.{ DependencyResolver, IBiblioResolver } -import org.apache.ivy.util.url.CredentialsStore +import java.net.URL import org.apache.ivy.core.module.descriptor import org.apache.ivy.util.filter.{ Filter => IvyFilter } import sbt.serialization._ diff --git a/librarymanagement/src/main/scala/sbt/librarymanagement/Resolver.scala b/librarymanagement/src/main/scala/sbt/librarymanagement/Resolver.scala index 37224ccca..f0f3da55e 100644 --- a/librarymanagement/src/main/scala/sbt/librarymanagement/Resolver.scala +++ b/librarymanagement/src/main/scala/sbt/librarymanagement/Resolver.scala @@ -5,7 +5,7 @@ package sbt.librarymanagement import java.io.{ IOException, File } import java.net.URL -import scala.xml.{ Text, NodeSeq, Elem, XML } +import scala.xml.XML import org.apache.ivy.plugins.resolver.DependencyResolver import org.xml.sax.SAXParseException diff --git a/librarymanagement/src/main/scala/sbt/librarymanagement/UpdateOptions.scala b/librarymanagement/src/main/scala/sbt/librarymanagement/UpdateOptions.scala index ed63b4c48..626d31371 100644 --- a/librarymanagement/src/main/scala/sbt/librarymanagement/UpdateOptions.scala +++ b/librarymanagement/src/main/scala/sbt/librarymanagement/UpdateOptions.scala @@ -1,6 +1,5 @@ package sbt.librarymanagement -import java.io.File import org.apache.ivy.plugins.resolver.DependencyResolver import org.apache.ivy.core.settings.IvySettings import sbt.util.Logger @@ -23,7 +22,7 @@ final class UpdateOptions private[sbt] ( val consolidatedResolution: Boolean, // If set to true, use cached resolution. val cachedResolution: Boolean, - // Extention point for an alternative resolver converter. + // Extension point for an alternative resolver converter. val resolverConverter: UpdateOptions.ResolverConverter ) { def withCircularDependencyLevel(circularDependencyLevel: CircularDependencyLevel): UpdateOptions = diff --git a/librarymanagement/src/main/scala/sbt/librarymanagement/UpdateReport.scala b/librarymanagement/src/main/scala/sbt/librarymanagement/UpdateReport.scala index 88603454d..06974aa90 100644 --- a/librarymanagement/src/main/scala/sbt/librarymanagement/UpdateReport.scala +++ b/librarymanagement/src/main/scala/sbt/librarymanagement/UpdateReport.scala @@ -4,10 +4,8 @@ package sbt.librarymanagement import java.io.File -import java.net.URL import java.{ util => ju } import sbt.serialization._ -import sbt.internal.librarymanagement.{ DependencyFilter, ConfigurationFilter, ModuleFilter, ArtifactFilter } /** * Provides information about resolution of a single configuration. From 9706577c67d9c63fe08e2a1edad2b3fc91c9dfde Mon Sep 17 00:00:00 2001 From: Dale Wijnand Date: Tue, 21 Jun 2016 17:51:16 +0100 Subject: [PATCH 5/5] Drop Scala 2.10, add openjdk7 --- .travis.yml | 8 ++++---- build.sbt | 2 +- project/Dependencies.scala | 1 - 3 files changed, 5 insertions(+), 6 deletions(-) diff --git a/.travis.yml b/.travis.yml index bb23581e8..44dc5a257 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,7 +1,7 @@ language: scala scala: - - 2.10.6 - - 2.11.7 + - 2.11.8 jdk: - - oraclejdk8 - - oraclejdk7 + - openjdk7 + - oraclejdk7 + - oraclejdk8 diff --git a/build.sbt b/build.sbt index 6222b2428..ab16fd295 100644 --- a/build.sbt +++ b/build.sbt @@ -14,7 +14,7 @@ def commonSettings: Seq[Setting[_]] = Seq( testOptions += Tests.Argument(TestFrameworks.ScalaCheck, "-w", "1"), javacOptions in compile ++= Seq("-target", "6", "-source", "6", "-Xlint", "-Xlint:-serial"), incOptions := incOptions.value.withNameHashing(true), - crossScalaVersions := Seq(scala210, scala211), + crossScalaVersions := Seq(scala211), resolvers += Resolver.sonatypeRepo("public"), scalacOptions += "-Ywarn-unused", scalacOptions += "-Ywarn-unused-import", diff --git a/project/Dependencies.scala b/project/Dependencies.scala index c06e52b1f..8bd5bf78c 100644 --- a/project/Dependencies.scala +++ b/project/Dependencies.scala @@ -2,7 +2,6 @@ import sbt._ import Keys._ object Dependencies { - lazy val scala210 = "2.10.6" lazy val scala211 = "2.11.8" val ioVersion = "1.0.0-M6"