From 33d8516628ea5ec832f857a67ae396ffa3986bea Mon Sep 17 00:00:00 2001 From: Michael Stringer Date: Mon, 18 Sep 2017 12:54:58 +0100 Subject: [PATCH] Tidy reporting helpers --- .../scalasbt/jacoco/BaseJacocoPlugin.scala | 6 ++--- .../org/scalasbt/jacoco/JacocoItPlugin.scala | 4 +-- .../jacoco/data/ExecutionDataUtils.scala | 9 +++---- .../{Reporting.scala => ReportUtils.scala} | 25 +++++++------------ .../formats/ScalaHTMLReportFormat.scala | 1 - .../formats}/ScalaLanguageNames.scala | 4 +-- 6 files changed, 20 insertions(+), 29 deletions(-) rename src/main/scala/org/scalasbt/jacoco/report/{Reporting.scala => ReportUtils.scala} (70%) rename src/main/scala/org/scalasbt/jacoco/{ => report/formats}/ScalaLanguageNames.scala (96%) diff --git a/src/main/scala/org/scalasbt/jacoco/BaseJacocoPlugin.scala b/src/main/scala/org/scalasbt/jacoco/BaseJacocoPlugin.scala index 0bef0f99..74a56123 100644 --- a/src/main/scala/org/scalasbt/jacoco/BaseJacocoPlugin.scala +++ b/src/main/scala/org/scalasbt/jacoco/BaseJacocoPlugin.scala @@ -17,7 +17,7 @@ import java.io.File import org.jacoco.core.runtime.{IRuntime, LoggerRuntime, RuntimeData} import org.scalasbt.jacoco.build.BuildInfo import org.scalasbt.jacoco.data.{ExecutionDataUtils, InstrumentationUtils} -import org.scalasbt.jacoco.report.Reporting +import org.scalasbt.jacoco.report.ReportUtils import sbt.Keys._ import sbt.plugins.JvmPlugin import sbt.{Def, _} @@ -71,7 +71,7 @@ private[jacoco] abstract class BaseJacocoPlugin extends AutoPlugin with JacocoKe .task(ExecutionDataUtils.saveRuntimeData(runtimeData, jacocoDataFile.value, fork.value, streams.value)) .dependsOn(test) .value, - jacocoReport := Reporting.reportAction( + jacocoReport := ReportUtils.generateReport( jacocoReportDirectory.value, jacocoDataFile.value, jacocoReportSettings.value, @@ -80,7 +80,7 @@ private[jacoco] abstract class BaseJacocoPlugin extends AutoPlugin with JacocoKe jacocoSourceSettings.value, streams.value ), - jacocoAggregateReport := Reporting.aggregateReportAction( + jacocoAggregateReport := ReportUtils.generateAggregateReport( jacocoReportDirectory.value / "aggregate", aggregateExecutionDataFiles.value, jacocoAggregateReportSettings.value, diff --git a/src/main/scala/org/scalasbt/jacoco/JacocoItPlugin.scala b/src/main/scala/org/scalasbt/jacoco/JacocoItPlugin.scala index 3250f7ed..7acb0d56 100644 --- a/src/main/scala/org/scalasbt/jacoco/JacocoItPlugin.scala +++ b/src/main/scala/org/scalasbt/jacoco/JacocoItPlugin.scala @@ -13,7 +13,7 @@ package org.scalasbt.jacoco import org.scalasbt.jacoco.data.ExecutionDataUtils -import org.scalasbt.jacoco.report.{JacocoReportSettings, Reporting} +import org.scalasbt.jacoco.report.{JacocoReportSettings, ReportUtils} import sbt.Keys._ import sbt.plugins.JvmPlugin import sbt.{Def, _} @@ -74,7 +74,7 @@ object JacocoItPlugin extends BaseJacocoPlugin { jacocoMergedReportSettings := JacocoReportSettings("Jacoco Merged Coverage Report"), jacocoMergedReport := Def .task( - Reporting.reportAction( + ReportUtils.generateReport( jacocoDirectory.value / "report" / "merged", jacocoMergedDataFile.value, jacocoMergedReportSettings.value, diff --git a/src/main/scala/org/scalasbt/jacoco/data/ExecutionDataUtils.scala b/src/main/scala/org/scalasbt/jacoco/data/ExecutionDataUtils.scala index 4b858c3a..225bbd24 100644 --- a/src/main/scala/org/scalasbt/jacoco/data/ExecutionDataUtils.scala +++ b/src/main/scala/org/scalasbt/jacoco/data/ExecutionDataUtils.scala @@ -22,13 +22,12 @@ import sbt.Keys.TaskStreams import sbt._ object ExecutionDataUtils { - def saveRuntimeData(data: RuntimeData, dest: File, forked: Boolean, streams: TaskStreams): Unit = { - + def saveRuntimeData(data: RuntimeData, destination: File, forked: Boolean, streams: TaskStreams): Unit = { if (!forked) { - streams.log.debug(s"writing execution data to $dest") - IO.createDirectory(dest.getParentFile) + streams.log.debug(s"writing execution data to $destination") + IO.createDirectory(destination.getParentFile) - for (os <- managed(new FileOutputStream(dest))) { + for (os <- managed(new FileOutputStream(destination))) { val executionDataWriter = new ExecutionDataWriter(os) data.collect(executionDataWriter, executionDataWriter, true) } diff --git a/src/main/scala/org/scalasbt/jacoco/report/Reporting.scala b/src/main/scala/org/scalasbt/jacoco/report/ReportUtils.scala similarity index 70% rename from src/main/scala/org/scalasbt/jacoco/report/Reporting.scala rename to src/main/scala/org/scalasbt/jacoco/report/ReportUtils.scala index d10d255c..30bcda4b 100644 --- a/src/main/scala/org/scalasbt/jacoco/report/Reporting.scala +++ b/src/main/scala/org/scalasbt/jacoco/report/ReportUtils.scala @@ -15,12 +15,10 @@ package org.scalasbt.jacoco.report import sbt.Keys._ import sbt._ -import scala.language.implicitConversions - -private[jacoco] object Reporting { - def reportAction( - reportDirectory: File, - executionDataFile: File, +object ReportUtils { + def generateReport( + destinationDirectory: File, + executionData: File, reportSettings: JacocoReportSettings, sourceDirectories: Seq[File], classDirectories: Seq[File], @@ -28,8 +26,8 @@ private[jacoco] object Reporting { streams: TaskStreams): Unit = { val report = new Report( - reportDirectory = reportDirectory, - executionDataFiles = Seq(executionDataFile), + reportDirectory = destinationDirectory, + executionDataFiles = Seq(executionData), classDirectories = classDirectories, sourceDirectories = sourceDirectories, sourceSettings = sourceSettings, @@ -40,8 +38,8 @@ private[jacoco] object Reporting { report.generate() } - def aggregateReportAction( - reportDirectory: File, + def generateAggregateReport( + destinationDirectory: File, executionDataFiles: Seq[File], reportSettings: JacocoReportSettings, sourceDirectories: Seq[File], @@ -50,7 +48,7 @@ private[jacoco] object Reporting { streams: TaskStreams): Unit = { val report = new Report( - reportDirectory = reportDirectory, + reportDirectory = destinationDirectory, executionDataFiles = executionDataFiles, classDirectories = classDirectories, sourceDirectories = sourceDirectories, @@ -61,9 +59,4 @@ private[jacoco] object Reporting { report.generate() } - - class FileWithOrElse(file: File) { - def orElse(otherFileName: String): File = if (file.exists) file else new File(file.getParent, otherFileName) - } - implicit def fileToFileWithOrElse(f: File): FileWithOrElse = new FileWithOrElse(f) } diff --git a/src/main/scala/org/scalasbt/jacoco/report/formats/ScalaHTMLReportFormat.scala b/src/main/scala/org/scalasbt/jacoco/report/formats/ScalaHTMLReportFormat.scala index 76a0fb82..16145f99 100644 --- a/src/main/scala/org/scalasbt/jacoco/report/formats/ScalaHTMLReportFormat.scala +++ b/src/main/scala/org/scalasbt/jacoco/report/formats/ScalaHTMLReportFormat.scala @@ -19,7 +19,6 @@ import org.jacoco.report.html.HTMLFormatter import org.jacoco.report.internal.html.resources.Styles import org.jacoco.report.internal.html.table._ import org.jacoco.report.{FileMultiReportOutput, IReportVisitor} -import org.scalasbt.jacoco.ScalaLanguageNames class ScalaHTMLReportFormat(withBranchCoverage: Boolean = true) extends JacocoReportFormat { override def createVisitor(directory: File, encoding: String): IReportVisitor = { diff --git a/src/main/scala/org/scalasbt/jacoco/ScalaLanguageNames.scala b/src/main/scala/org/scalasbt/jacoco/report/formats/ScalaLanguageNames.scala similarity index 96% rename from src/main/scala/org/scalasbt/jacoco/ScalaLanguageNames.scala rename to src/main/scala/org/scalasbt/jacoco/report/formats/ScalaLanguageNames.scala index 7e4fe541..516a6e26 100644 --- a/src/main/scala/org/scalasbt/jacoco/ScalaLanguageNames.scala +++ b/src/main/scala/org/scalasbt/jacoco/report/formats/ScalaLanguageNames.scala @@ -10,14 +10,14 @@ * http://www.eclipse.org/legal/epl-v10.html */ -package org.scalasbt.jacoco +package org.scalasbt.jacoco.report.formats import org.jacoco.report.JavaNames import org.scalasbt.jacoco.filter.ScalaForwarderDetector import scala.reflect.NameTransformer._ -class ScalaLanguageNames extends JavaNames { +private[formats] class ScalaLanguageNames extends JavaNames { override def getPackageName(vmname: String): String = super.getPackageName(decode(vmname))