Skip to content

Commit 1a1b6c8

Browse files
Removed + operator from log strings to conform to rest of plugin
Clarified disctinction between root and modular analysis Re-added unused Project variable that was there before Re-added misspelled function name Fixed whitespace issues
1 parent 0acd43d commit 1a1b6c8

File tree

3 files changed

+72
-35
lines changed

3 files changed

+72
-35
lines changed

sonar-swift-plugin/src/main/java/org/sonar/plugins/swift/coverage/CoberturaReportParser.java

Lines changed: 16 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -84,12 +84,9 @@ private void collectPackageMeasures(SMInputCursor pack) throws XMLStreamExceptio
8484
collectFileMeasures(pack.descendantElementCursor("class"), builderByFilename);
8585
for (Map.Entry<String, CoverageMeasuresBuilder> entry : builderByFilename.entrySet()) {
8686
String filePath = entry.getKey();
87-
if (project.isModule()) {
88-
if (!filePath.startsWith(project.path())) {
89-
continue;
90-
}
91-
// fileSystem.baseDir() will include the module path, so we need to get rid of it here
92-
filePath = filePath.substring(project.path().length());
87+
filePath = getAdjustedPathIfProjectIsModule(filePath);
88+
if (filePath == null) {
89+
continue;
9390
}
9491
File file = new File(fileSystem.baseDir(), filePath);
9592
InputFile inputFile = fileSystem.inputFile(fileSystem.predicates().hasAbsolutePath(file.getAbsolutePath()));
@@ -105,7 +102,7 @@ private void collectPackageMeasures(SMInputCursor pack) throws XMLStreamExceptio
105102
context.saveMeasure(resource, measure);
106103
}
107104
}
108-
LOGGER.info("Successfully collected measures for file " + file.getPath());
105+
LOGGER.info("Successfully collected measures for file {}", file.getPath());
109106
}
110107
}
111108
}
@@ -114,6 +111,18 @@ private boolean resourceExists(Resource file) {
114111
return context.getResource(file) != null;
115112
}
116113

114+
private String getAdjustedPathIfProjectIsModule(String filePath) {
115+
if (project.isModule()) {
116+
// the file doesn't belong to the module we're analyzing
117+
if (!filePath.startsWith(project.path())) {
118+
return null;
119+
}
120+
// fileSystem.baseDir() will include the module path, so we need to get rid of it here
121+
return filePath.substring(project.path().length());
122+
}
123+
return filePath;
124+
}
125+
117126
private static void collectFileMeasures(SMInputCursor clazz,
118127
Map<String, CoverageMeasuresBuilder> builderByFilename) throws XMLStreamException {
119128
while (clazz.getNext() != null) {

sonar-swift-plugin/src/main/java/org/sonar/plugins/swift/coverage/ReportFilesFinder.java

Lines changed: 37 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -44,11 +44,23 @@ public ReportFilesFinder(final Settings settings, final String settingsReportKey
4444
this.settingsDirectoryKey = settingsDirectoryKey;
4545
}
4646

47+
public List<File> reportsIn(final String baseDirectory) {
48+
49+
final String reportDirectory = getReportDirectory(baseDirectory, baseDirectory); // the root directory in this case is the base directory
50+
final String reportPattern = getReportPattern();
51+
return reportsInHelper(reportDirectory, reportPattern);
52+
}
53+
4754
public List<File> reportsIn(final String module, final String rootDirectory, final String baseDirectory) {
4855

4956
final String reportDirectory = getReportDirectory(module, rootDirectory, baseDirectory);
5057
final String reportPattern = getReportPattern(module);
51-
final String[] relPaths = filesMatchingPattern(reportDirectory, reportPattern);
58+
return reportsInHelper(reportDirectory, reportPattern);
59+
}
60+
61+
private List<File> reportsInHelper(final String reportDirectory, final String reportPattern) {
62+
63+
final String[] relPaths = filesMathingPattern(reportDirectory, reportPattern);
5264

5365
final List<File> reports = new ArrayList<File>();
5466

@@ -59,49 +71,53 @@ public List<File> reportsIn(final String module, final String rootDirectory, fin
5971
return reports;
6072
}
6173

62-
private String[] filesMatchingPattern(final String reportDirectory, final String reportPath) {
74+
private String[] filesMathingPattern(final String reportDirectory, final String reportPath) {
6375

6476
final DirectoryScanner scanner = new DirectoryScanner();
6577
scanner.setIncludes(new String[] { reportPath });
6678
scanner.setBasedir(new File(reportDirectory));
6779
scanner.scan();
68-
69-
LOGGER.info("Files found in directory '" + reportDirectory + "' including '" + reportPath + "': " + Arrays.toString(scanner.getIncludedFiles()));
80+
81+
LOGGER.info("Files found in directory '{}' including '{}': {}", reportDirectory, reportPath, Arrays.toString(scanner.getIncludedFiles()));
7082

7183
return scanner.getIncludedFiles();
7284
}
7385

74-
private String getReportPattern(final String module) {
75-
76-
String reportPath = conf.getString(module + "." + settingsReportKey);
86+
private String getReportPattern() {
7787

88+
String reportPath = conf.getString(settingsReportKey);
7889
if (reportPath == null) {
79-
reportPath = conf.getString(settingsReportKey);
90+
reportPath = settingsReportDefault;
8091
}
92+
return reportPath;
93+
}
8194

95+
private String getReportPattern(final String module) {
96+
97+
String reportPath = conf.getString(module + "." + settingsReportKey);
8298
if (reportPath == null) {
83-
reportPath = settingsReportDefault;
99+
return getReportPattern();
84100
}
85-
86101
return reportPath;
87102
}
88103

89-
private String getReportDirectory(final String module, final String rootDirectory, final String defaultDirectory) {
90-
91-
String reportDirectory = conf.getString(module + "." + settingsDirectoryKey);
104+
private String getReportDirectory(final String rootDirectory, final String baseDirectory) {
92105

106+
String reportDirectory = conf.getString(settingsDirectoryKey);
93107
if (reportDirectory == null) {
94-
reportDirectory = conf.getString(settingsDirectoryKey);
108+
return baseDirectory;
95109
}
110+
return rootDirectory + "/" + reportDirectory;
111+
}
96112

97-
if (reportDirectory != null) {
98-
reportDirectory = rootDirectory + reportDirectory;
99-
}
100-
else {
101-
reportDirectory = defaultDirectory;
102-
}
103113

104-
return reportDirectory;
114+
private String getReportDirectory(final String module, final String rootDirectory, final String baseDirectory) {
115+
116+
String reportDirectory = conf.getString(module + "." + settingsDirectoryKey);
117+
if (reportDirectory == null) {
118+
return getReportDirectory(rootDirectory, baseDirectory);
119+
}
120+
return rootDirectory + "/" + reportDirectory;
105121
}
106122

107123
}

sonar-swift-plugin/src/main/java/org/sonar/plugins/swift/coverage/SwiftCoberturaSensor.java

Lines changed: 19 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@
2929
import org.sonar.plugins.swift.lang.core.Swift;
3030

3131
import java.io.File;
32+
import java.util.List;
3233

3334

3435
public final class SwiftCoberturaSensor implements Sensor {
@@ -44,29 +45,40 @@ public final class SwiftCoberturaSensor implements Sensor {
4445
private final Settings settings;
4546
private final FileSystem fileSystem;
4647
private final PathResolver pathResolver;
48+
private Project project;
4749

4850
public SwiftCoberturaSensor(final FileSystem fileSystem, final PathResolver pathResolver, final Settings settings) {
49-
51+
5052
this.settings = settings;
5153
this.fileSystem = fileSystem;
52-
this.pathResolver = pathResolver;
54+
this.pathResolver = pathResolver;
5355

5456
reportFilesFinder = new ReportFilesFinder(settings, REPORT_PATTERN_KEY, DEFAULT_REPORT_PATTERN, REPORT_DIRECTORY_KEY);
55-
}
57+
}
5658

5759
public boolean shouldExecuteOnProject(final Project project) {
60+
61+
this.project = project;
62+
5863
return fileSystem.languages().contains(Swift.KEY);
5964
}
6065

6166
public void analyse(final Project project, final SensorContext context) {
6267

6368
final String projectBaseDir = fileSystem.baseDir().getPath();
64-
LOGGER.info("Analyzing directory: " + projectBaseDir);
69+
LOGGER.info("Analyzing directory: {}", projectBaseDir);
6570

66-
final String module = project.getName();
67-
final String rootDir = getRootDirectory(project);
71+
List<File> reports;
72+
if (project.isRoot()) {
73+
reports = reportFilesFinder.reportsIn(projectBaseDir);
74+
}
75+
else {
76+
final String module = project.getName();
77+
final String rootDir = getRootDirectory(project);
78+
reports = reportFilesFinder.reportsIn(module, rootDir, projectBaseDir);
79+
}
6880

69-
for (final File report : reportFilesFinder.reportsIn(module, rootDir, projectBaseDir)) {
81+
for (final File report : reports) {
7082
LOGGER.info("Processing coverage report {}", report);
7183
CoberturaReportParser.parseReport(report, fileSystem, project, context);
7284
}

0 commit comments

Comments
 (0)