java - OSGi 声明式服务和 SonarQube

标签 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 函数声明,因为方法名称应符合命名约定 (squid:S00100),这意味着它需要类似 myFooProperty 的内容。

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

如果这是不可能的,我如何在 SonarQube 中添加异常(exception)。我不想删除这条规则,它是一个很好的规则。

最佳答案

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

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

关于java - OSGi 声明式服务和 SonarQube,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47113724/

相关文章:

java - cucumber 测试 java 示例?

java - Sonar 标志 "Bad practice": Usage of GetResource in XYZ may be unsafe if class is extended

javascript - 访问潜在 null/ undefined variable 的属性 - javascript

java - 在 Java 中访问包的多个版本

java - OSGi 捆绑跟踪器 : order of tracked bundles

java - java无法向sql数据库写入数据但读取成功

java - 在多线程程序中更新共享资源

java - FileOutputStream 头指针

java - Sonar maven 插件在 Java 主文件 AST 扫描期间挂起

java - 使用 maven-bundle-plugin 安装 OSGi 依赖项