Skip to content

Commit 4baf9d9

Browse files
committed
Resolves #31
1 parent 116972a commit 4baf9d9

File tree

5 files changed

+40
-21
lines changed

5 files changed

+40
-21
lines changed

plugin/dev.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
#!/bin/bash
22

3-
SONAR_HOME=~/bin/sonarqube-5.1
3+
SONAR_HOME=~/bin/sonarqube-5.4
44
PLUGIN_VERSION=5.1.2
55

66
mvn install
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
package com.buransky.plugins.scoverage
2+
3+
import com.buransky.plugins.scoverage.language.Scala
4+
import org.sonar.api.resources.Languages
5+
import org.sonar.api.{Extension, ExtensionProvider, ServerExtension}
6+
7+
import scala.collection.JavaConversions._
8+
import scala.collection.mutable.ListBuffer
9+
10+
class ScoverageExtensionProvider(languages: Languages) extends ExtensionProvider with ServerExtension {
11+
override def provide(): java.util.List[Class[_ <: Extension]] = {
12+
val result = ListBuffer[Class[_ <: Extension]]()
13+
14+
if (languages.get(Scala.key) == null) {
15+
// Fix issue with multiple Scala plugins:
16+
// https://github.com/RadoBuransky/sonar-scoverage-plugin/issues/31
17+
result += classOf[Scala]
18+
}
19+
20+
result
21+
}
22+
}

plugin/src/main/scala/com/buransky/plugins/scoverage/ScoveragePlugin.scala

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,6 @@
1919
*/
2020
package com.buransky.plugins.scoverage
2121

22-
import com.buransky.plugins.scoverage.language.Scala
2322
import com.buransky.plugins.scoverage.measure.ScalaMetrics
2423
import com.buransky.plugins.scoverage.sensor.ScoverageSensor
2524
import com.buransky.plugins.scoverage.widget.ScoverageWidget
@@ -34,12 +33,13 @@ import scala.collection.mutable.ListBuffer
3433
* @author Rado Buransky
3534
*/
3635
class ScoveragePlugin extends SonarPlugin {
37-
override def getExtensions: java.util.List[Class[_ <: Extension]] = ListBuffer(
38-
classOf[Scala],
39-
classOf[ScalaMetrics],
40-
classOf[ScoverageSensor],
41-
classOf[ScoverageWidget]
42-
)
36+
override def getExtensions: java.util.List[Class[_ <: Extension]] =
37+
ListBuffer(
38+
classOf[ScoverageExtensionProvider],
39+
classOf[ScalaMetrics],
40+
classOf[ScoverageSensor],
41+
classOf[ScoverageWidget]
42+
)
4343

4444
override val toString = getClass.getSimpleName
4545
}

plugin/src/main/scala/com/buransky/plugins/scoverage/sensor/ScoverageSensor.scala

Lines changed: 9 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -19,37 +19,34 @@
1919
*/
2020
package com.buransky.plugins.scoverage.sensor
2121

22-
import java.io
23-
2422
import com.buransky.plugins.scoverage.language.Scala
2523
import com.buransky.plugins.scoverage.measure.ScalaMetrics
24+
import com.buransky.plugins.scoverage.pathcleaner.{BruteForceSequenceMatcher, PathSanitizer}
2625
import com.buransky.plugins.scoverage.util.LogUtil
2726
import com.buransky.plugins.scoverage.xml.XmlScoverageReportParser
28-
import com.buransky.plugins.scoverage.{ CoveredStatement, DirectoryStatementCoverage, FileStatementCoverage, _ }
29-
import org.sonar.api.batch.fs.{ FileSystem, InputFile, InputDir, InputPath }
30-
import org.sonar.api.batch.{ CoverageExtension, Sensor, SensorContext }
27+
import com.buransky.plugins.scoverage.{CoveredStatement, DirectoryStatementCoverage, FileStatementCoverage, _}
28+
import org.sonar.api.batch.fs.{FileSystem, InputFile, InputPath}
29+
import org.sonar.api.batch.{CoverageExtension, Sensor, SensorContext}
3130
import org.sonar.api.config.Settings
32-
import org.sonar.api.measures.{ CoreMetrics, CoverageMeasuresBuilder, Measure }
33-
import org.sonar.api.resources.{ File, Project, Directory, Resource }
31+
import org.sonar.api.measures.{CoverageMeasuresBuilder, Measure}
32+
import org.sonar.api.resources.{Project, Resource}
3433
import org.sonar.api.scan.filesystem.PathResolver
3534
import org.sonar.api.utils.log.Loggers
3635

3736
import scala.collection.JavaConversions._
38-
import com.buransky.plugins.scoverage.pathcleaner.BruteForceSequenceMatcher
39-
import com.buransky.plugins.scoverage.pathcleaner.PathSanitizer
4037

4138
/**
4239
* Main sensor for importing Scoverage report to Sonar.
4340
*
4441
* @author Rado Buransky
4542
*/
46-
class ScoverageSensor(settings: Settings, pathResolver: PathResolver, fileSystem: FileSystem, scala: Scala)
43+
class ScoverageSensor(settings: Settings, pathResolver: PathResolver, fileSystem: FileSystem)
4744
extends Sensor with CoverageExtension {
4845
private val log = Loggers.get(classOf[ScoverageSensor])
4946
protected val SCOVERAGE_REPORT_PATH_PROPERTY = "sonar.scoverage.reportPath"
5047
protected lazy val scoverageReportParser: ScoverageReportParser = XmlScoverageReportParser()
5148

52-
override def shouldExecuteOnProject(project: Project): Boolean = fileSystem.languages().contains(scala.getKey)
49+
override def shouldExecuteOnProject(project: Project): Boolean = fileSystem.languages().contains(Scala.key)
5350

5451
override def analyse(project: Project, context: SensorContext) {
5552
scoverageReportPath match {
@@ -188,7 +185,7 @@ class ScoverageSensor(settings: Settings, pathResolver: PathResolver, fileSystem
188185
val p = fileSystem.predicates()
189186
Option(fileSystem.inputFile(p.and(
190187
p.hasRelativePath(path),
191-
p.hasLanguage(scala.getKey),
188+
p.hasLanguage(Scala.key),
192189
p.hasType(InputFile.Type.MAIN))))
193190
} else {
194191
Option(fileSystem.inputDir(pathResolver.relativeFile(fileSystem.baseDir(), path)))

plugin/src/test/scala/com/buransky/plugins/scoverage/sensor/ScoverageSensorSpec.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -117,6 +117,6 @@ class ScoverageSensorSpec extends FlatSpec with Matchers with MockitoSugar {
117117
val settings = mock[Settings]
118118
val pathResolver = mock[PathResolver]
119119
val fileSystem = mock[FileSystem]
120-
} with ScoverageSensor(settings, pathResolver, fileSystem, scala)
120+
} with ScoverageSensor(settings, pathResolver, fileSystem)
121121

122122
}

0 commit comments

Comments
 (0)