Skip to content

Commit ab583f8

Browse files
committed
SONARJAVA-1308 Rule S1710: enable by default for source version 1.8
1 parent 2320ea7 commit ab583f8

2 files changed

Lines changed: 26 additions & 3 deletions

File tree

java-checks/src/main/java/org/sonar/java/checks/RepeatAnnotationCheck.java

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,8 @@
2222
import org.sonar.api.server.rule.RulesDefinition;
2323
import org.sonar.check.Priority;
2424
import org.sonar.check.Rule;
25+
import org.sonar.java.JavaVersionAwareVisitor;
26+
import org.sonar.java.checks.helpers.JavaVersionHelper;
2527
import org.sonar.java.tag.Tag;
2628
import org.sonar.plugins.java.api.JavaFileScanner;
2729
import org.sonar.plugins.java.api.JavaFileScannerContext;
@@ -32,22 +34,30 @@
3234
import org.sonar.plugins.java.api.tree.MemberSelectExpressionTree;
3335
import org.sonar.plugins.java.api.tree.NewArrayTree;
3436
import org.sonar.plugins.java.api.tree.Tree;
37+
import org.sonar.squidbridge.annotations.ActivatedByDefault;
3538
import org.sonar.squidbridge.annotations.SqaleConstantRemediation;
3639
import org.sonar.squidbridge.annotations.SqaleSubCharacteristic;
3740

41+
import javax.annotation.Nullable;
3842
import java.util.List;
3943

4044
@Rule(
4145
key = "S1710",
4246
name = "Annotation repetitions should not be wrapped",
4347
priority = Priority.MAJOR,
4448
tags = {Tag.JAVA_8})
49+
@ActivatedByDefault
4550
@SqaleSubCharacteristic(RulesDefinition.SubCharacteristics.READABILITY)
4651
@SqaleConstantRemediation("2min")
47-
public class RepeatAnnotationCheck extends BaseTreeVisitor implements JavaFileScanner {
52+
public class RepeatAnnotationCheck extends BaseTreeVisitor implements JavaFileScanner, JavaVersionAwareVisitor {
4853

4954
private JavaFileScannerContext context;
5055

56+
@Override
57+
public boolean isCompatibleWithJavaVersion(@Nullable Integer version) {
58+
return JavaVersionHelper.java8Guaranteed(version);
59+
}
60+
5161
@Override
5262
public void scanFile(JavaFileScannerContext context) {
5363
this.context = context;

java-checks/src/test/java/org/sonar/java/checks/RepeatAnnotationCheckTest.java

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,8 +23,21 @@
2323
import org.sonar.java.checks.verifier.JavaCheckVerifier;
2424

2525
public class RepeatAnnotationCheckTest {
26+
27+
private static final String FILENAME = "src/test/files/checks/RepeatAnnotationCheck.java";
28+
29+
@Test
30+
public void java8() {
31+
JavaCheckVerifier.verify(FILENAME, new RepeatAnnotationCheck(), 8);
32+
}
33+
34+
@Test
35+
public void java7() {
36+
JavaCheckVerifier.verifyNoIssue(FILENAME, new RepeatAnnotationCheck(), 7);
37+
}
38+
2639
@Test
27-
public void test() {
28-
JavaCheckVerifier.verify("src/test/files/checks/RepeatAnnotationCheck.java", new RepeatAnnotationCheck());
40+
public void unknown_version() {
41+
JavaCheckVerifier.verifyNoIssue(FILENAME, new RepeatAnnotationCheck(), null);
2942
}
3043
}

0 commit comments

Comments
 (0)