Skip to content

Commit d6a0491

Browse files
committed
clean: Update logging and use new parser
1 parent f4f0208 commit d6a0491

File tree

8 files changed

+30
-66
lines changed

8 files changed

+30
-66
lines changed

src/main/resources/logback-test.xml

Lines changed: 0 additions & 17 deletions
This file was deleted.

src/main/scala/com/codacy/CodacyCoverageReporter.scala

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,15 +4,16 @@ import com.codacy.configuration.parser.{CommandConfiguration, ConfigurationParsi
44
import com.codacy.di.Components
55
import com.codacy.helpers.LoggerHelper
66
import com.codacy.model.configuration.{FinalConfig, ReportConfig}
7+
import com.typesafe.scalalogging.LazyLogging
78

8-
object CodacyCoverageReporter extends ConfigurationParsingApp {
9+
object CodacyCoverageReporter extends ConfigurationParsingApp with LazyLogging {
910

1011
def run(commandConfig: CommandConfiguration): Unit = {
1112
val components = new Components(commandConfig)
1213

1314
val validatedConfig = components.validatedConfig
1415

15-
val logger = LoggerHelper.logger(getClass, validatedConfig)
16+
LoggerHelper.setLoggerLevel(logger, validatedConfig.baseConfig.debug)
1617

1718
logger.debug(validatedConfig.toString)
1819

src/main/scala/com/codacy/di/Components.scala

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,8 @@ package com.codacy.di
33
import com.codacy.api.client.CodacyClient
44
import com.codacy.api.service.CoverageServices
55
import com.codacy.configuration.parser.CommandConfiguration
6-
import com.codacy.helpers.LoggerHelper
76
import com.codacy.model.configuration.Configuration
87
import com.codacy.rules.{ConfigurationRules, ReportRules}
9-
import rapture.json.jsonBackends.play._
108

119
class Components(private val cmdConfig: CommandConfiguration) {
1210
lazy val validatedConfig: Configuration = configRules.validatedConfig
Lines changed: 4 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,29 +1,16 @@
11
package com.codacy.helpers
22

33
import ch.qos.logback.classic.Level
4-
import com.codacy.configuration.parser.CommandConfiguration
5-
import com.codacy.model.configuration.Configuration
6-
import org.log4s.Logger
4+
import com.typesafe.scalalogging.Logger
75

86
object LoggerHelper {
97

10-
def logger(clazz: Class[_], config: CommandConfiguration): Logger =
11-
getLogger(clazz, config.baseConfig.debug.fold(false)(_ => true))
12-
13-
def logger(clazz: Class[_], config: Configuration): Logger =
14-
getLogger(clazz, config.baseConfig.debug)
15-
16-
private def getLogger(clazz: Class[_], debug: Boolean): org.log4s.Logger = {
17-
val logger = org.log4s.getLogger(clazz)
18-
setLoggerLevel(logger, debug)
19-
logger
20-
}
21-
22-
private def setLoggerLevel(logger: org.log4s.Logger, debug: Boolean): Unit = {
8+
def setLoggerLevel(logger: Logger, debug: Boolean): Unit = {
239
if (debug) {
24-
logger.logger
10+
logger.underlying
2511
.asInstanceOf[ch.qos.logback.classic.Logger]
2612
.setLevel(Level.DEBUG)
2713
}
2814
}
15+
2916
}

src/main/scala/com/codacy/model/configuration/Configuration.scala

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ package com.codacy.model.configuration
22

33
import java.io.File
44

5-
import com.codacy.api.Language
5+
import com.codacy.plugins.api.languages.{Language, Languages}
66

77
sealed trait Configuration {
88
def baseConfig: BaseConfig
@@ -17,10 +17,7 @@ case class ReportConfig(
1717
prefix: String
1818
) extends Configuration {
1919

20-
lazy val language: Language.Value =
21-
Language.values.find(_.toString == languageStr).getOrElse(Language.NotDefined)
22-
23-
lazy val hasKnownLanguage: Boolean = language != Language.NotDefined
20+
lazy val language: Option[Language] = Languages.fromName(languageStr)
2421
}
2522

2623
case class FinalConfig(baseConfig: BaseConfig) extends Configuration

src/main/scala/com/codacy/rules/ConfigurationRules.scala

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,14 +6,15 @@ import cats.implicits._
66
import com.codacy.configuration.parser.{BaseCommandConfig, CommandConfiguration, Final, Report}
77
import com.codacy.helpers.LoggerHelper
88
import com.codacy.model.configuration.{BaseConfig, Configuration, FinalConfig, ReportConfig}
9+
import com.typesafe.scalalogging.LazyLogging
910

1011
import scala.language.implicitConversions
1112
import scala.util.Try
1213

13-
class ConfigurationRules(cmdConfig: CommandConfiguration) {
14+
class ConfigurationRules(cmdConfig: CommandConfiguration) extends LazyLogging {
1415
private val publicApiBaseUrl = "https://api.codacy.com"
1516

16-
private val logger = LoggerHelper.logger(getClass, cmdConfig)
17+
LoggerHelper.setLoggerLevel(logger, cmdConfig.baseConfig.debug)
1718

1819
lazy val validatedConfig: Configuration = {
1920
val config = validateConfig(cmdConfig)
@@ -43,7 +44,7 @@ class ConfigurationRules(cmdConfig: CommandConfiguration) {
4344
private def validateReportConfig(reportConfig: Report): Either[String, ReportConfig] = {
4445
def validate(reportConf: ReportConfig) = {
4546
reportConf match {
46-
case config if !config.hasKnownLanguage && !config.forceLanguage =>
47+
case config if config.language.isEmpty && !config.forceLanguage =>
4748
Left(s"Invalid language ${config.languageStr}")
4849

4950
case _ =>

src/main/scala/com/codacy/rules/ReportRules.scala

Lines changed: 13 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -3,24 +3,22 @@ package com.codacy.rules
33
import java.io.File
44

55
import cats.implicits._
6+
import com.codacy.api.CoverageReport
67
import com.codacy.api.client.{FailedResponse, SuccessfulResponse}
78
import com.codacy.api.helpers.FileHelper
89
import com.codacy.api.helpers.vcs.{CommitInfo, GitClient}
910
import com.codacy.api.service.CoverageServices
10-
import com.codacy.api.{CoverageFileReport, CoverageReport}
1111
import com.codacy.helpers.LoggerHelper
1212
import com.codacy.model.configuration.{BaseConfig, Configuration, FinalConfig, ReportConfig}
13-
import com.codacy.parsers.CoverageParserFactory
13+
import com.codacy.parsers.CoverageParser
1414
import com.codacy.transformation.PathPrefixer
15-
import org.log4s.Logger
16-
import rapture.json.jsonBackends.play._
17-
import rapture.json.{Json, Serializer}
15+
import com.typesafe.scalalogging.LazyLogging
1816

1917
import scala.util.{Failure, Success}
2018

21-
class ReportRules(config: Configuration, coverageServices: => CoverageServices) {
19+
class ReportRules(config: Configuration, coverageServices: => CoverageServices) extends LazyLogging {
2220

23-
private val logger: Logger = LoggerHelper.logger(getClass, config)
21+
LoggerHelper.setLoggerLevel(logger, config.baseConfig.debug)
2422

2523
private val rootProjectDir = new File(System.getProperty("user.dir"))
2624

@@ -45,8 +43,10 @@ class ReportRules(config: Configuration, coverageServices: => CoverageServices)
4543
logger.debug(s"Project token: ${config.baseConfig.projectToken}")
4644
logger.info(s"Parsing coverage data from: ${config.coverageReport.getAbsolutePath} ...")
4745

48-
CoverageParserFactory
49-
.withCoverageReport(config.language, rootProjectDir, config.coverageReport)(transform(_)(config) {
46+
CoverageParser
47+
.parse(rootProjectDir, config.coverageReport)
48+
.map(transform(_)(config))
49+
.flatMap {
5050
case report if report.fileReports.isEmpty =>
5151
Left("The provided coverage report generated an empty result.")
5252

@@ -57,7 +57,6 @@ class ReportRules(config: Configuration, coverageServices: => CoverageServices)
5757
val codacyReportFile = new File(codacyReportFilename)
5858

5959
logger.debug(report.toString)
60-
implicit val ser = implicitly[Serializer[CoverageFileReport, Json]]
6160
FileHelper.writeJsonToFile(codacyReportFile, report)
6261

6362
logUploadedFileInfo(codacyReportFile)
@@ -69,8 +68,7 @@ class ReportRules(config: Configuration, coverageServices: => CoverageServices)
6968
val message = handleFailedResponse(failed)
7069
Left(s"Failed to upload report: $message")
7170
}
72-
})
73-
.joinRight
71+
}
7472
}
7573
}
7674

@@ -91,13 +89,11 @@ class ReportRules(config: Configuration, coverageServices: => CoverageServices)
9189
}
9290
}
9391

94-
private def transform[A](report: CoverageReport)(config: ReportConfig)(f: CoverageReport => A): A = {
92+
private def transform(report: CoverageReport)(config: ReportConfig): CoverageReport = {
9593
val transformations = Set(new PathPrefixer(config.prefix))
96-
val transformedReport = transformations.foldLeft(report) { (report, transformation) =>
94+
transformations.foldLeft(report) { (report, transformation) =>
9795
transformation.execute(report)
9896
}
99-
100-
f(transformedReport)
10197
}
10298

10399
def finalReport(config: FinalConfig): Either[String, String] = {
@@ -129,4 +125,5 @@ class ReportRules(config: Configuration, coverageServices: => CoverageServices)
129125

130126
maybeCommitUUID.flatMap(block)
131127
}
128+
132129
}

src/test/scala/com/codacy/rules/ConfigurationRulesTest.scala

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,14 +2,14 @@ package com.codacy.rules
22

33
import java.io.File
44

5-
import com.codacy.api.Language
65
import com.codacy.configuration.parser.{BaseCommandConfig, Report}
76
import com.codacy.di.Components
87
import com.codacy.model.configuration.ReportConfig
8+
import com.codacy.plugins.api.languages.Languages
99
import org.scalatest.Inside._
1010
import org.scalatest._
1111

12-
class ConfigurationRulesTest extends FlatSpec with Matchers {
12+
class ConfigurationRulesTest extends FlatSpec with Matchers with OptionValues {
1313

1414
val projToken = "1234adasdsdw333"
1515
val coverageFile = new File("coverage.xml")
@@ -23,7 +23,7 @@ class ConfigurationRulesTest extends FlatSpec with Matchers {
2323
"ConfigurationRules" should "transform configuration" in {
2424
inside(components.validatedConfig) {
2525
case config: ReportConfig =>
26-
config.language should be(Language.Scala)
26+
config.language.value should be(Languages.Scala)
2727
config.coverageReport.toString should be("coverage.xml")
2828
}
2929

@@ -34,7 +34,7 @@ class ConfigurationRulesTest extends FlatSpec with Matchers {
3434
case config: ReportConfig =>
3535
val result = components.reportRules.coverageWithTokenAndCommit(config)
3636

37-
result should be(Left("could not parse report, unrecognized report format (tried: Cobertura, Jacoco)"))
37+
result should be(Left("Could not parse report, unrecognized report format (tried: Cobertura, Jacoco)"))
3838
}
3939
}
4040

0 commit comments

Comments
 (0)