Glassfish 将OSGI DS组件向后移植到OSGI R4

Glassfish 将OSGI DS组件向后移植到OSGI R4,glassfish,osgi,declarative-services,Glassfish,Osgi,Declarative Services,我有一个为ApacheKaraf4.0.5开发的组件。然而,事实证明它需要部署在GlassFish4上,它基于旧版本的Felix。我在尝试部署时收到以下消息: missing requirement [319.0] osgi.extender; (&(osgi.extender=osgi.component)(version>=1.3.0)(!(version>=2.0.0))) 但是,我的pom文件没有显示对osgi.component的任何显式依赖关系。我想我一定使用了

我有一个为ApacheKaraf4.0.5开发的组件。然而,事实证明它需要部署在GlassFish4上,它基于旧版本的Felix。我在尝试部署时收到以下消息:

missing requirement [319.0] osgi.extender; (&(osgi.extender=osgi.component)(version>=1.3.0)(!(version>=2.0.0)))
但是,我的pom文件没有显示对osgi.component的任何显式依赖关系。我想我一定使用了一些OSGiR5(或R6?)特有的特性,但我不知道哪一个会导致这个错误


如何说服glassfish接受我的捆绑包,或者更改捆绑包的构建/pom,以便在尝试使用依赖于R5或更高版本的OSGI功能时收到警告?

您可能正在使用最新版本的bnd生成捆绑包及其元数据。当您的捆绑包中有DS组件,并且您需要DS 1.3中的新组件(如field injection)或您正在使用最新版本的Bnd时,Bnd将在osgi.component extender(这是DS)上生成需求

您可以使用bnd指令禁用捆绑包中需求的生成:

-dsannotations选项:无要求


我在bnd文档中找不到这方面的参考,也无法使其产生任何效果。“bnd文档”唯一全面的bnd文档似乎是源代码