OSGi声明服务& SonarQube

时间:2017-11-04 17:51:36

标签: java sonarqube osgi apache-felix

我正在使用OSGi声明服务R6。根据文档,我创建了一个@interface函数声明,如下所示:

@ObjectClassDefinition(name = "Hello World OSGi Service")
public @interface Configuration {
    @AttributeDefinition(name = "My Foo Property",
                         description = "A sample string property",
                         type = AttributeType.STRING)
    String my_foo_property() default "bar";
}

我的属性ID生成为my.foo.property,默认值为“bar”。但是,我对SonarQube的问题是Sonar Way质量配置文件不喜欢my_foo_property函数声明,因为Method names should comply with a naming convention(squid:S00100)这意味着它需要像{{myFooProperty 1}}。

所以我的问题是:使用OSGi DS R6,我如何覆盖生成的属性id,以便我的方法声明可以是myFooProperty,但密钥可以是my.foo.property

如果这是不可能的,我如何在SonarQube中添加例外。我不想删除这条规则,这是一个很好的规则。

1 个答案:

答案 0 :(得分:0)

规则认为可接受的名称是与其配置的正则表达式匹配的名称,这简单地使这成为制作正确的正则表达式的问题。可能类似于([a-z][a-zA-Z0-9]*)|([a-z]+\.[a-z]+\.[a-z]+)

但是,您提到您正在使用Sonar方式配置文件。在SonarQube的更高版本中,此配置文件不可编辑,因此您需要创建自己的配置文件,将其设置为默认配置文件,然后才能更新此规则的正则表达式copy the rules from Sonar way into it