0

我正在使用 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

4

1 回答 1

1

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

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

于 2016-04-22T08:35:27.747 回答