我正在将一个项目更新为 OSGi R6 注释(由于我将依赖项部署到我的容器中,我有运行 OSGi R7 的限制)并且遇到了一个问题,即我的旧 Apache Felix SCR 注释中有破折号,这在 OSGi 中是不可能的R6。
我试图在移动到 OSGi R6 注释的同时保持现有的 OSGi 属性(包含破折号),但是事实证明这很困难。
我现在要做的是使用支持破折号的 OSGi R7 注释$_$
,并寻找某种方法可以强制/target/classes/OSGI-INF/metatype
XML 文件具有
<metatype:MetaData xmlns:metatype="http://www.osgi.org/xmlns/metatype/v1.2.0"...
代替
<metatype:MetaData xmlns:metatype="http://www.osgi.org/xmlns/metatype/v1.4.0"...
..这是我的应用程序中的不兼容(无法解析 1.4.0 命名空间,不,我无法更新我的 Metatype 服务)。
有什么方法可以在我的元类型 XML 生成中强制使用 XMLNS?我可以在 /target/classes/OSGI-INF 的 Component XML 文件上强制使用它,方法是指定@Component(xmlns="http://www.osgi.org/xmlns/metatype/v1.2.0")
但是这将它设置为组件而不是元类型(我需要它作为元类型)。
我正在使用:
<groupId>org.apache.felix</groupId>
<artifactId>maven-bundle-plugin</artifactId>
<version>4.1.0</version>
关于如何实现这一目标的任何想法?