Fabric8:获取OSGi包中的当前配置文件

时间:2016-04-21 14:29:20

标签: java osgi fabric8

我正在使用Fabric8 v.1.2.0.redhat-133。

我有一个包含的配置文件和一些配置文件,例如:

捆绑:mvn:my-gr/my-art/1-SNAPSHOT

配置文件:config.xml

我可以调用

ProfileManager manager = ProfileManagerLocator.getProfileManager();
Profile profile = manager.getProfile("1.0", "profile-name");
byte[] brokerConf = profile.getFileConfiguration("config.xml");

在我的包的代码中并获取文件。有用。但在这种情况下,我需要知道配置文件的名称。

有没有办法获取当前捆绑包的个人资料名称?

或者有更好的方式来获取config.xml,也许不是ProfileManager

1 个答案:

答案 0 :(得分:1)

这是不可能的,因为在OSGi级别配置文件不存在。 配置文件是一个Fuse概念,可以列出功能和捆绑。功能是一个Karaf概念,只有捆绑是真正的OSGi工件。这意味着OSGi容器不知道任何功能或配置文件,因此无法告诉您哪个功能或配置文件负责安装捆绑包。即使可能仍然存在这样的事实,即多个功能和配置文件可能会将您的捆绑包放在其列表中,从而无法确定哪个配置文件是“当前”配置文件。

如果要从配置文件访问文件,则应使用配置文件URL处理程序。见http://fabric8.io/gitbook/urlHandlers.html