When a language plugin defines rule names and descriptions in bundles, the name and description of the rules are not stored in the DB. The consequence is that if this plugin is removed (or some rules of this plugin), then many side effects can be seen:
- the existing issues will show up in SonarQube UI with empty rules
- blank lines will show up in the issue drilldown
The improvement is that we should push names and descriptions of rules/rule parameters from bundles to DB during server startup (during synchronisation of rules, when they are updated).
Technically speaking, bundles should be used only during rule synchronization at startup :
- stop caching bundles in memory (see RuleI18nManager call to i18nManager.messageFromFile)
- stop using bundle in rule.rb and rules_parameter.rb
- drop JRubyFacade methods : getRuleName, getRuleDescription, getRuleParamDescription