BJ *_*ave 11 java inheritance osgi declarative
OSGi声明性服务(DS)规范定义了注释,这些注释可以由工具(如Bnd)处理到运行时使用的组件描述xml中.R6规范中的112.8.1说:
The Component Annotations are not inherited, they can only be used on a given class, annotations on its super class hierarchy or interfaces are not taken into account.
为什么指定它们不允许继承?
小智 12
Apache Felix项目提供的DS注释曾经支持DS可扩展性.基于此实现,我们尝试将其标准化为特定官方OSGi DS注释的工作的一部分.
但问题是,我们在跨边界的两个实现类之间遇到了令人讨厌的耦合问题,我们无法使用Import-Package或Require-Capability标头正确表达这种依赖.
一些问题浮现在脑海:
bind和unbind方法设为私有.DS可以在基类上调用private bind或unbind方法吗?(从技术上讲,这可以做得很好,但它在概念上可以吗?)bind/和unbind方法在扩展类提供的描述符中列出,并且它们仍然命名旧的方法名称.bind/ unbind方法受到保护或公开.因此我们强制实现细节方法成为API的一部分.不是很好恕我直言.我们当时认为,在单个捆绑中进行这样的继承是可以的,但得出的结论是,这种限制,围绕它的解释等等都不值得付出努力.因此,我们再次从规范路线图中删除了该功能.
| 归档时间: |
|
| 查看次数: |
1022 次 |
| 最近记录: |