The following contains additional information and answers to commonly asked questions on the plugins configuration, setup and usage.
The following dependencies need to be installed to be able to run the MB-Precise plugin against your Message Broker code.
MB-Precise is a Sonarqube plugin, that runs on Sonar. Sonar runs on Java. Java needs to be downloaded and installed.
After installing Java, Sonarqube needs to be installed. MB-Precise has been tested with different versions of Sonarqube. 4.3.1+ is the current supported version. It is available for download from here:
Once Sonarqube is started and running, you can either run the analysis from either a command prompt via Sonar-runner, which is available here:
Or via the Jenkins Sonar plugin.
The last step is to copy the Mb_precise-x.jar into the ‘extensions\plugins’ folder on the Sonarqube server and restart the server.
More details can be found here:
It uses the sonar-project.properties configuration file.
There are a number of additional properties that have been added that are used by the plugin:
This is threshold for how long the MQGet and other nodes with timeouts should wait. This check tries to prevent long processes that can block the EG.
This property tells the plugin where to generate diagrams and documentation to. It is an absolute path. The following would send all diagrams to the “C:\test\demos\generated” directory.
This optional property tells the plugin what the common code heading block for ESQL should contain. This could be the company name and some copyright details. Is similar to what the maven plugin does:
|sonar.mb.header.company=Richards Test Company|
This optional parameter gets the plugin to check all flows for a “Note”. These notes are away to enforce a documentation standard against your code.
The plugin attempts to match the MQ queue and topic definitions used in the code (in ESQL and Msgflow files) against those in a MQ configuration file. This property is a relative path from where Sonar is running from to your MQ configuration file.
The following line tells the plugin that the MQ queue and topic configuration can be found in the .\MB-Precise-Demo\queues.conf file.
If this is not configured a violation is raised. To disable this check/violation, disable the following violation as from the sonar quality profile for Message Broker:
|MQ Definition file has not been configured or doesn’t refer to a valid file|
This is threshold for when a particular ESQL file is flagged as being complex. Its a numerical whole value and can be tuned as required.
This is threshold for when a particular ESQL function is flagged as being too long. Its a numerical whole value and can be tuned as required.
This is threshold for when a particular line of ESQL is too long. Usually it has to able to be read without excessive scrolling.
Its a numerical whole value and can be tuned as required.
This allows the plugin to connect to an active SQL/Relational datasource and validate that the tables and fields referenced in the code exist in the database. It also checks that queries are accessing tables against valid indexes.