Sha*_*ppa 3 osgi apache-felix aem
我正在尝试扩展OSGI服务.正在扩展的OSGI服务包括一些引用和属性.我正在使用新org.osgi.service.component.annotations包装.由OSGi R6实现的注释处理器生成的元XML不考虑我正在扩展的OSGI服务中的引用和属性声明.
Apache Felix Maven SCR插件很好地处理了这个用例,并且用Felix注释注释的类也包括基类的引用和属性.
有没有办法让这个工作与官方OSGI注释实现.我不想回退到Felix SCR插件,除非我必须像他们的官方网站所说继续进行OSGI实现,这是一个尚未使用SCR插件的新项目.
小智 6
由OSGi R6实现的注释处理器生成的元XML不考虑我正在扩展的OSGI服务中的引用和属性声明.
您期望的行为取决于您用于生成XML的构建工具,而不是注释本身.通常,基于父类中的注释生成XML不是一个好主意.这是因为位于构建时的父类可能与位于运行时的父类不同.在这种情况下,生成的注入站点可能实际上并不存在于运行时,从而导致许多问题.事实上,即使类型相同,您也可以从子类引用父类的私有详细信息.
除了这个警告之外,您可能正在使用基于bnd的工具,例如maven-bundle-plugin或bnd-maven-plugin生成XML文件.为了避免我提到的问题,bnd不会搜索组件的父类以获取注释,但可以使用以下指令在配置中覆盖此行为:
-dsannotations-options: inherit
Run Code Online (Sandbox Code Playgroud)
如果添加该配置选项,则应该看到所需的行为,但强烈建议您在父类和子类位于不同的包中时不要执行此操作.
| 归档时间: |
|
| 查看次数: |
749 次 |
| 最近记录: |