0
votes

Using SonarQube 5.2 with Sonar-Java-Plugin 3.8, and for analysis Sonar-Runner 2.4 is used.

Plugin and java-custom examples are downloaded from git (https://github.com/SonarSource/sonar-examples/tree/master/plugins/java-custom-rules), built and deployed on server, and rules are visible on the server. Rules were activated using web under "Sonar Way" profile (which is default). A new test profile is also created and rule "Avoid Brand in method name" is added to it, and associated a project to it.

While analyzing sample java code from (/src/test/files), issues from all default java rules are locked on server, but no issue for the custom rules are locked. There are no explicit error in logs either.

sonar-runner.properties

sonar.host.url=http://localhost:9000
sonar.jdbc.url=jdbc:mysql://localhost:3306/sonar52?useUnicode=true&characterEncoding=utf8
sonar.jdbc.username=root
sonar.jdbc.password=ChangeIt
sonar.projectKey=TestSonarCustomRules
sonar.projectName=TestSonarCustomRules
sonar.projectVersion=1.0
sonar.sources=E:/Sonar Example/sonar-examples-master/plugins/java-custom-rules/src/test/files/

Here are the analysis logs:

E:\sonar-runner-2.4
SonarQube Runner 2.4 
Java 1.8.0_45 Oracle Corporation (64-bit) 
Windows 7 6.1 amd64 
INFO: Runner configuration file: E:\sonar-runner-2.4\conf\sonar-runner.properties 
INFO: Project configuration file: NONE 
INFO: Default locale: "en_US", source code encoding: "windows-1252" (analysis is platform dependent) 
INFO: Work directory: E:\Sonar Example\sonar-examples-master\plugins\java-custom-rules\src\test\files\.\.sonar 
INFO: SonarQube Server 5.2 
18:56:49.391 INFO  - Load global repositories 
18:56:49.539 INFO  - Load global repositories (done) | time=145ms 
18:56:49.557 WARN  - Property 'sonar.jdbc.url' is not supported any more. There is no more DB connection to the SQ database. It will be ignored. 
18:56:49.558 WARN  - Property 'sonar.jdbc.username' is not supported any more. There is no more DB connection to the SQ database. It will be ignored. 
18:56:49.558 WARN  - Property 'sonar.jdbc.password' is not supported any more. There is no more DB connection to the SQ database. It will be ignored. 
18:56:49.560 INFO  - User cache: C:\Users\kapil.saxena\.sonar\cache 
18:56:49.777 INFO  - Load plugins index 
18:56:49.781 INFO  - Load plugins index (done) | time=4ms 
18:56:49.960 INFO  - Process project properties 
18:56:50.209 INFO  - Load project repositories 
18:56:50.290 INFO  - Load project repositories (done) | time=81ms 
18:56:50.298 INFO  - Apply project exclusions 
18:56:50.369 INFO  - Load quality profiles 
18:56:50.401 INFO  - Load quality profiles (done) | time=32ms 
18:56:50.403 INFO  - Load active rules 
18:56:50.478 INFO  - Load active rules (done) | time=75ms 
18:56:50.498 WARN  - SCM provider autodetection failed. No SCM provider  claims to support this project. Please use sonar.scm.provider to define SCM of your project. 
18:56:50.499 INFO  - Publish mode 
18:56:50.500 INFO  - -------------  Scan TestSonarCustomRules 
18:56:50.582 INFO  - Load server rules 
18:56:50.630 INFO  - Load server rules (done) | time=48ms 
18:56:50.683 INFO  - Base dir: E:\Sonar Example\sonar-examples-master\plugins\java-custom-rules\src\test\files 
18:56:50.683 INFO  - Working dir: E:\Sonar Example\sonar-examples-master\plugins\java-custom-rules\src\test\files\.sonar 
18:56:50.685 INFO  - Source paths: . 
18:56:50.685 INFO  - Source encoding: windows-1252, default locale: en_US 
18:56:50.686 INFO  - Index files 
18:56:50.758 INFO  - 7 files indexed 
18:56:50.760 INFO  - Quality profile for java: Kapil Test Profile 
18:56:50.786 INFO  - Sensor JavaSquidSensor 
18:56:50.925 INFO  - Configured Java source version: none 
18:56:50.954 INFO  - JavaClasspath initialization... 
18:56:50.954 INFO  - JavaClasspath initialization done: 0 ms 
18:56:50.954 INFO  - JavaTestClasspath initialization... 
18:56:50.954 INFO  - JavaTestClasspath initialization done: 0 ms 
18:56:51.232 INFO  - Java Main Files AST scan... 
18:56:51.234 INFO  - 7 source files to be analyzed 
18:56:51.631 INFO  - 7/7 source files have been analyzed 
18:56:51.632 INFO  - Java Main Files AST scan done: 400 ms 
18:56:51.632 WARN  - Java bytecode has not been made available to the analyzer. The org.sonar.java.bytecode.visitor.DependenciesVisitor@3a5c2626 are disabled. 
18:56:51.632 INFO  - Java Test Files AST scan... 
18:56:51.632 INFO  - 0 source files to be analyzed 
18:56:51.632 INFO  - Java Test Files AST scan done: 0 ms 
18:56:51.632 INFO  - 0/0 source files have been analyzed 
18:56:51.632 INFO  - Sensor JavaSquidSensor (done) | time=846ms 
18:56:51.633 INFO  - Sensor Lines Sensor 
18:56:51.635 INFO  - Sensor Lines Sensor (done) | time=2ms 
18:56:51.635 INFO  - Sensor QProfileSensor 
18:56:51.640 INFO  - Sensor QProfileSensor (done) | time=5ms 
18:56:51.640 INFO  - Sensor SurefireSensor 
18:56:51.641 INFO  - parsing E:\Sonar Example\sonar-examples-master\plugins\java-custom-rules\src\test\files\target\surefire-reports 
18:56:51.641 ERROR - Reports path not found or is not a directory: E:\Sonar Example\sonar-examples-master\plugins\java-custom-rules\src\test\files\target\surefire-reports 
18:56:51.641 INFO  - Sensor SurefireSensor (done) | time=1ms 
18:56:51.641 INFO  - Sensor SCM Sensor 
18:56:51.641 INFO  - No SCM system was detected. You can use the 'sonar.scm.provider' property to explicitly specify it. 
18:56:51.641 INFO  - Sensor SCM Sensor (done) | time=0ms 
18:56:51.641 INFO  - Sensor Code Colorizer Sensor 
18:56:51.642 INFO  - Sensor Code Colorizer Sensor (done) | time=1ms 
18:56:51.642 INFO  - Sensor CPD Sensor 
18:56:51.642 INFO  - JavaCpdEngine is used for java 
18:56:51.682 INFO  - Sensor CPD Sensor (done) | time=40ms 
18:56:51.752 INFO  - Analysis reports generated in 68ms, dir size=9 KB 
18:56:51.873 INFO  - Analysis reports compressed in 121ms, zip size=11 KB
18:56:51.912 INFO  - Analysis reports sent to server in 38ms 
18:56:51.913 INFO  - ANALYSIS SUCCESSFUL, you can browse http://localhost:9000/dashboard/index/TestSonarCustomRules 
18:56:51.913 INFO  - Note that you will be able to access the updated dashboard once the server has processed the submitted analysis report. 
18:56:51.913 INFO  - More about the report processing at http://localhost:9000/api/ce/task?id=AVGl0nT8XJ_fdu5L48WL 
INFO: ------------------------------------------------------------------------ 
INFO: EXECUTION SUCCESS INFO:
------------------------------------------------------------------------ 
Total time: 3.290s Final Memory: 14M/325M INFO:
------------------------------------------------------------------------

sonar, access and wrapper logs are all clean.

Here's image from SonarQube web showing issues for AvoidBrandInMethodNamesChecks, where all default issues are locked but issues against custom rule are not locked: Issues for AvoidBrandInMethodNamesCheck

Any help would be appreciated.

2
My suspicion is that custom java rules (though activated in default QP, and plugin showing to be added during debug of server startup) are not picked up during analysis; as i have intentionally put an exception during scanFile method of the rule, but it doesn't get thrown, and neither are logs printed.K S

2 Answers

0
votes

Debug statements from custom plugin code were not executed when analysis was done with logging level at verbose/DEBUG.

The behaviour was the same when analysis was done using SonarQube 5.1 / 5.2 / 5.3 against databases default embedded H2 / PostgreSQL 9.5

0
votes

Finally worked. I was using wrong version of examples. My pom.xml file of java-custom-rules did not have the following:

<dependency>
  <groupId>org.sonarsource.java</groupId>
  <artifactId>java-squid</artifactId>
  <version>${java.plugin.version}</version>
</dependency>

Note: Get the latest version of examples.