Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 13 additions & 2 deletions external-reports/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -30,8 +30,13 @@
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.sonarsource.sonarqube</groupId>
<artifactId>sonar-plugin-api-impl</artifactId>
<groupId>org.sonarsource.scanner.engine</groupId>
<artifactId>plugin-api-scanner-impl</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.sonarsource.scanner.engine</groupId>
<artifactId>sensor-test-fixtures</artifactId>
<scope>test</scope>
</dependency>
<dependency>
Expand All @@ -53,6 +58,12 @@
</exclusions>
</dependency>
<!-- unit tests -->
<!-- Required only for the forbid-junit4 testCheck to resolve forbidden classes from forbid_junit4.txt. -->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<scope>test</scope>
</dependency>
Comment on lines +62 to +66

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why is this now an explicit dependency ?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

JUnit 4 was already on this module's test classpath transitively through sonar-plugin-api-impl. Removing that artifact made the forbiddenapis:testCheck execution (forbid-junit4) fail because its signature file references org.junit.runner.RunWith and that class could no longer be resolved. This declaration makes that existing build-time requirement explicit; the module's tests remain on JUnit 5.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

More precisely, no JUnit test was failing. The failure was the Test Analyze CI job, in the external-reports Maven execution:

Failed to execute goal de.thetaphi:forbiddenapis:3.10:testCheck (forbid-junit4) on project external-reports: Parsing signatures failed: Class 'org.junit.runner.RunWith' not found on classpath while parsing signature: org.junit.runner.RunWith

The referenced signature is forbid_junit4.txt:9. The explicit dependency is only there so this check can resolve the class it forbids.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

added a comment in the pom directly so we don't lose track of why this is needed

<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter</artifactId>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@
*/
package org.sonar.java.externalreport;

import com.sonarsource.scanner.engine.sensor.test.fixtures.SensorContextTester;
import java.io.File;
import java.io.IOException;
import java.nio.file.Path;
Expand All @@ -30,12 +31,11 @@
import org.junit.jupiter.params.provider.ValueSource;
import org.slf4j.event.Level;
import org.sonar.api.batch.rule.Severity;
import org.sonar.api.batch.sensor.internal.DefaultSensorDescriptor;
import org.sonar.api.batch.sensor.internal.SensorContextTester;
import org.sonar.api.batch.sensor.issue.ExternalIssue;
import org.sonar.api.rules.RuleType;
import org.sonar.api.server.rule.RulesDefinition;
import org.sonar.api.testfixtures.log.LogTesterJUnit5;
import org.sonar.scanner.plugin.api.impl.sensor.DefaultSensorDescriptor;

import static org.assertj.core.api.Assertions.assertThat;
import static org.sonar.java.externalreport.ExternalReportTestUtils.onlyOneLogElement;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,8 @@
*/
package org.sonar.java.externalreport;

import com.sonarsource.scanner.engine.sensor.test.fixtures.SensorContextTester;
import com.sonarsource.scanner.engine.sensor.test.fixtures.TestInputFileBuilder;
import java.io.File;
import java.io.IOException;
import java.nio.file.Files;
Expand All @@ -24,8 +26,6 @@
import java.util.stream.Stream;
import org.slf4j.event.Level;
import org.sonar.api.batch.fs.InputFile;
import org.sonar.api.batch.fs.internal.TestInputFileBuilder;
import org.sonar.api.batch.sensor.internal.SensorContextTester;
import org.sonar.api.testfixtures.log.LogTesterJUnit5;

import static java.nio.charset.StandardCharsets.UTF_8;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,10 +16,10 @@
*/
package org.sonar.java.externalreport;

import com.sonarsource.scanner.engine.sensor.test.fixtures.SensorContextTester;
import java.nio.file.Path;
import java.nio.file.Paths;
import org.junit.jupiter.api.Test;
import org.sonar.api.batch.sensor.internal.SensorContextTester;

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

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,8 @@
*/
package org.sonar.java.externalreport;

import com.sonarsource.scanner.engine.sensor.test.fixtures.SensorContextTester;
import com.sonarsource.scanner.engine.sensor.test.fixtures.TestInputFileBuilder;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
Expand All @@ -28,17 +30,15 @@
import org.slf4j.event.Level;
import org.sonar.api.batch.fs.InputFile;
import org.sonar.api.batch.fs.TextRange;
import org.sonar.api.batch.fs.internal.DefaultTextPointer;
import org.sonar.api.batch.fs.internal.DefaultTextRange;
import org.sonar.api.batch.fs.internal.TestInputFileBuilder;
import org.sonar.api.batch.rule.Severity;
import org.sonar.api.batch.sensor.internal.DefaultSensorDescriptor;
import org.sonar.api.batch.sensor.internal.SensorContextTester;
import org.sonar.api.batch.sensor.issue.ExternalIssue;
import org.sonar.api.config.internal.MapSettings;
import org.sonar.api.rules.RuleType;
import org.sonar.api.server.rule.RulesDefinition;
import org.sonar.api.testfixtures.log.LogTesterJUnit5;
import org.sonar.scanner.plugin.api.impl.config.MapSettings;
import org.sonar.scanner.plugin.api.impl.fs.DefaultTextPointer;
import org.sonar.scanner.plugin.api.impl.fs.DefaultTextRange;
import org.sonar.scanner.plugin.api.impl.sensor.DefaultSensorDescriptor;

import static java.nio.charset.StandardCharsets.UTF_8;
import static org.assertj.core.api.Assertions.assertThat;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@
*/
package org.sonar.java.externalreport;

import com.sonarsource.scanner.engine.sensor.test.fixtures.SensorContextTester;
import java.io.File;
import java.io.IOException;
import java.nio.file.Path;
Expand All @@ -30,12 +31,11 @@
import org.junit.jupiter.params.provider.ValueSource;
import org.slf4j.event.Level;
import org.sonar.api.batch.rule.Severity;
import org.sonar.api.batch.sensor.internal.DefaultSensorDescriptor;
import org.sonar.api.batch.sensor.internal.SensorContextTester;
import org.sonar.api.batch.sensor.issue.ExternalIssue;
import org.sonar.api.rules.RuleType;
import org.sonar.api.server.rule.RulesDefinition;
import org.sonar.api.testfixtures.log.LogTesterJUnit5;
import org.sonar.scanner.plugin.api.impl.sensor.DefaultSensorDescriptor;

import static org.assertj.core.api.Assertions.assertThat;
import static org.assertj.core.api.Assertions.tuple;
Expand Down
5 changes: 0 additions & 5 deletions java-checks-aws/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -29,11 +29,6 @@
<artifactId>sonar-plugin-api-test-fixtures</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.sonarsource.sonarqube</groupId>
<artifactId>sonar-plugin-api-impl</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>java-frontend</artifactId>
Expand Down
10 changes: 0 additions & 10 deletions java-checks-common/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -24,16 +24,6 @@
<artifactId>slf4j-api</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.sonarsource.api.plugin</groupId>
<artifactId>sonar-plugin-api-test-fixtures</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.sonarsource.sonarqube</groupId>
<artifactId>sonar-plugin-api-impl</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>java-frontend</artifactId>
Expand Down
9 changes: 7 additions & 2 deletions java-checks/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -30,8 +30,13 @@
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.sonarsource.sonarqube</groupId>
<artifactId>sonar-plugin-api-impl</artifactId>
<groupId>org.sonarsource.scanner.engine</groupId>
<artifactId>plugin-api-scanner-impl</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.sonarsource.scanner.engine</groupId>
<artifactId>sensor-test-fixtures</artifactId>
<scope>test</scope>
</dependency>
<dependency>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,8 @@
package org.sonar.java.filters;

import com.sonar.sslr.api.RecognitionException;

import com.sonarsource.scanner.engine.sensor.test.fixtures.SensorContextTester;
import com.sonarsource.scanner.engine.sensor.test.fixtures.TestSonarRuntime;
import java.io.File;
import java.util.ArrayList;
import java.util.Arrays;
Expand All @@ -27,12 +28,8 @@
import java.util.List;
import java.util.Map;
import java.util.Set;

import org.assertj.core.api.Fail;
import org.sonar.api.batch.fs.InputFile;
import org.sonar.api.batch.sensor.internal.SensorContextTester;
import org.sonar.api.config.internal.MapSettings;
import org.sonar.api.internal.SonarRuntimeImpl;
import org.sonar.api.rule.RuleKey;
import org.sonar.api.scan.issue.filter.FilterableIssue;
import org.sonar.api.utils.AnnotationUtils;
Expand All @@ -49,6 +46,7 @@
import org.sonar.plugins.java.api.JavaCheck;
import org.sonar.plugins.java.api.tree.SyntaxTrivia;
import org.sonar.plugins.java.api.tree.Tree;
import org.sonar.scanner.plugin.api.impl.config.MapSettings;

import static org.assertj.core.api.Assertions.assertThat;
import static org.assertj.core.api.Assertions.assertThatCode;
Expand Down Expand Up @@ -174,7 +172,7 @@ public void visitTrivia(SyntaxTrivia syntaxTrivia) {
}

private static SonarComponents sonarComponents(InputFile inputFile) {
SensorContextTester context = SensorContextTester.create(new File("")).setRuntime(SonarRuntimeImpl.forSonarLint(Version.create(6, 7)));
SensorContextTester context = SensorContextTester.create(new File("")).setRuntime(TestSonarRuntime.forSonarLint(Version.create(6, 7)));
context.setSettings(new MapSettings().setProperty(SonarComponents.FAIL_ON_EXCEPTION_KEY, true));
SonarComponents sonarComponents = new SonarComponents(null, context.fileSystem(), null, null, null, null) {
@Override
Expand Down
20 changes: 18 additions & 2 deletions java-frontend/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -40,8 +40,18 @@
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.sonarsource.sonarqube</groupId>
<artifactId>sonar-plugin-api-impl</artifactId>
<groupId>org.sonarsource.scanner.engine</groupId>
<artifactId>plugin-api-scanner-impl</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.sonarsource.scanner.engine</groupId>
<artifactId>sensor-test-fixtures</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.sonarsource.scanner.engine</groupId>
<artifactId>sonar-scanner-extension-framework</artifactId>
<scope>test</scope>
</dependency>
<dependency>
Expand Down Expand Up @@ -75,6 +85,12 @@
<version>${project.version}</version>
<scope>test</scope>
</dependency>
<!-- Required only for the forbid-junit4 testCheck to resolve forbidden classes from forbid_junit4.txt. -->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter</artifactId>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@
*/
package org.sonar.java;

import com.sonarsource.scanner.engine.sensor.test.fixtures.SensorContextTester;
import java.io.File;
import java.io.IOException;
import java.nio.file.Path;
Expand All @@ -26,8 +27,7 @@
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.io.TempDir;
import org.sonar.api.batch.fs.InputFile;
import org.sonar.api.batch.sensor.internal.SensorContextTester;
import org.sonar.api.config.internal.MapSettings;
import org.sonar.scanner.plugin.api.impl.config.MapSettings;

import static org.assertj.core.api.Assertions.assertThat;
import static org.sonar.java.InputFileUtils.addFile;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@
*/
package org.sonar.java;

import com.sonarsource.scanner.engine.sensor.test.fixtures.SensorContextTester;
import java.io.File;
import java.io.IOException;
import java.nio.charset.StandardCharsets;
Expand All @@ -25,7 +26,6 @@
import java.util.regex.Pattern;
import org.jetbrains.annotations.NotNull;
import org.sonar.api.batch.fs.InputFile;
import org.sonar.api.batch.sensor.internal.SensorContextTester;

class InputFileUtils {
public static InputFile addFile(Path temp, String code, SensorContextTester context) throws IOException {
Expand Down
10 changes: 5 additions & 5 deletions java-frontend/src/test/java/org/sonar/java/JavaFrontendTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,8 @@
*/
package org.sonar.java;

import com.sonarsource.scanner.engine.sensor.test.fixtures.SensorContextTester;
import com.sonarsource.scanner.engine.sensor.test.fixtures.TestSonarRuntime;
import java.io.File;
import java.io.IOException;
import java.nio.file.Path;
Expand All @@ -39,9 +41,6 @@
import org.sonar.api.batch.sensor.SensorContext;
import org.sonar.api.batch.sensor.cache.ReadCache;
import org.sonar.api.batch.sensor.cache.WriteCache;
import org.sonar.api.batch.sensor.internal.SensorContextTester;
import org.sonar.api.config.internal.MapSettings;
import org.sonar.api.internal.SonarRuntimeImpl;
import org.sonar.api.issue.NoSonarFilter;
import org.sonar.api.measures.FileLinesContext;
import org.sonar.api.measures.FileLinesContextFactory;
Expand All @@ -66,6 +65,7 @@
import org.sonar.plugins.java.api.ModuleScannerContext;
import org.sonar.plugins.java.api.internal.EndOfAnalysis;
import org.sonar.plugins.java.api.tree.CompilationUnitTree;
import org.sonar.scanner.plugin.api.impl.config.MapSettings;

import static org.assertj.core.api.Assertions.assertThat;
import static org.assertj.core.api.Assertions.assertThatThrownBy;
Expand All @@ -87,11 +87,11 @@ class JavaFrontendTest {

// sonarlint.plugin.api.version
public static final Version LATEST_SONARLINT_API_VERSION = Version.create(8, 18);
public static final SonarRuntime SONARLINT_RUNTIME = SonarRuntimeImpl.forSonarLint(LATEST_SONARLINT_API_VERSION);
public static final SonarRuntime SONARLINT_RUNTIME = TestSonarRuntime.forSonarLint(LATEST_SONARLINT_API_VERSION);

//
private static final Version LATESTS_SONAR_API_VERSION = Version.create(8, 13);
public static final SonarRuntime SONARQUBE_RUNTIME = SonarRuntimeImpl.forSonarQube(LATESTS_SONAR_API_VERSION, SonarQubeSide.SCANNER, SonarEdition.COMMUNITY);
public static final SonarRuntime SONARQUBE_RUNTIME = TestSonarRuntime.forSonarQube(LATESTS_SONAR_API_VERSION, SonarQubeSide.SCANNER, SonarEdition.COMMUNITY);

@TempDir
public Path temp;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,12 +16,12 @@
*/
package org.sonar.java;

import com.sonarsource.scanner.engine.sensor.test.fixtures.SensorContextTester;
import java.io.File;
import java.util.Collections;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.sonar.api.batch.fs.InputFile;
import org.sonar.api.batch.sensor.internal.SensorContextTester;
import org.sonar.api.issue.NoSonarFilter;
import org.sonar.api.utils.PathUtils;
import org.sonar.java.model.JavaVersionImpl;
Expand Down
10 changes: 5 additions & 5 deletions java-frontend/src/test/java/org/sonar/java/MeasurerTester.java
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,8 @@
*/
package org.sonar.java;

import com.sonarsource.scanner.engine.sensor.test.fixtures.SensorContextTester;
import com.sonarsource.scanner.engine.sensor.test.fixtures.TestFileSystem;
import java.io.File;
import java.util.Collections;
import java.util.HashMap;
Expand All @@ -25,8 +27,6 @@
import org.apache.commons.io.FileUtils;
import org.junit.jupiter.api.BeforeEach;
import org.sonar.api.batch.fs.InputFile;
import org.sonar.api.batch.fs.internal.DefaultFileSystem;
import org.sonar.api.batch.sensor.internal.SensorContextTester;
import org.sonar.api.batch.sensor.measure.Measure;
import org.sonar.api.issue.NoSonarFilter;
import org.sonar.java.model.JavaVersionImpl;
Expand All @@ -44,15 +44,15 @@ public abstract class MeasurerTester {
public void setUp() {
context = SensorContextTester.create(projectDir());

DefaultFileSystem fs = context.fileSystem();
TestFileSystem fs = context.fileSystem();

FileUtils.listFiles(sourceDir(), new String[] {"java"}, true).stream()
.map(file -> TestUtils.inputFile("", sourceDir(), file, InputFile.Type.MAIN))
.forEach(fs::add);

Measurer measurer = new Measurer(context, mock(NoSonarFilter.class));
JavaFrontend frontend = new JavaFrontend(new JavaVersionImpl(), mockSonarComponents(), measurer, new NoOpTelemetry(), mock(JavaResourceLocator.class), null);
List<InputFile> files = StreamSupport.stream(fs.inputFiles().spliterator(), false).toList();
List<InputFile> files = StreamSupport.stream(fs.inputFiles(fs.predicates().all()).spliterator(), false).toList();
frontend.scan(files, Collections.emptyList(), Collections.emptyList());
}

Expand All @@ -62,7 +62,7 @@ public void setUp() {

public Map<String, Double> getMetrics() {
Map<String, Double> metrics = new HashMap<>();
for (InputFile inputFile : context.fileSystem().inputFiles()) {
for (InputFile inputFile : context.fileSystem().inputFiles(context.fileSystem().predicates().all())) {
for (Measure measure : context.measures(inputFile.key())) {
if (measure.value() != null) {
String key = measure.metric().key();
Expand Down
Loading
Loading