From 1390d319b1f4c5e4d82d0adaec50593c3f31d8aa Mon Sep 17 00:00:00 2001 From: Alexandre Archambault Date: Wed, 6 Feb 2019 15:04:19 -0800 Subject: [PATCH] Instantiate logger earlier, only keep one instance around The loggers are now supposed to be re-usable (which simplifies their handling) --- .../main/scala/coursier/lmcoursier/ArtifactsParams.scala | 2 +- .../src/main/scala/coursier/lmcoursier/ArtifactsRun.scala | 4 ++-- .../coursier/lmcoursier/CoursierDependencyResolution.scala | 6 +++--- .../main/scala/coursier/lmcoursier/ResolutionParams.scala | 2 +- .../src/main/scala/coursier/lmcoursier/ResolutionRun.scala | 5 +++-- .../main/scala/coursier/sbtcoursier/ArtifactsTasks.scala | 2 +- .../main/scala/coursier/sbtcoursier/ResolutionTasks.scala | 2 +- 7 files changed, 12 insertions(+), 11 deletions(-) diff --git a/modules/lm-coursier/src/main/scala/coursier/lmcoursier/ArtifactsParams.scala b/modules/lm-coursier/src/main/scala/coursier/lmcoursier/ArtifactsParams.scala index 4c9fd336f..70b232157 100644 --- a/modules/lm-coursier/src/main/scala/coursier/lmcoursier/ArtifactsParams.scala +++ b/modules/lm-coursier/src/main/scala/coursier/lmcoursier/ArtifactsParams.scala @@ -8,7 +8,7 @@ final case class ArtifactsParams( classifiers: Option[Seq[Classifier]], res: Seq[Resolution], includeSignatures: Boolean, - createLogger: () => CacheLogger, + logger: CacheLogger, projectName: String, sbtClassifiers: Boolean, cacheParams: CacheParams diff --git a/modules/lm-coursier/src/main/scala/coursier/lmcoursier/ArtifactsRun.scala b/modules/lm-coursier/src/main/scala/coursier/lmcoursier/ArtifactsRun.scala index cae75e6f5..6122c39ef 100644 --- a/modules/lm-coursier/src/main/scala/coursier/lmcoursier/ArtifactsRun.scala +++ b/modules/lm-coursier/src/main/scala/coursier/lmcoursier/ArtifactsRun.scala @@ -40,7 +40,6 @@ object ArtifactsRun { val artifactFilesOrErrors = try { pool = Schedulable.fixedThreadPool(params.cacheParams.parallel) - artifactsLogger = params.createLogger() val artifactFileOrErrorTasks = allArtifacts.toVector.distinct.map { a => Cache.file[Task]( @@ -48,7 +47,7 @@ object ArtifactsRun { params.cacheParams.cacheLocation, params.cacheParams.cachePolicies, checksums = params.cacheParams.checksum, - logger = Some(artifactsLogger), + logger = Some(params.logger), pool = pool, ttl = params.cacheParams.ttl ) @@ -66,6 +65,7 @@ object ArtifactsRun { if (verbosityLevel >= 2) log.info(artifactInitialMessage) + artifactsLogger = params.logger artifactsLogger.init(if (printOptionalMessage) log.info(artifactInitialMessage)) Task.gather.gather(artifactFileOrErrorTasks).attempt.unsafeRun()(ExecutionContext.fromExecutorService(pool)) match { diff --git a/modules/lm-coursier/src/main/scala/coursier/lmcoursier/CoursierDependencyResolution.scala b/modules/lm-coursier/src/main/scala/coursier/lmcoursier/CoursierDependencyResolution.scala index 9228ceab0..b433584de 100644 --- a/modules/lm-coursier/src/main/scala/coursier/lmcoursier/CoursierDependencyResolution.scala +++ b/modules/lm-coursier/src/main/scala/coursier/lmcoursier/CoursierDependencyResolution.scala @@ -77,7 +77,7 @@ class CoursierDependencyResolution(conf: CoursierConfiguration) extends Dependen val verbosityLevel = 0 val ttl = CacheDefaults.ttl - val createLogger = conf.createLogger.map(_.create).getOrElse { () => + val logger = conf.createLogger.map(_.create()).getOrElse { new TermDisplay(new OutputStreamWriter(System.err), fallbackMode = true) } val cache = conf.cache.getOrElse(CacheDefaults.location) @@ -152,7 +152,7 @@ class CoursierDependencyResolution(conf: CoursierConfiguration) extends Dependen typelevel = typelevel, sbtClassifiers = false, projectName = projectName, - createLogger = createLogger, + logger = logger, cacheParams = coursier.params.CacheParams( cacheLocation = cache, cachePolicies = cachePolicies, @@ -172,7 +172,7 @@ class CoursierDependencyResolution(conf: CoursierConfiguration) extends Dependen classifiers = classifiers, res = resolutions.values.toSeq, includeSignatures = false, - createLogger = createLogger, + logger = logger, projectName = projectName, sbtClassifiers = false, cacheParams = CacheParams( diff --git a/modules/lm-coursier/src/main/scala/coursier/lmcoursier/ResolutionParams.scala b/modules/lm-coursier/src/main/scala/coursier/lmcoursier/ResolutionParams.scala index c76eeecc6..e561b5ea4 100644 --- a/modules/lm-coursier/src/main/scala/coursier/lmcoursier/ResolutionParams.scala +++ b/modules/lm-coursier/src/main/scala/coursier/lmcoursier/ResolutionParams.scala @@ -23,7 +23,7 @@ final case class ResolutionParams( typelevel: Boolean, sbtClassifiers: Boolean, projectName: String, - createLogger: () => CacheLogger, + logger: CacheLogger, cacheParams: coursier.params.CacheParams, params: coursier.params.ResolutionParams ) { diff --git a/modules/lm-coursier/src/main/scala/coursier/lmcoursier/ResolutionRun.scala b/modules/lm-coursier/src/main/scala/coursier/lmcoursier/ResolutionRun.scala index b4b0c402a..73ddf8109 100644 --- a/modules/lm-coursier/src/main/scala/coursier/lmcoursier/ResolutionRun.scala +++ b/modules/lm-coursier/src/main/scala/coursier/lmcoursier/ResolutionRun.scala @@ -30,9 +30,9 @@ object ResolutionRun { val resOrError: Either[ResolutionError, Resolution] = try { pool = Schedulable.fixedThreadPool(params.cacheParams.parallel) - resLogger = params.createLogger() + resLogger = params.logger - val fetchs = Cache.fetchs[Task](params.cacheParams.cacheLocation, params.cacheParams.cachePolicies, checksums = params.cacheParams.checksum, logger = Some(resLogger), pool = pool, ttl = params.cacheParams.ttl) + val fetchs = Cache.fetchs[Task](params.cacheParams.cacheLocation, params.cacheParams.cachePolicies, checksums = params.cacheParams.checksum, logger = Some(params.logger), pool = pool, ttl = params.cacheParams.ttl) val fetch = ResolutionProcess.fetch( params.repositories, @@ -80,6 +80,7 @@ object ResolutionRun { if (verbosityLevel >= 2) log.info(initialMessage) + resLogger = params.logger resLogger.init(if (printOptionalMessage) log.info(initialMessage)) startRes diff --git a/modules/sbt-coursier/src/main/scala/coursier/sbtcoursier/ArtifactsTasks.scala b/modules/sbt-coursier/src/main/scala/coursier/sbtcoursier/ArtifactsTasks.scala index 5527c061d..4c5fd655a 100644 --- a/modules/sbt-coursier/src/main/scala/coursier/sbtcoursier/ArtifactsTasks.scala +++ b/modules/sbt-coursier/src/main/scala/coursier/sbtcoursier/ArtifactsTasks.scala @@ -57,7 +57,7 @@ object ArtifactsTasks { classifiers = classifiers, res = res, includeSignatures = includeSignatures, - createLogger = createLogger.create, + logger = createLogger.create(), projectName = projectName, sbtClassifiers = sbtClassifiers, cacheParams = CacheParams( diff --git a/modules/sbt-coursier/src/main/scala/coursier/sbtcoursier/ResolutionTasks.scala b/modules/sbt-coursier/src/main/scala/coursier/sbtcoursier/ResolutionTasks.scala index 8a4dc0b7d..adeefec11 100644 --- a/modules/sbt-coursier/src/main/scala/coursier/sbtcoursier/ResolutionTasks.scala +++ b/modules/sbt-coursier/src/main/scala/coursier/sbtcoursier/ResolutionTasks.scala @@ -134,7 +134,7 @@ object ResolutionTasks { typelevel = typelevel, sbtClassifiers = sbtClassifiers, projectName = projectName, - createLogger = createLogger.create, + logger = createLogger.create(), cacheParams = coursier.params.CacheParams( cacheLocation = cache, cachePolicies = cachePolicies,