从另一个包中读取Karaf中的属性文件

时间:2017-07-14 21:06:01

标签: osgi karaf

在Karaf中,有没有办法让捆绑包从另一个捆绑包中读取属性文件?

我有 bundle1 ,其中包含 bundle2 使用的一些类( bundle1 通过maven导出包含其maven pom中的类的包bundle-plugin和 bundle2 导入它)。但是 bundle2 还需要使用 bundle1 中的属性文件。有没有一种方法,除了类, bundle2 可以从 bundle1 访问文件?

根据我的阅读,一个选项是通过功能文件将属性部署到karaf etc文件夹,然后可以通过蓝图从 bundle2 访问它。我想尽可能避免这种情况,因为 bundle1 目前尚未部署为功能。所以希望采用另一种方法。

1 个答案:

答案 0 :(得分:2)

最好的方法是通过bundle1类包装访问。假设bundle1包含一个名为MyClass的类。在这个类中,您可以执行此操作.getClass()。getResourceAsStream(path)。路径相对于类的包。

因此,此类的方法可以返回属性文件的Inputstream或允许访问实际属性。

实际上,您也可以从bundle2访问属性文件。只需使用bundle2中类的MyClass.getResourceAsStream(path)。这适用于每个类默认由它所在的包的类加载器加载。