Я пытаюсь получить доступ к Property
в классе, расширяющем RulesDefinition
моего плагина SonarQube. Я определяю это свойство в классе, расширяющем SonarPlugin
, с помощью:
@Properties(
@Property(key="sonar.root.path", name="Path to installation", description = "Root directory of the Master plugin installation directory")
)
свойство правильно создано, и я установил его значение на странице конфигурации SQ, но почему-то я не могу получить к нему доступ из класса, расширяющего RulesDefinition
с помощью этого кода в переопределенном методе define(Context context)
:
// Get access to the Properties
Settings settings = new Settings(new PropertyDefinitions(new MyPlugin()));
if(settings.hasKey("sonar.root.path")) {
// Never enters here
String path = settings.getString("sonar.root.path");
} else {
// If always returns false and enters here
LOG.info("No property defined with the provided key.");
}
// To double-check
LOG.info("The value: " + settings.getString("sonar.root.path")); // Returns null
LOG.info("Has default value: " + settings.hasDefaultValue("sonar.root.path"));
// Returns false, or true if I provide a default value, proving it can
// access the property - so the if condition above should have returned true
Странно то, что я проверил свойство через веб-службу REST и могу подтвердить, что показанные значения являются значениями, установленными на веб-странице, но если я укажу значение по умолчанию (как указано чуть выше), журнал показывает значение по умолчанию значение, а не значение, введенное на веб-странице (и отображаемое через веб-службу).
Возможно, проблема в том, как я получаю объект Settings
. Был бы признателен за любую оказанную помощь. Заранее спасибо.