diff --git a/its/plugin/src/test/java/com/sonar/python/it/plugin/MetricsTest.java b/its/plugin/src/test/java/com/sonar/python/it/plugin/MetricsTest.java index 5ee806a7ec..f3c19f9d1a 100644 --- a/its/plugin/src/test/java/com/sonar/python/it/plugin/MetricsTest.java +++ b/its/plugin/src/test/java/com/sonar/python/it/plugin/MetricsTest.java @@ -49,10 +49,8 @@ public class MetricsTest { private static final String DUPLICATED_LINES_DENSITY = "duplicated_lines_density"; private static final String EXECUTABLE_LINES_DATA = "executable_lines_data"; private static final String FILE_COMPLEXITY = "file_complexity"; - private static final String FILE_COMPLEXITY_DISTRIBUTION = "file_complexity_distribution"; private static final String FILES = "files"; private static final String FUNCTION_COMPLEXITY = "function_complexity"; - private static final String FUNCTION_COMPLEXITY_DISTRIBUTION = "function_complexity_distribution"; private static final String FUNCTIONS = "functions"; private static final String LINES = "lines"; private static final String NCLOC = "ncloc"; @@ -97,9 +95,7 @@ public void project_level() { assertThat(getProjectMeasureAsDouble(COMPLEXITY)).isEqualTo(3.0, OFFSET); assertThat(getProjectMeasureAsDouble(COGNITIVE_COMPLEXITY)).isEqualTo(3.0, OFFSET); assertThat(getProjectMeasureAsDouble(FUNCTION_COMPLEXITY)).isNull(); - assertThat(getProjectMeasure(FUNCTION_COMPLEXITY_DISTRIBUTION).getValue()).isEqualTo("1=0;2=1;4=0;6=0;8=0;10=0;12=0;20=0;30=0"); assertThat(getProjectMeasureAsDouble(FILE_COMPLEXITY)).isEqualTo(1.5, OFFSET); - assertThat(getProjectMeasure(FILE_COMPLEXITY_DISTRIBUTION).getValue()).isEqualTo("0=2;5=0;10=0;20=0;30=0;60=0;90=0"); // Duplication assertThat(getProjectMeasureAsDouble(DUPLICATED_LINES)).isEqualTo(0.0, OFFSET); assertThat(getProjectMeasureAsDouble(DUPLICATED_BLOCKS)).isEqualTo(0.0, OFFSET); @@ -128,9 +124,7 @@ public void directory_level() { assertThat(getDirectoryMeasureAsDouble(COMPLEXITY)).isEqualTo(3.0, OFFSET); assertThat(getDirectoryMeasureAsDouble(COGNITIVE_COMPLEXITY)).isEqualTo(3.0, OFFSET); assertThat(getDirectoryMeasureAsDouble(FUNCTION_COMPLEXITY)).isNull(); - assertThat(getDirectoryMeasure(FUNCTION_COMPLEXITY_DISTRIBUTION).getValue()).isEqualTo("1=0;2=1;4=0;6=0;8=0;10=0;12=0;20=0;30=0"); assertThat(getDirectoryMeasureAsDouble(FILE_COMPLEXITY)).isEqualTo(1.5, OFFSET); - assertThat(getDirectoryMeasure(FILE_COMPLEXITY_DISTRIBUTION).getValue()).isEqualTo("0=2;5=0;10=0;20=0;30=0;60=0;90=0"); // Duplication assertThat(getDirectoryMeasureAsDouble(DUPLICATED_LINES)).isEqualTo(0.0, OFFSET); assertThat(getDirectoryMeasureAsDouble(DUPLICATED_BLOCKS)).isEqualTo(0.0, OFFSET); @@ -156,9 +150,7 @@ public void file_level() { assertThat(getFileMeasureAsDouble(COMPLEXITY)).isEqualTo(2.0, OFFSET); assertThat(getFileMeasureAsDouble(COGNITIVE_COMPLEXITY)).isEqualTo(1.0, OFFSET); assertThat(getFileMeasureAsDouble(FUNCTION_COMPLEXITY)).isNull(); - assertThat(getFileMeasureAsDouble(FUNCTION_COMPLEXITY_DISTRIBUTION)).isNull(); assertThat(getFileMeasureAsDouble(FILE_COMPLEXITY)).isEqualTo(2.0, OFFSET); - assertThat(getFileMeasureAsDouble(FILE_COMPLEXITY_DISTRIBUTION)).isNull(); // Duplication assertThat(getFileMeasureAsInt(DUPLICATED_LINES)).isZero(); assertThat(getFileMeasureAsInt(DUPLICATED_BLOCKS)).isZero(); diff --git a/sonar-python-plugin/src/main/java/org/sonar/plugins/python/PythonScanner.java b/sonar-python-plugin/src/main/java/org/sonar/plugins/python/PythonScanner.java index e9f8943ccb..296e1878d9 100644 --- a/sonar-python-plugin/src/main/java/org/sonar/plugins/python/PythonScanner.java +++ b/sonar-python-plugin/src/main/java/org/sonar/plugins/python/PythonScanner.java @@ -30,7 +30,6 @@ import org.sonar.api.batch.sensor.SensorContext; import org.sonar.api.batch.sensor.issue.NewIssue; import org.sonar.api.batch.sensor.issue.NewIssueLocation; -import org.sonar.api.ce.measure.RangeDistributionBuilder; import org.sonar.api.issue.NoSonarFilter; import org.sonar.api.measures.CoreMetrics; import org.sonar.api.measures.FileLinesContext; @@ -97,7 +96,7 @@ private void scanFile(InputFile inputFile) { saveMeasures(inputFile, visitorContext); } catch (RecognitionException e) { visitorContext = new PythonVisitorContext(pythonFile, e); - LOG.error("Unable to parse file: " + inputFile.absolutePath()); + LOG.error("Unable to parse file: " + inputFile.toString()); LOG.error(e.getMessage()); context.newAnalysisError() .onFile(inputFile) @@ -163,9 +162,6 @@ private void saveMeasures(InputFile inputFile, PythonVisitorContext visitorConte cpdAnalyzer.pushCpdTokens(inputFile, visitorContext); noSonarFilter.noSonarInFile(inputFile, fileLinesVisitor.getLinesWithNoSonar()); - saveFilesComplexityDistribution(inputFile, fileMetrics); - saveFunctionsComplexityDistribution(inputFile, fileMetrics); - Set linesOfCode = fileLinesVisitor.getLinesOfCode(); saveMetricOnFile(inputFile, CoreMetrics.NCLOC, linesOfCode.size()); saveMetricOnFile(inputFile, CoreMetrics.STATEMENTS, fileMetrics.numberOfStatements()); @@ -193,27 +189,4 @@ private void saveMetricOnFile(InputFile inputFile, Metric metric, Integ .save(); } - private void saveFunctionsComplexityDistribution(InputFile inputFile, FileMetrics fileMetrics) { - RangeDistributionBuilder complexityDistribution = new RangeDistributionBuilder(FUNCTIONS_DISTRIB_BOTTOM_LIMITS); - for (Integer functionComplexity : fileMetrics.functionComplexities()) { - complexityDistribution.add(functionComplexity); - } - - context.newMeasure() - .on(inputFile) - .forMetric(CoreMetrics.FUNCTION_COMPLEXITY_DISTRIBUTION) - .withValue(complexityDistribution.build()) - .save(); - } - - private void saveFilesComplexityDistribution(InputFile inputFile, FileMetrics fileMetrics) { - RangeDistributionBuilder complexityDistribution = new RangeDistributionBuilder(FILES_DISTRIB_BOTTOM_LIMITS); - complexityDistribution.add(fileMetrics.complexity()); - context.newMeasure() - .on(inputFile) - .forMetric(CoreMetrics.FILE_COMPLEXITY_DISTRIBUTION) - .withValue(complexityDistribution.build()) - .save(); - } - } diff --git a/sonar-python-plugin/src/main/java/org/sonar/plugins/python/SonarQubePythonFile.java b/sonar-python-plugin/src/main/java/org/sonar/plugins/python/SonarQubePythonFile.java index 7f5b6333ee..88625c7e4c 100644 --- a/sonar-python-plugin/src/main/java/org/sonar/plugins/python/SonarQubePythonFile.java +++ b/sonar-python-plugin/src/main/java/org/sonar/plugins/python/SonarQubePythonFile.java @@ -37,7 +37,7 @@ public static PythonFile create(InputFile inputFile) { @Override public String fileName() { - return inputFile.path().getFileName().toString(); + return inputFile.filename(); } public InputFile inputFile() { diff --git a/sonar-python-plugin/src/main/java/org/sonar/plugins/python/coverage/PythonCoverageSensor.java b/sonar-python-plugin/src/main/java/org/sonar/plugins/python/coverage/PythonCoverageSensor.java index 438b54754b..500bda499e 100644 --- a/sonar-python-plugin/src/main/java/org/sonar/plugins/python/coverage/PythonCoverageSensor.java +++ b/sonar-python-plugin/src/main/java/org/sonar/plugins/python/coverage/PythonCoverageSensor.java @@ -148,7 +148,7 @@ private static void saveMeasures(Map coverageMeasures, H InputFile inputFile = entry.getKey(); coveredFiles.add(inputFile); if (LOG.isDebugEnabled()) { - LOG.debug("Saving coverage measures for file '{}'", inputFile.relativePath()); + LOG.debug("Saving coverage measures for file '{}'", inputFile.toString()); } entry.getValue() .save(); diff --git a/sonar-python-plugin/src/main/java/org/sonar/plugins/python/pylint/PylintConfiguration.java b/sonar-python-plugin/src/main/java/org/sonar/plugins/python/pylint/PylintConfiguration.java index 1de7e11c65..0dc578c4b0 100644 --- a/sonar-python-plugin/src/main/java/org/sonar/plugins/python/pylint/PylintConfiguration.java +++ b/sonar-python-plugin/src/main/java/org/sonar/plugins/python/pylint/PylintConfiguration.java @@ -24,7 +24,7 @@ import org.sonar.api.ExtensionPoint; import org.sonar.api.batch.ScannerSide; import org.sonar.api.batch.fs.FileSystem; -import org.sonar.api.config.Settings; +import org.sonar.api.config.Configuration; @ScannerSide @ExtensionPoint @@ -33,14 +33,14 @@ public class PylintConfiguration { public static final String PYLINT_CONFIG_KEY = "sonar.python.pylint_config"; public static final String PYLINT_KEY = "sonar.python.pylint"; - private final Settings conf; + private final Configuration conf; - public PylintConfiguration(Settings conf) { + public PylintConfiguration(Configuration conf) { this.conf = conf; } public String getPylintConfigPath(FileSystem fileSystem) { - String configPath = conf.getString(PylintConfiguration.PYLINT_CONFIG_KEY); + String configPath = conf.get(PylintConfiguration.PYLINT_CONFIG_KEY).orElse(""); if (StringUtils.isEmpty(configPath)) { return null; } @@ -53,7 +53,7 @@ public String getPylintConfigPath(FileSystem fileSystem) { } public String getPylintPath() { - return conf.getString(PylintConfiguration.PYLINT_KEY); + return conf.get(PylintConfiguration.PYLINT_KEY).orElse(null); } } diff --git a/sonar-python-plugin/src/main/java/org/sonar/plugins/python/pylint/PylintSensor.java b/sonar-python-plugin/src/main/java/org/sonar/plugins/python/pylint/PylintSensor.java index 4f1c8c2ab3..242805298e 100644 --- a/sonar-python-plugin/src/main/java/org/sonar/plugins/python/pylint/PylintSensor.java +++ b/sonar-python-plugin/src/main/java/org/sonar/plugins/python/pylint/PylintSensor.java @@ -108,7 +108,7 @@ PylintIssuesAnalyzer createAnalyzer(String pylintConfigPath, String pylintPath) private void analyzeFile(SensorContext context, InputFile file, File out) throws IOException { FileSystem fileSystem = context.fileSystem(); - List issues = analyzer.analyze(file.absolutePath(), fileSystem.encoding(), out); + List issues = analyzer.analyze(file.uri().getPath(), fileSystem.encoding(), out); for (Issue pylintIssue : issues) { ActiveRule rule = context.activeRules().find(RuleKey.of(PylintRuleRepository.REPOSITORY_KEY, pylintIssue.getRuleId())); diff --git a/sonar-python-plugin/src/test/java/org/sonar/plugins/python/pylint/PylintConfigurationTest.java b/sonar-python-plugin/src/test/java/org/sonar/plugins/python/pylint/PylintConfigurationTest.java index a2fe6f49d4..6b78bc94fc 100644 --- a/sonar-python-plugin/src/test/java/org/sonar/plugins/python/pylint/PylintConfigurationTest.java +++ b/sonar-python-plugin/src/test/java/org/sonar/plugins/python/pylint/PylintConfigurationTest.java @@ -23,20 +23,20 @@ import org.junit.Before; import org.junit.Test; import org.sonar.api.batch.fs.internal.DefaultFileSystem; +import org.sonar.api.config.internal.ConfigurationBridge; import org.sonar.api.config.internal.MapSettings; -import org.sonar.api.config.Settings; import static org.assertj.core.api.Assertions.assertThat; public class PylintConfigurationTest { - private Settings settings; + private MapSettings settings; private PylintConfiguration pylintConfiguration; @Before public void setUp() { settings = new MapSettings(); - pylintConfiguration = new PylintConfiguration(settings); + pylintConfiguration = new PylintConfiguration(new ConfigurationBridge(settings)); } @Test