Skip to content

Commit d0b10f5

Browse files
[NO JIRA] Update dependencies after the release
1 parent d914d02 commit d0b10f5

58 files changed

Lines changed: 428 additions & 353 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

docs/java-custom-rules-example/pom.xml

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@
2424
<dependency>
2525
<groupId>org.sonarsource.api.plugin</groupId>
2626
<artifactId>sonar-plugin-api</artifactId>
27-
<version>9.9.0.229</version>
27+
<version>10.12.0.2522</version>
2828
<scope>provided</scope>
2929
</dependency>
3030
<dependency>
@@ -46,6 +46,12 @@
4646
</dependency>
4747

4848
<!-- TEST sources dependencies -->
49+
<dependency>
50+
<groupId>org.sonarsource.api.plugin</groupId>
51+
<artifactId>sonar-plugin-api-test-fixtures</artifactId>
52+
<scope>test</scope>
53+
</dependency>
54+
4955
<dependency>
5056
<groupId>org.sonarsource.java</groupId>
5157
<artifactId>java-checks-testkit</artifactId>

docs/java-custom-rules-example/src/main/java/org/sonar/samples/java/checks/AvoidBrandInMethodNamesRule.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,8 @@
55
package org.sonar.samples.java.checks;
66

77
import java.util.Locale;
8-
import org.sonar.api.utils.log.Logger;
9-
import org.sonar.api.utils.log.Loggers;
8+
import org.slf4j.Logger;
9+
import org.slf4j.LoggerFactory;
1010
import org.sonar.check.Rule;
1111
import org.sonar.plugins.java.api.JavaFileScanner;
1212
import org.sonar.plugins.java.api.JavaFileScannerContext;
@@ -17,7 +17,7 @@
1717
@Rule(key = "AvoidBrandInMethodNames")
1818
public class AvoidBrandInMethodNamesRule extends BaseTreeVisitor implements JavaFileScanner {
1919

20-
private static final Logger LOGGER = Loggers.get(AvoidBrandInMethodNamesRule.class);
20+
private static final Logger LOGGER = LoggerFactory.getLogger(AvoidBrandInMethodNamesRule.class);
2121

2222
private JavaFileScannerContext context;
2323

docs/java-custom-rules-example/src/main/java/org/sonar/samples/java/checks/SecurityAnnotationMandatoryRule.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,8 @@
55
package org.sonar.samples.java.checks;
66

77
import java.util.List;
8-
import org.sonar.api.utils.log.Logger;
9-
import org.sonar.api.utils.log.Loggers;
8+
import org.slf4j.Logger;
9+
import org.slf4j.LoggerFactory;
1010
import org.sonar.check.Rule;
1111
import org.sonar.check.RuleProperty;
1212
import org.sonar.plugins.java.api.JavaFileScanner;
@@ -26,7 +26,7 @@
2626
@Rule(key = "SecurityAnnotationMandatory")
2727
public class SecurityAnnotationMandatoryRule extends BaseTreeVisitor implements JavaFileScanner {
2828

29-
private static final Logger LOGGER = Loggers.get(SecurityAnnotationMandatoryRule.class);
29+
private static final Logger LOGGER = LoggerFactory.getLogger(SecurityAnnotationMandatoryRule.class);
3030

3131
private static final String DEFAULT_VALUE = "MySecurityAnnotation";
3232

docs/java-custom-rules-example/src/test/java/org/sonar/samples/java/checks/AvoidBrandInMethodNamesRuleTest.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,16 +7,16 @@
77
import org.junit.Rule;
88
import org.junit.jupiter.api.Test;
99
import org.junit.jupiter.migrationsupport.rules.EnableRuleMigrationSupport;
10-
import org.sonar.api.utils.log.LogTester;
11-
import org.sonar.api.utils.log.LoggerLevel;
10+
import org.slf4j.event.Level;
11+
import org.sonar.api.testfixtures.log.LogTester;
1212
import org.sonar.java.checks.verifier.CheckVerifier;
1313

1414
@EnableRuleMigrationSupport
1515
class AvoidBrandInMethodNamesRuleTest {
1616

1717
// Set a LogTester to see the Syntax Tree when running tests and executing the rule
1818
@Rule
19-
public LogTester logTester = new LogTester().setLevel(LoggerLevel.DEBUG);
19+
public LogTester logTester = new LogTester().setLevel(Level.DEBUG);
2020

2121
@Test
2222
void detected() {

docs/java-custom-rules-example/src/test/java/org/sonar/samples/java/checks/SecurityAnnotationMandatoryRuleTest.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,16 +7,16 @@
77
import org.junit.Rule;
88
import org.junit.jupiter.api.Test;
99
import org.junit.jupiter.migrationsupport.rules.EnableRuleMigrationSupport;
10-
import org.sonar.api.utils.log.LogTester;
11-
import org.sonar.api.utils.log.LoggerLevel;
10+
import org.slf4j.event.Level;
11+
import org.sonar.api.testfixtures.log.LogTester;
1212
import org.sonar.java.checks.verifier.CheckVerifier;
1313

1414
@EnableRuleMigrationSupport
1515
class SecurityAnnotationMandatoryRuleTest {
1616

1717
// Set a LogTester to see the Syntax Tree when running tests and executing the rule
1818
@Rule
19-
public LogTester logTester = new LogTester().setLevel(LoggerLevel.DEBUG);
19+
public LogTester logTester = new LogTester().setLevel(Level.DEBUG);
2020

2121
@Test
2222
void detected() {

external-reports/src/main/java/org/sonar/java/externalreport/CheckstyleSensor.java

Lines changed: 21 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@
2525
import java.util.List;
2626
import org.slf4j.Logger;
2727
import org.slf4j.LoggerFactory;
28+
import org.sonar.api.SonarRuntime;
2829
import org.sonar.api.batch.fs.InputFile;
2930
import org.sonar.api.batch.sensor.Sensor;
3031
import org.sonar.api.batch.sensor.SensorContext;
@@ -43,11 +44,20 @@ public class CheckstyleSensor implements Sensor {
4344
public static final String REPORT_PROPERTY_KEY = "sonar.java.checkstyle.reportPaths";
4445
public static final String LINTER_KEY = "checkstyle";
4546

46-
public static final ExternalRuleLoader RULE_LOADER = new ExternalRuleLoader(
47-
CheckstyleSensor.LINTER_KEY,
48-
CheckstyleSensor.LINTER_NAME,
49-
"org/sonar/l10n/java/rules/checkstyle/rules.json",
50-
CheckstyleSensor.LANGUAGE_KEY);
47+
private final ExternalRuleLoader ruleLoader;
48+
49+
public CheckstyleSensor(SonarRuntime sonarRuntime) {
50+
ruleLoader = new ExternalRuleLoader(
51+
CheckstyleSensor.LINTER_KEY,
52+
CheckstyleSensor.LINTER_NAME,
53+
"org/sonar/l10n/java/rules/checkstyle/rules.json",
54+
CheckstyleSensor.LANGUAGE_KEY,
55+
sonarRuntime);
56+
}
57+
58+
public ExternalRuleLoader ruleLoader() {
59+
return ruleLoader;
60+
}
5161

5262
@Override
5363
public void describe(SensorDescriptor descriptor) {
@@ -60,20 +70,20 @@ public void describe(SensorDescriptor descriptor) {
6070
@Override
6171
public void execute(SensorContext context) {
6272
List<File> reportFiles = ExternalReportProvider.getReportFiles(context, REPORT_PROPERTY_KEY);
63-
reportFiles.forEach(report -> importIfExist(LINTER_NAME, context, report, CheckstyleSensor::importReport));
73+
reportFiles.forEach(report -> importIfExist(LINTER_NAME, context, report, this::importReport));
6474
}
6575

66-
private static void importReport(File reportPath, SensorContext context) {
76+
private void importReport(File reportPath, SensorContext context) {
6777
try (InputStream in = new FileInputStream(reportPath)) {
6878
LOG.info("Importing {}", reportPath);
69-
CheckstyleXmlReportReader.read(context, in, CheckstyleSensor::saveIssue);
79+
CheckstyleXmlReportReader.read(context, in, this::saveIssue);
7080
} catch (Exception e) {
71-
LOG.error("Failed to import external issues report: " + reportPath, e);
81+
LOG.error("Failed to import external issues report: {}", reportPath, e);
7282
}
7383
}
7484

75-
private static void saveIssue(SensorContext context, InputFile inputFile, String key, String line, String message) {
76-
ExternalIssueUtils.saveIssue(context, RULE_LOADER, inputFile, CheckstyleSensor.LINTER_KEY, key, line, message);
85+
private void saveIssue(SensorContext context, InputFile inputFile, String key, String line, String message) {
86+
ExternalIssueUtils.saveIssue(context, ruleLoader, inputFile, CheckstyleSensor.LINTER_KEY, key, line, message);
7787
}
7888

7989
}

external-reports/src/main/java/org/sonar/java/externalreport/PmdSensor.java

Lines changed: 19 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
import java.util.List;
2424
import org.slf4j.Logger;
2525
import org.slf4j.LoggerFactory;
26+
import org.sonar.api.SonarRuntime;
2627
import org.sonar.api.batch.sensor.Sensor;
2728
import org.sonar.api.batch.sensor.SensorContext;
2829
import org.sonar.api.batch.sensor.SensorDescriptor;
@@ -41,11 +42,20 @@ public class PmdSensor implements Sensor {
4142
private static final String LINTER_NAME = "PMD";
4243
private static final String LANGUAGE_KEY = "java";
4344

44-
public static final ExternalRuleLoader RULE_LOADER = new ExternalRuleLoader(
45-
PmdSensor.LINTER_KEY,
46-
PmdSensor.LINTER_NAME,
47-
"org/sonar/l10n/java/rules/pmd/rules.json",
48-
PmdSensor.LANGUAGE_KEY);
45+
private final ExternalRuleLoader ruleLoader;
46+
47+
public PmdSensor(SonarRuntime sonarRuntime) {
48+
ruleLoader = new ExternalRuleLoader(
49+
PmdSensor.LINTER_KEY,
50+
PmdSensor.LINTER_NAME,
51+
"org/sonar/l10n/java/rules/pmd/rules.json",
52+
PmdSensor.LANGUAGE_KEY,
53+
sonarRuntime);
54+
}
55+
56+
public ExternalRuleLoader ruleLoader() {
57+
return ruleLoader;
58+
}
4959

5060
@Override
5161
public void describe(SensorDescriptor descriptor) {
@@ -58,15 +68,15 @@ public void describe(SensorDescriptor descriptor) {
5868
@Override
5969
public void execute(SensorContext context) {
6070
List<File> reportFiles = ExternalReportProvider.getReportFiles(context, REPORT_PROPERTY_KEY);
61-
reportFiles.forEach(report -> importIfExist(LINTER_NAME, context, report, PmdSensor::importReport));
71+
reportFiles.forEach(report -> importIfExist(LINTER_NAME, context, report, this::importReport));
6272
}
6373

64-
private static void importReport(File reportFile, SensorContext context) {
74+
private void importReport(File reportFile, SensorContext context) {
6575
try {
6676
LOG.info("Importing {}", reportFile);
67-
PmdXmlReportReader.read(context, reportFile, RULE_LOADER);
77+
PmdXmlReportReader.read(context, reportFile, ruleLoader);
6878
} catch (Exception e) {
69-
LOG.error("Failed to import external issues report: " + reportFile.getAbsolutePath(), e);
79+
LOG.error("Failed to import external issues report: {}", reportFile.getAbsolutePath(), e);
7080
}
7181
}
7282

external-reports/src/main/java/org/sonar/java/externalreport/SpotBugsSensor.java

Lines changed: 45 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@
2727
import java.util.Map;
2828
import org.slf4j.Logger;
2929
import org.slf4j.LoggerFactory;
30+
import org.sonar.api.SonarRuntime;
3031
import org.sonar.api.batch.sensor.Sensor;
3132
import org.sonar.api.batch.sensor.SensorContext;
3233
import org.sonar.api.batch.sensor.SensorDescriptor;
@@ -49,23 +50,46 @@ public class SpotBugsSensor implements Sensor {
4950
private static final String LANGUAGE_KEY = "java";
5051
public static final String REPORT_PROPERTY_KEY = "sonar.java.spotbugs.reportPaths";
5152

52-
public static final ExternalRuleLoader RULE_LOADER = new ExternalRuleLoader(
53-
SpotBugsSensor.SPOTBUGS_KEY,
54-
SpotBugsSensor.SPOTBUGS_NAME,
55-
"org/sonar/l10n/java/rules/spotbugs/spotbugs-rules.json",
56-
SpotBugsSensor.LANGUAGE_KEY);
53+
private final ExternalRuleLoader ruleLoader;
5754

58-
public static final ExternalRuleLoader FINDSECBUGS_LOADER = new ExternalRuleLoader(
59-
SpotBugsSensor.FINDSECBUGS_KEY,
60-
SpotBugsSensor.FINDSECBUGS_NAME,
61-
"org/sonar/l10n/java/rules/spotbugs/findsecbugs-rules.json",
62-
SpotBugsSensor.LANGUAGE_KEY);
55+
private final ExternalRuleLoader findSecBugsLoader;
6356

64-
public static final ExternalRuleLoader FBCONTRIB_LOADER = new ExternalRuleLoader(
65-
SpotBugsSensor.FBCONTRIB_KEY,
66-
SpotBugsSensor.FBCONTRIB_NAME,
67-
"org/sonar/l10n/java/rules/spotbugs/fbcontrib-rules.json",
68-
SpotBugsSensor.LANGUAGE_KEY);
57+
private final ExternalRuleLoader fbContribLoader;
58+
59+
public SpotBugsSensor(SonarRuntime sonarRuntime) {
60+
ruleLoader = new ExternalRuleLoader(
61+
SpotBugsSensor.SPOTBUGS_KEY,
62+
SpotBugsSensor.SPOTBUGS_NAME,
63+
"org/sonar/l10n/java/rules/spotbugs/spotbugs-rules.json",
64+
SpotBugsSensor.LANGUAGE_KEY,
65+
sonarRuntime);
66+
67+
findSecBugsLoader = new ExternalRuleLoader(
68+
SpotBugsSensor.FINDSECBUGS_KEY,
69+
SpotBugsSensor.FINDSECBUGS_NAME,
70+
"org/sonar/l10n/java/rules/spotbugs/findsecbugs-rules.json",
71+
SpotBugsSensor.LANGUAGE_KEY,
72+
sonarRuntime);
73+
74+
fbContribLoader = new ExternalRuleLoader(
75+
SpotBugsSensor.FBCONTRIB_KEY,
76+
SpotBugsSensor.FBCONTRIB_NAME,
77+
"org/sonar/l10n/java/rules/spotbugs/fbcontrib-rules.json",
78+
SpotBugsSensor.LANGUAGE_KEY,
79+
sonarRuntime);
80+
}
81+
82+
public ExternalRuleLoader ruleLoader() {
83+
return ruleLoader;
84+
}
85+
86+
public ExternalRuleLoader findSecBugsLoader() {
87+
return findSecBugsLoader;
88+
}
89+
90+
public ExternalRuleLoader fbContribLoader() {
91+
return fbContribLoader;
92+
}
6993

7094
@Override
7195
public void describe(SensorDescriptor descriptor) {
@@ -78,19 +102,19 @@ public void describe(SensorDescriptor descriptor) {
78102
@Override
79103
public void execute(SensorContext context) {
80104
List<File> reportFiles = ExternalReportProvider.getReportFiles(context, REPORT_PROPERTY_KEY);
81-
reportFiles.forEach(report -> importIfExist(SPOTBUGS_NAME, context, report, SpotBugsSensor::importReport));
105+
reportFiles.forEach(report -> importIfExist(SPOTBUGS_NAME, context, report, this::importReport));
82106
}
83107

84-
private static void importReport(File reportPath, SensorContext context) {
108+
private void importReport(File reportPath, SensorContext context) {
85109
try (InputStream in = new FileInputStream(reportPath)) {
86110
LOG.info("Importing {}", reportPath);
87111

88112
Map<String, ExternalRuleLoader> otherLoaders = new HashMap<>();
89-
otherLoaders.put(FINDSECBUGS_KEY, FINDSECBUGS_LOADER);
90-
otherLoaders.put(FBCONTRIB_KEY, FBCONTRIB_LOADER);
91-
SpotBugsXmlReportReader.read(context, in, RULE_LOADER, otherLoaders);
113+
otherLoaders.put(FINDSECBUGS_KEY, findSecBugsLoader);
114+
otherLoaders.put(FBCONTRIB_KEY, fbContribLoader);
115+
SpotBugsXmlReportReader.read(context, in, ruleLoader, otherLoaders);
92116
} catch (Exception e) {
93-
LOG.error("Failed to import external issues report: " + reportPath, e);
117+
LOG.error("Failed to import external issues report: {}", reportPath, e);
94118
}
95119
}
96120

external-reports/src/test/java/org/sonar/java/externalreport/CheckstyleSensorTest.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,8 @@ class CheckstyleSensorTest {
5151
private static final Path PROJECT_DIR = Paths.get("src", "test", "resources", "checkstyle")
5252
.toAbsolutePath().normalize();
5353

54-
private static CheckstyleSensor checkstyleSensor = new CheckstyleSensor();
54+
private static SensorContextTester sensorContext = SensorContextTester.create(PROJECT_DIR);
55+
private static CheckstyleSensor checkstyleSensor = new CheckstyleSensor(sensorContext.runtime());
5556

5657
@Rule
5758
public final TemporaryFolder tmp = new TemporaryFolder();
@@ -62,7 +63,7 @@ class CheckstyleSensorTest {
6263
@Test
6364
void checkstyle_rules_definition() {
6465
RulesDefinition.Context context = new RulesDefinition.Context();
65-
new ExternalRulesDefinition(CheckstyleSensor.RULE_LOADER, CheckstyleSensor.LINTER_KEY).define(context);
66+
new ExternalRulesDefinition(checkstyleSensor.ruleLoader(), CheckstyleSensor.LINTER_KEY).define(context);
6667

6768
assertThat(context.repositories()).hasSize(1);
6869
RulesDefinition.Repository repository = context.repository("external_checkstyle");

external-reports/src/test/java/org/sonar/java/externalreport/ExternalRulesDefinitionTest.java

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,15 +19,23 @@
1919
*/
2020
package org.sonar.java.externalreport;
2121

22+
import java.nio.file.Path;
23+
import java.nio.file.Paths;
2224
import org.junit.jupiter.api.Test;
25+
import org.sonar.api.batch.sensor.internal.SensorContextTester;
2326

2427
import static org.assertj.core.api.Assertions.assertThat;
2528

2629
class ExternalRulesDefinitionTest {
2730

31+
private static final Path PROJECT_DIR = Paths.get("src", "test", "resources", "spotbugs")
32+
.toAbsolutePath().normalize();
33+
2834
@Test
2935
void toString_should_exist_and_contains_linter_name() {
3036
// to string is used by compute engine logs and should return a unique key
31-
assertThat(new ExternalRulesDefinition(SpotBugsSensor.RULE_LOADER, "someLinterKey")).hasToString("someLinterKey-rules-definition");
37+
SensorContextTester sensorContext = SensorContextTester.create(PROJECT_DIR);
38+
var spotBugsSensor = new SpotBugsSensor(sensorContext.runtime());
39+
assertThat(new ExternalRulesDefinition(spotBugsSensor.ruleLoader(), "someLinterKey")).hasToString("someLinterKey-rules-definition");
3240
}
3341
}

0 commit comments

Comments
 (0)