osgi r6 service.component.annotations属性列表

时间:2016-12-20 13:48:21

标签: java osgi r6

也许我很愚蠢,但如何在属性值中设置列表? 例如,使用felix scr注释,servlet看起来有点像这样

@Component(metatype = false)
@SlingServlet(
 methods = { "GET", "POST" },
 resourceTypes = "sling/servlet/default",
 selectors = { "size" },
 paths = { "/some/stupid/path/.*" }

使用新的osgi服务注释

@Component(service = Servlet.class,
    property = { 
     "sling.servlet.methods=GET",
     "sling.servlet.methods=POST",
     "sling.servlet.resourceTypes=sling/servlet/default",
     "sling.servlet.selectors=size",
     "sling.servlet.paths=/some/stupid/path.*" })

如何将servlet.methods设置为列表?不可否认,在这个例子中它没有太大的问题,但是我有一个servlet可以在很多选择器上激活,而且我真的不希望有20行“sling.servlet.selectors = ...”

1 个答案:

答案 0 :(得分:2)

来自javadoc:To specify a property with multiple values, use multiple name, value pairs. For example, "foo=bar", "foo=baz".所以你所拥有的应该是sling.servlet.methods的值是一个数组[GET,POST]

通过允许注释设置属性值,对未来DS 1.4规范的支持应该更容易。见RFC 222中的5.10。