Skip to content

Commit f43b608

Browse files
authored
Merge pull request #21 from c-a-services/Changing_extension_in_config_still_scanning_.xml_files_#20
Changing extension in config still scanning .xml files #20
2 parents c540f2b + a8e49fa commit f43b608

File tree

4 files changed

+24
-13
lines changed

4 files changed

+24
-13
lines changed

src/main/java/com/mulesoft/services/tools/sonarqube/filter/MuleFilePredicate.java

Lines changed: 20 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -11,26 +11,36 @@
1111
import org.sonar.api.utils.log.Loggers;
1212

1313
public class MuleFilePredicate implements FilePredicate {
14+
1415
private final Logger logger = Loggers.get(MuleFilePredicate.class);
1516
SAXBuilder saxBuilder = new SAXBuilder();
1617
String muleNamespace = "http://www.mulesoft.org/schema/mule/core";
17-
String fileExtension = ".xml";
18+
String[] fileExtensions;
19+
/**
20+
*
21+
*/
22+
public MuleFilePredicate(String[] aFileSuffixes) {
23+
super();
24+
fileExtensions = aFileSuffixes;
25+
}
1826

1927
@Override
2028
public boolean apply(InputFile inputFile) {
2129
if (logger.isDebugEnabled()) {
2230
logger.debug("Executing Mule Sensor on file:" + inputFile.filename());
2331
}
2432

25-
if (inputFile.filename().endsWith(fileExtension)) {
26-
try {
27-
Document document = saxBuilder.build(inputFile.inputStream());
28-
29-
String namespace = document.getRootElement().getNamespaceURI();
30-
if (muleNamespace.equals(namespace))
31-
return true;
32-
} catch (JDOMException | IOException e) {
33-
logger.error("Parsing document:" + inputFile.filename(), e);
33+
for (String fileExtension : fileExtensions) {
34+
if (inputFile.filename().endsWith(fileExtension)) {
35+
try {
36+
Document document = saxBuilder.build(inputFile.inputStream());
37+
38+
String namespace = document.getRootElement().getNamespaceURI();
39+
if (muleNamespace.equals(namespace))
40+
return true;
41+
} catch (JDOMException | IOException e) {
42+
logger.error("Parsing document:" + inputFile.filename(), e);
43+
}
3444
}
3545
}
3646
return false;

src/main/java/com/mulesoft/services/tools/sonarqube/metrics/AbstractMuleSensor.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
import org.sonar.api.batch.sensor.SensorContext;
88

99
import com.mulesoft.services.tools.sonarqube.filter.MuleFilePredicate;
10+
import com.mulesoft.services.tools.sonarqube.language.MuleLanguage;
1011
import com.mulesoft.services.tools.sonarqube.sensor.MuleSensor;
1112

1213
public abstract class AbstractMuleSensor implements Sensor {
@@ -18,7 +19,7 @@ public void execute(SensorContext context) {
1819

1920
FileSystem fs = context.fileSystem();
2021
// Only ConfigurationFiles
21-
Iterable<InputFile> files = fs.inputFiles(new MuleFilePredicate());
22+
Iterable<InputFile> files = fs.inputFiles(new MuleFilePredicate(new MuleLanguage(context.config()).getFileSuffixes()));
2223
for (InputFile file : files) {
2324
process(context, file, MuleSensor.getLanguage(context));
2425
}

src/main/java/com/mulesoft/services/tools/sonarqube/metrics/CoverageSensor.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@ public void execute(SensorContext context) {
6262
MuleProperties.getProperties(MuleSensor.getLanguage(context)), munitJsonReport);
6363
FileSystem fs = context.fileSystem();
6464
// Only ConfigurationFiles
65-
Iterable<InputFile> files = fs.inputFiles(new MuleFilePredicate());
65+
Iterable<InputFile> files = fs.inputFiles(new MuleFilePredicate(new MuleLanguage(context.config()).getFileSuffixes()));
6666
for (InputFile file : files) {
6767
saveCoverage(coverage, file.filename(), context, file);
6868
}

src/main/java/com/mulesoft/services/tools/sonarqube/sensor/MuleSensor.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ public void execute(SensorContext context) {
4949

5050
FilePredicates p = fs.predicates();
5151
Map<RuleKey, List<NewIssue>> issues = new HashMap<RuleKey, List<NewIssue>>();
52-
fs.inputFiles(p.and(p.hasLanguage(MuleLanguage.LANGUAGE_KEY), new MuleFilePredicate()))
52+
fs.inputFiles(p.and(p.hasLanguage(MuleLanguage.LANGUAGE_KEY), new MuleFilePredicate(new MuleLanguage(context.config()).getFileSuffixes())))
5353
.forEach(new SonarRuleConsumer(getLanguage(context), context, issues));
5454

5555
// Iterate and save all the issues

0 commit comments

Comments
 (0)