我正在使用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
?
答案 0 :(得分:1)
这是不可能的,因为在OSGi级别配置文件不存在。 配置文件是一个Fuse概念,可以列出功能和捆绑。功能是一个Karaf概念,只有捆绑是真正的OSGi工件。这意味着OSGi容器不知道任何功能或配置文件,因此无法告诉您哪个功能或配置文件负责安装捆绑包。即使可能仍然存在这样的事实,即多个功能和配置文件可能会将您的捆绑包放在其列表中,从而无法确定哪个配置文件是“当前”配置文件。
如果要从配置文件访问文件,则应使用配置文件URL处理程序。见http://fabric8.io/gitbook/urlHandlers.html