From b0d61b0f9accdbb96649e66e1ea0b16b30676d95 Mon Sep 17 00:00:00 2001 From: asya-vorobeva Date: Mon, 30 Mar 2026 13:39:28 +0200 Subject: [PATCH] SONARJAVA-6218 Prepare a basic project in sonar-java to use for running ruling samples --- its/ruling/pom.xml | 16 +------- .../org/sonar/java/it/JavaRulingTest.java | 19 ++++++++- .../test/resources/vibebot/java-S1120.json | 6 +++ .../test/resources/vibebot/java-S1228.json | 5 +++ .../test/resources/vibebot/java-S1451.json | 5 +++ its/vibebot/pom.xml | 39 +++++++++++++++++++ its/vibebot/sonar-project.properties | 6 +++ .../src/main/java/org/vibebot/App.java | 12 ++++++ 8 files changed, 91 insertions(+), 17 deletions(-) create mode 100644 its/ruling/src/test/resources/vibebot/java-S1120.json create mode 100644 its/ruling/src/test/resources/vibebot/java-S1228.json create mode 100644 its/ruling/src/test/resources/vibebot/java-S1451.json create mode 100644 its/vibebot/pom.xml create mode 100644 its/vibebot/sonar-project.properties create mode 100644 its/vibebot/src/main/java/org/vibebot/App.java diff --git a/its/ruling/pom.xml b/its/ruling/pom.xml index 8a273286a37..c530e9e9122 100644 --- a/its/ruling/pom.xml +++ b/its/ruling/pom.xml @@ -108,21 +108,7 @@ org.apache.maven.plugins maven-surefire-plugin - !org.sonar.java.it.JavaRulingTest#sonarqube_server - - - - - - - only-jboss-project - - - - org.apache.maven.plugins - maven-surefire-plugin - - org.sonar.java.it.JavaRulingTest#jboss_ejb3_tutorial + !org.sonar.java.it.JavaRulingTest#sonarqube_server, !org.sonar.java.it.JavaRulingTest#vibebot diff --git a/its/ruling/src/test/java/org/sonar/java/it/JavaRulingTest.java b/its/ruling/src/test/java/org/sonar/java/it/JavaRulingTest.java index 6cb69a1657a..0ebcf7ad36f 100644 --- a/its/ruling/src/test/java/org/sonar/java/it/JavaRulingTest.java +++ b/its/ruling/src/test/java/org/sonar/java/it/JavaRulingTest.java @@ -147,6 +147,8 @@ public static void prepare_quality_profiles() throws Exception { .forEach(ruleKey -> Fail.fail("Specified rule does not exist: " + ruleKey)); prepareDumpOldFolder(); + + Files.createDirectories(Paths.get("target", "performance")); } @AfterClass @@ -361,6 +363,19 @@ public void regex_examples() throws IOException { executeBuildWithCommonProperties(build, projectName); } + /** + * Vibe-bot runs this test when testing samples; so it's excluded from the GitHub Actions workflow. + */ + @Test + public void vibebot() throws IOException { + String projectName = "vibebot"; + File pomFile = FileLocation.of("../vibebot/pom.xml").getFile().getCanonicalFile(); + prepareProject("org.vibebot:vibebot", projectName); + MavenBuild build = MavenBuild.create().setPom(pomFile).setCleanPackageSonarGoals().addArgument("-DskipTests"); + build.setProperty("sonar.projectKey", "org.vibebot:vibebot"); + executeBuildWithCommonProperties(build, projectName); + } + private static MavenBuild test_project(String projectKey, String projectName) throws IOException { return test_project(projectKey, null, projectName); } @@ -377,7 +392,6 @@ private static MavenBuild test_project(String projectKey, @Nullable String path, private static MavenBuild test_existing_project(String projectKey, String projectName) throws IOException { String pomLocation = "../sources/" + projectName + "/pom.xml"; File pomFile = FileLocation.of(pomLocation).getFile().getCanonicalFile(); - //prepareProject(projectKey, projectName); MavenBuild mavenBuild = MavenBuild.create().setPom(pomFile).setCleanPackageSonarGoals().addArgument("-DskipTests"); mavenBuild.setProperty("sonar.projectKey", projectKey); return mavenBuild; @@ -400,7 +414,8 @@ private static void executeBuildWithCommonProperties(Build build, String proj build.setProperty("sonar.scanner.skipJreProvisioning", "true"); build.setProperty("sonar.cpd.exclusions", "**/*") .setProperty("sonar.java.performance.measure", "true") - .setProperty("sonar.java.performance.measure.path", "target/performance/sonar.java.performance.measure.json") + .setProperty("sonar.java.performance.measure.path", + Paths.get("target/performance/sonar.java.performance.measure.json").toAbsolutePath().toString()) .setProperty("sonar.import_unknown_files", "true") .setProperty("sonar.skipPackageDesign", "true") .setProperty("sonar.lits.dump.old", effectiveDumpOldFolder.resolve(projectName).toString()) diff --git a/its/ruling/src/test/resources/vibebot/java-S1120.json b/its/ruling/src/test/resources/vibebot/java-S1120.json new file mode 100644 index 00000000000..c191a05ccb1 --- /dev/null +++ b/its/ruling/src/test/resources/vibebot/java-S1120.json @@ -0,0 +1,6 @@ +{ +"org.vibebot:vibebot:src/main/java/org/vibebot/App.java": [ +7, +10 +] +} diff --git a/its/ruling/src/test/resources/vibebot/java-S1228.json b/its/ruling/src/test/resources/vibebot/java-S1228.json new file mode 100644 index 00000000000..375a1d86530 --- /dev/null +++ b/its/ruling/src/test/resources/vibebot/java-S1228.json @@ -0,0 +1,5 @@ +{ +"org.vibebot:vibebot": [ +0 +] +} diff --git a/its/ruling/src/test/resources/vibebot/java-S1451.json b/its/ruling/src/test/resources/vibebot/java-S1451.json new file mode 100644 index 00000000000..c4ff4bb6a25 --- /dev/null +++ b/its/ruling/src/test/resources/vibebot/java-S1451.json @@ -0,0 +1,5 @@ +{ +"org.vibebot:vibebot:src/main/java/org/vibebot/App.java": [ +0 +] +} diff --git a/its/vibebot/pom.xml b/its/vibebot/pom.xml new file mode 100644 index 00000000000..223ad0b2896 --- /dev/null +++ b/its/vibebot/pom.xml @@ -0,0 +1,39 @@ + + + + 4.0.0 + org.vibebot + vibebot + 1.0-SNAPSHOT + Vibebot + + + UTF-8 + 21 + + + + org.slf4j + slf4j-api + 1.7.30 + + + + + + + org.apache.maven.plugins + maven-compiler-plugin + 3.13.0 + + 21 + 21 + 21 + + + + + + + diff --git a/its/vibebot/sonar-project.properties b/its/vibebot/sonar-project.properties new file mode 100644 index 00000000000..c634a69f4c7 --- /dev/null +++ b/its/vibebot/sonar-project.properties @@ -0,0 +1,6 @@ +sonar.projectKey=org.vibebot:vibebot +sonar.projectName=vibebot +sonar.projectVersion=1.0-SNAPSHOT + +sonar.sources=src/main/java +sonar.java.source=21 diff --git a/its/vibebot/src/main/java/org/vibebot/App.java b/its/vibebot/src/main/java/org/vibebot/App.java new file mode 100644 index 00000000000..a4be8349089 --- /dev/null +++ b/its/vibebot/src/main/java/org/vibebot/App.java @@ -0,0 +1,12 @@ +package org.vibebot; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +public class App { + private static final Logger LOGGER = LoggerFactory.getLogger(App.class); + + public static void main(String[] args) { + LOGGER.info("Hello Nigel!"); + } +}