From db89be6a11d893249edfaa76c91f78dd2fe97e57 Mon Sep 17 00:00:00 2001 From: Michael Gumowski Date: Tue, 28 Jun 2016 16:07:12 +0200 Subject: [PATCH] SONARJAVA-1754 Remove deprecated 'addIssue' methods (#907) * SONARJAVA-1754 Remove deprecated 'addIssue' methods * SONARJAVA-1754 Standardize cost of issue as Integer for reporting --- .../checks/OneClassInterfacePerFileCheck.java | 2 +- .../java/org/sonar/java/SonarComponents.java | 2 +- .../model/DefaultJavaFileScannerContext.java | 12 +-------- .../java/model/VisitorsBridgeForTests.java | 2 +- .../java/api/IssuableSubscriptionVisitor.java | 16 ------------ .../java/api/JavaFileScannerContext.java | 14 +--------- .../org/sonar/java/SonarComponentsTest.java | 6 ++--- .../org/sonar/java/xml/XmlAnalyzerTest.java | 26 +++++++++---------- .../java/xml/XmlCheckContextImplTest.java | 11 ++++---- .../xml/maven/PomCheckContextImplTest.java | 4 +-- 10 files changed, 28 insertions(+), 67 deletions(-) diff --git a/java-checks/src/main/java/org/sonar/java/checks/OneClassInterfacePerFileCheck.java b/java-checks/src/main/java/org/sonar/java/checks/OneClassInterfacePerFileCheck.java index f5b5195d33a..c7c5e0f9124 100644 --- a/java-checks/src/main/java/org/sonar/java/checks/OneClassInterfacePerFileCheck.java +++ b/java-checks/src/main/java/org/sonar/java/checks/OneClassInterfacePerFileCheck.java @@ -41,7 +41,7 @@ public void visitNode(Tree tree) { int types = ((CompilationUnitTree) tree).types().size(); if (types > 1) { context.addIssue( - -1, OneClassInterfacePerFileCheck.this, "There are " + types + " top-level types in this file; move all but one of them to other files.", (double) (types - 1)); + -1, OneClassInterfacePerFileCheck.this, "There are " + types + " top-level types in this file; move all but one of them to other files.", types - 1); } } diff --git a/java-frontend/src/main/java/org/sonar/java/SonarComponents.java b/java-frontend/src/main/java/org/sonar/java/SonarComponents.java index efe99ca0c12..3d7972b6b01 100644 --- a/java-frontend/src/main/java/org/sonar/java/SonarComponents.java +++ b/java-frontend/src/main/java/org/sonar/java/SonarComponents.java @@ -173,7 +173,7 @@ public RuleKey getRuleKey(JavaCheck check) { return null; } - public void addIssue(File file, JavaCheck check, int line, String message, @Nullable Double cost) { + public void addIssue(File file, JavaCheck check, int line, String message, @Nullable Integer cost) { reportIssue(new AnalyzerMessage(check, file, line, message, cost != null ? cost.intValue() : 0)); } diff --git a/java-frontend/src/main/java/org/sonar/java/model/DefaultJavaFileScannerContext.java b/java-frontend/src/main/java/org/sonar/java/model/DefaultJavaFileScannerContext.java index 1fb3d802924..c60f2e8ba79 100644 --- a/java-frontend/src/main/java/org/sonar/java/model/DefaultJavaFileScannerContext.java +++ b/java-frontend/src/main/java/org/sonar/java/model/DefaultJavaFileScannerContext.java @@ -65,16 +65,6 @@ public CompilationUnitTree getTree() { return tree; } - @Override - public void addIssue(Tree tree, JavaCheck javaCheck, String message) { - addIssue(((JavaTree) tree).getLine(), javaCheck, message, null); - } - - @Override - public void addIssue(Tree tree, JavaCheck check, String message, @Nullable Double cost) { - addIssue(((JavaTree) tree).getLine(), check, message, cost); - } - @Override public void addIssueOnFile(JavaCheck javaCheck, String message) { addIssue(-1, javaCheck, message); @@ -86,7 +76,7 @@ public void addIssue(int line, JavaCheck javaCheck, String message) { } @Override - public void addIssue(int line, JavaCheck javaCheck, String message, @Nullable Double cost) { + public void addIssue(int line, JavaCheck javaCheck, String message, @Nullable Integer cost) { sonarComponents.addIssue(file, javaCheck, line, message, cost); } diff --git a/java-frontend/src/main/java/org/sonar/java/model/VisitorsBridgeForTests.java b/java-frontend/src/main/java/org/sonar/java/model/VisitorsBridgeForTests.java index 509f9562ffa..de714695d58 100644 --- a/java-frontend/src/main/java/org/sonar/java/model/VisitorsBridgeForTests.java +++ b/java-frontend/src/main/java/org/sonar/java/model/VisitorsBridgeForTests.java @@ -91,7 +91,7 @@ public Set getIssues() { } @Override - public void addIssue(int line, JavaCheck javaCheck, String message, @Nullable Double cost) { + public void addIssue(int line, JavaCheck javaCheck, String message, @Nullable Integer cost) { issues.add(new AnalyzerMessage(javaCheck, getFile(), line, message, cost != null ? cost.intValue() : 0)); } diff --git a/java-frontend/src/main/java/org/sonar/plugins/java/api/IssuableSubscriptionVisitor.java b/java-frontend/src/main/java/org/sonar/plugins/java/api/IssuableSubscriptionVisitor.java index bb7c14ffabb..fe409d61890 100644 --- a/java-frontend/src/main/java/org/sonar/plugins/java/api/IssuableSubscriptionVisitor.java +++ b/java-frontend/src/main/java/org/sonar/plugins/java/api/IssuableSubscriptionVisitor.java @@ -27,22 +27,6 @@ public abstract class IssuableSubscriptionVisitor extends SubscriptionVisitor { - /** - * @deprecated use reportIssue instead to benefit from precise issue location. - */ - @Deprecated - public void addIssue(Tree tree, String message) { - context.addIssue(tree, this, message); - } - - /** - * @deprecated use reportIssue instead to benefit from precise issue location. - */ - @Deprecated - public void addIssue(Tree tree, String message, double effortToFix) { - context.addIssue(tree, this, message, effortToFix); - } - public void addIssue(int line, String message) { context.addIssue(line, this, message); } diff --git a/java-frontend/src/main/java/org/sonar/plugins/java/api/JavaFileScannerContext.java b/java-frontend/src/main/java/org/sonar/plugins/java/api/JavaFileScannerContext.java index aca66d68708..ab7ac0fa4ca 100644 --- a/java-frontend/src/main/java/org/sonar/plugins/java/api/JavaFileScannerContext.java +++ b/java-frontend/src/main/java/org/sonar/plugins/java/api/JavaFileScannerContext.java @@ -37,23 +37,11 @@ public interface JavaFileScannerContext { CompilationUnitTree getTree(); - /** - * @deprecated use reportIssue instead to benefit from precise issue location. - */ - @Deprecated - void addIssue(Tree tree, JavaCheck check, String message); - - /** - * @deprecated use reportIssue instead to benefit from precise issue location. - */ - @Deprecated - void addIssue(Tree tree, JavaCheck check, String message, @Nullable Double cost); - void addIssueOnFile(JavaCheck check, String message); void addIssue(int line, JavaCheck check, String message); - void addIssue(int line, JavaCheck javaCheck, String message, @Nullable Double cost); + void addIssue(int line, JavaCheck javaCheck, String message, @Nullable Integer cost); void addIssue(File file, JavaCheck check, int line, String message); diff --git a/java-frontend/src/test/java/org/sonar/java/SonarComponentsTest.java b/java-frontend/src/test/java/org/sonar/java/SonarComponentsTest.java index 12ca8e03a19..f4a7b118b1b 100644 --- a/java-frontend/src/test/java/org/sonar/java/SonarComponentsTest.java +++ b/java-frontend/src/test/java/org/sonar/java/SonarComponentsTest.java @@ -271,9 +271,9 @@ public void add_issue() throws Exception { sonarComponents.setSensorContext(context); sonarComponents.addIssue(file, expectedCheck, -5, "message on wrong line", null); - sonarComponents.addIssue(file, expectedCheck, 42, "message on line", 1.0); - sonarComponents.addIssue(new File("."), expectedCheck, 42, "message on line", 1.0); - sonarComponents.addIssue(new File("unknown_file"), expectedCheck, 42, "message on line", 1.0); + sonarComponents.addIssue(file, expectedCheck, 42, "message on line", 1); + sonarComponents.addIssue(new File("."), expectedCheck, 42, "message on line", 1); + sonarComponents.addIssue(new File("unknown_file"), expectedCheck, 42, "message on line", 1); sonarComponents.reportIssue(new AnalyzerMessage(expectedCheck, file, 35, "other message", 0)); verify(context, times(3)).newIssue(); } diff --git a/java-frontend/src/test/java/org/sonar/java/xml/XmlAnalyzerTest.java b/java-frontend/src/test/java/org/sonar/java/xml/XmlAnalyzerTest.java index f100bf7611f..5e82c233aa1 100644 --- a/java-frontend/src/test/java/org/sonar/java/xml/XmlAnalyzerTest.java +++ b/java-frontend/src/test/java/org/sonar/java/xml/XmlAnalyzerTest.java @@ -88,7 +88,7 @@ public void should_not_scan_file_with_parsing_issue() { XmlAnalyzer analyzer = new XmlAnalyzer(sonarComponents, XML_CHECK, POM_CHECK); analyzer.scan(Lists.newArrayList(xmlFile)); - verify(sonarComponents, never()).addIssue(any(File.class), any(JavaCheck.class), any(Integer.class), anyString(), isNull(Double.class)); + verify(sonarComponents, never()).addIssue(any(File.class), any(JavaCheck.class), any(Integer.class), anyString(), isNull(Integer.class)); verify(sonarComponents, never()).reportIssue(any(AnalyzerMessage.class)); } @@ -102,7 +102,7 @@ public void should_not_scan_invalid_pom_file() { XmlAnalyzer analyzer = new XmlAnalyzer(sonarComponents, POM_CHECK); analyzer.scan(Lists.newArrayList(xmlFile)); - verify(sonarComponents, never()).addIssue(any(File.class), any(JavaCheck.class), any(Integer.class), anyString(), isNull(Double.class)); + verify(sonarComponents, never()).addIssue(any(File.class), any(JavaCheck.class), any(Integer.class), anyString(), isNull(Integer.class)); verify(sonarComponents, never()).reportIssue(any(AnalyzerMessage.class)); } @@ -131,7 +131,7 @@ public void should_scan_xml_file_provided() { XmlAnalyzer analyzer = new XmlAnalyzer(sonarComponents, XML_CHECK, POM_CHECK); analyzer.scan(Lists.newArrayList(xmlFile)); - verify(sonarComponents, times(2)).addIssue(any(File.class), any(JavaCheck.class), any(Integer.class), anyString(), isNull(Double.class)); + verify(sonarComponents, times(2)).addIssue(any(File.class), any(JavaCheck.class), any(Integer.class), anyString(), isNull(Integer.class)); verify(sonarComponents, never()).reportIssue(any(AnalyzerMessage.class)); } @@ -145,7 +145,7 @@ public void should_scan_pom_file_with_xml_check() { XmlAnalyzer analyzer = new XmlAnalyzer(sonarComponents, XML_CHECK); analyzer.scan(Lists.newArrayList(xmlFile)); - verify(sonarComponents, times(1)).addIssue(any(File.class), any(JavaCheck.class), any(Integer.class), anyString(), isNull(Double.class)); + verify(sonarComponents, times(1)).addIssue(any(File.class), any(JavaCheck.class), any(Integer.class), anyString(), isNull(Integer.class)); verify(sonarComponents, never()).reportIssue(any(AnalyzerMessage.class)); } @@ -159,7 +159,7 @@ public void should_scan_pom_file_with_pom_check() { XmlAnalyzer analyzer = new XmlAnalyzer(sonarComponents, POM_CHECK); analyzer.scan(Lists.newArrayList(xmlFile)); - verify(sonarComponents, times(1)).addIssue(any(File.class), any(JavaCheck.class), any(Integer.class), anyString(), isNull(Double.class)); + verify(sonarComponents, times(1)).addIssue(any(File.class), any(JavaCheck.class), any(Integer.class), anyString(), isNull(Integer.class)); verify(sonarComponents, never()).reportIssue(any(AnalyzerMessage.class)); } @@ -173,7 +173,7 @@ public void should_scan_xml_file__when_no_check_provided() { XmlAnalyzer analyzer = new XmlAnalyzer(sonarComponents); analyzer.scan(Lists.newArrayList(xmlFile)); - verify(sonarComponents, never()).addIssue(any(File.class), any(JavaCheck.class), any(Integer.class), anyString(), isNull(Double.class)); + verify(sonarComponents, never()).addIssue(any(File.class), any(JavaCheck.class), any(Integer.class), anyString(), isNull(Integer.class)); verify(sonarComponents, never()).reportIssue(any(AnalyzerMessage.class)); } @@ -187,8 +187,8 @@ public void should_not_run_pom_check_when_no_pom_file_provided() { XmlAnalyzer analyzer = new XmlAnalyzer(sonarComponents, XML_CHECK, POM_CHECK); analyzer.scan(Lists.newArrayList(xmlFile)); - verify(sonarComponents, never()).addIssue(any(File.class), eq(POM_CHECK), any(Integer.class), anyString(), isNull(Double.class)); - verify(sonarComponents, times(1)).addIssue(any(File.class), eq(XML_CHECK), any(Integer.class), anyString(), isNull(Double.class)); + verify(sonarComponents, never()).addIssue(any(File.class), eq(POM_CHECK), any(Integer.class), anyString(), isNull(Integer.class)); + verify(sonarComponents, times(1)).addIssue(any(File.class), eq(XML_CHECK), any(Integer.class), anyString(), isNull(Integer.class)); verify(sonarComponents, never()).reportIssue(any(AnalyzerMessage.class)); } @@ -200,8 +200,8 @@ public void should_not_run_xml_check_when_no_xml_file_provided() { XmlAnalyzer analyzer = new XmlAnalyzer(sonarComponents, XML_CHECK, POM_CHECK); analyzer.scan(Lists.newArrayList()); - verify(sonarComponents, never()).addIssue(any(File.class), eq(POM_CHECK), any(Integer.class), anyString(), isNull(Double.class)); - verify(sonarComponents, never()).addIssue(any(File.class), eq(XML_CHECK), any(Integer.class), anyString(), isNull(Double.class)); + verify(sonarComponents, never()).addIssue(any(File.class), eq(POM_CHECK), any(Integer.class), anyString(), isNull(Integer.class)); + verify(sonarComponents, never()).addIssue(any(File.class), eq(XML_CHECK), any(Integer.class), anyString(), isNull(Integer.class)); verify(sonarComponents, never()).reportIssue(any(AnalyzerMessage.class)); } @@ -213,8 +213,8 @@ public void should_not_run_xml_check_when_no_check_provided() { XmlAnalyzer analyzer = new XmlAnalyzer(sonarComponents); analyzer.scan(Lists.newArrayList()); - verify(sonarComponents, never()).addIssue(any(File.class), eq(POM_CHECK), any(Integer.class), anyString(), isNull(Double.class)); - verify(sonarComponents, never()).addIssue(any(File.class), eq(XML_CHECK), any(Integer.class), anyString(), isNull(Double.class)); + verify(sonarComponents, never()).addIssue(any(File.class), eq(POM_CHECK), any(Integer.class), anyString(), isNull(Integer.class)); + verify(sonarComponents, never()).addIssue(any(File.class), eq(XML_CHECK), any(Integer.class), anyString(), isNull(Integer.class)); verify(sonarComponents, never()).reportIssue(any(AnalyzerMessage.class)); } @@ -228,7 +228,7 @@ public void should_not_scan_when_no_xml_check_provided() { XmlAnalyzer analyzer = new XmlAnalyzer(sonarComponents, JAVA_CHECK); analyzer.scan(Lists.newArrayList(pomFile)); - verify(sonarComponents, never()).addIssue(any(File.class), any(JavaCheck.class), any(Integer.class), anyString(), isNull(Double.class)); + verify(sonarComponents, never()).addIssue(any(File.class), any(JavaCheck.class), any(Integer.class), anyString(), isNull(Integer.class)); verify(sonarComponents, never()).reportIssue(any(AnalyzerMessage.class)); } diff --git a/java-frontend/src/test/java/org/sonar/java/xml/XmlCheckContextImplTest.java b/java-frontend/src/test/java/org/sonar/java/xml/XmlCheckContextImplTest.java index 221a7cd151d..abd05a584cb 100644 --- a/java-frontend/src/test/java/org/sonar/java/xml/XmlCheckContextImplTest.java +++ b/java-frontend/src/test/java/org/sonar/java/xml/XmlCheckContextImplTest.java @@ -45,7 +45,6 @@ import static org.fest.assertions.Assertions.assertThat; import static org.mockito.Matchers.any; -import static org.mockito.Matchers.anyDouble; import static org.mockito.Matchers.anyInt; import static org.mockito.Matchers.anyString; import static org.mockito.Matchers.eq; @@ -168,7 +167,7 @@ public Void answer(InvocationOnMock invocation) throws Throwable { reportedMessage = "onNode:" + (String) invocation.getArguments()[3]; return null; } - }).when(sonarComponents).addIssue(any(File.class), eq(CHECK), eq(expectedLine), anyString(), eq((Double) null)); + }).when(sonarComponents).addIssue(any(File.class), eq(CHECK), eq(expectedLine), anyString(), eq((Integer) null)); context.reportIssue(CHECK, node, "message"); assertThat(reportedMessage).isEqualTo("onNode:message"); @@ -234,7 +233,7 @@ public void should_not_report_issue_on_unknown_node() throws Exception { Node node = Iterables.get(context.evaluate(context.compile("//exclude-default-interceptors"), doc), 0); context.reportIssue(CHECK, node, "message"); - verify(sonarComponents, never()).addIssue(any(File.class), any(JavaCheck.class), anyInt(), anyString(), anyDouble()); + verify(sonarComponents, never()).addIssue(any(File.class), any(JavaCheck.class), anyInt(), anyString(), anyInt()); } @Test @@ -280,7 +279,7 @@ public Void answer(InvocationOnMock invocation) throws Throwable { public void should_not_report_issue_on_node_text_node() throws Exception { Node textNode = firstNode(context, "//exclude-default-interceptors").getFirstChild(); context.reportIssue(CHECK, textNode, "message"); - Mockito.verify(sonarComponents, never()).addIssue(any(File.class), any(JavaCheck.class), anyInt(), anyString(), anyDouble()); + Mockito.verify(sonarComponents, never()).addIssue(any(File.class), any(JavaCheck.class), anyInt(), anyString(), anyInt()); } private static SonarComponents createSonarComponentsMock() { @@ -291,7 +290,7 @@ public Void answer(InvocationOnMock invocation) throws Throwable { reportedMessage = "onLine:" + (String) invocation.getArguments()[3]; return null; } - }).when(sonarComponents).addIssue(any(File.class), eq(CHECK), eq(LINE), anyString(), eq((Double) null)); + }).when(sonarComponents).addIssue(any(File.class), eq(CHECK), eq(LINE), anyString(), eq((Integer) null)); doAnswer(new Answer() { @Override @@ -299,7 +298,7 @@ public Void answer(InvocationOnMock invocation) throws Throwable { reportedMessage = "onFile:" + (String) invocation.getArguments()[3]; return null; } - }).when(sonarComponents).addIssue(any(File.class), eq(CHECK), eq(-1), anyString(), eq((Double) null)); + }).when(sonarComponents).addIssue(any(File.class), eq(CHECK), eq(-1), anyString(), eq((Integer) null)); return sonarComponents; } diff --git a/java-frontend/src/test/java/org/sonar/java/xml/maven/PomCheckContextImplTest.java b/java-frontend/src/test/java/org/sonar/java/xml/maven/PomCheckContextImplTest.java index e96ce8ebd47..5955ecaa3e8 100644 --- a/java-frontend/src/test/java/org/sonar/java/xml/maven/PomCheckContextImplTest.java +++ b/java-frontend/src/test/java/org/sonar/java/xml/maven/PomCheckContextImplTest.java @@ -111,14 +111,14 @@ public Void answer(InvocationOnMock invocation) throws Throwable { reportedMessage = "onLine:" + (String) invocation.getArguments()[3]; return null; } - }).when(sonarComponents).addIssue(any(File.class), eq(CHECK), eq(LINE), anyString(), eq((Double) null)); + }).when(sonarComponents).addIssue(any(File.class), eq(CHECK), eq(LINE), anyString(), eq((Integer) null)); doAnswer(new Answer() { @Override public Void answer(InvocationOnMock invocation) throws Throwable { reportedMessage = "onFile:" + (String) invocation.getArguments()[3]; return null; } - }).when(sonarComponents).addIssue(any(File.class), eq(CHECK), eq(-1), anyString(), eq((Double) null)); + }).when(sonarComponents).addIssue(any(File.class), eq(CHECK), eq(-1), anyString(), eq((Integer) null)); doAnswer(new Answer() { @Override public Void answer(InvocationOnMock invocation) throws Throwable {