2012-07-13 57 views
5

我有一个片段包,用于访问第二方jar的某些添加功能。我的片段应该注册一个服务来公开这个新功能。它似乎没有工作。在深入解决问题之前,我想知道这是否允许?也就是说,Felix SCR的捆绑式观察器是否会查看或忽略碎片?OSGi片段包是否可以发布声明式服务?

回答

8

啊哈,我在规范第112.4.2节中自己找到了答案:“片段中指定的服务组件清单头被SCR忽略。”这符合3.14.3:“以下列表包含不得在片段包中使用的标题:Bundle-Activator”

+1

又见http://stackoverflow.com/questions/8592860/component-inside-a-fragment-never-activated,这证实了你刚才说的,但有一个额外的信息蓝图确实可以用于碎片。 – 2012-07-14 01:06:42

2

是的。但主机捆绑必须是开放的。打开,我的意思是主机捆绑包必须配置Service-Components头,以便可以找到片段中的任何描述符。例如:

Service-Components: OSGI-INF/*.xml 

会发现在主机捆绑所有连接的片段的OSGi-INF/夹中的所有文件.xml

我看到Eclipse SmartHome项目使用此解决方案使他们的UI更加可定制。

的更多信息:http://apache-felix.18485.x6.nabble.com/DS-amp-fragments-td5004610.html

相关问题