Apache Felix Host 公开依赖 OSGi

Apache Felix Host expose dependencies OSGi

我正在使用 Apache Felix 创建嵌入式 OSGi 主机应用程序。我正在使用以下代码来公开我想要公开的包:

List<String> extra = new ArrayList<>();
extra.add("some.example.packag.to.expose.1");
extra.add("some.example.packag.to.expose.2");
extra.add("some.example.packag.to.expose.3");
config.put(Constants.FRAMEWORK_SYSTEMPACKAGES_EXTRA, extra.toString().replace("[","").replace("]", ""));

一切正常,这些软件包已公开。但是,我需要这些包才能访问 ALL 宿主项目声明的依赖项。因此,例如,父应用程序声明了 Jackson、Apache(各种)等,我需要捆绑包才能访问这些。

我尝试显式添加包,但当它们是依赖项时,这似乎不起作用。因此,例如在我想使用 Jacksons com.fasterxml.jackson.core.type.TypeReference; 的捆绑包中,我将 com.fasterxml.jackson.core.type 添加到上面的 EXTRA 列表中,但它似乎没有解决问题,该包仍然没有暴露。

在一项完美的工作中,我只想使所有主机依赖项都可用,而不必明确说明每个依赖项。

您将必须配置每个包。在 OSGi 中,您通常会将依赖项安装为捆绑包。所以设置不支持批量导出系统包