osgi框架下,插件A怎么读取插件B中的文件
在osgi框架下,插件A要读取插件B的文件怎么实现?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
在osgi框架下,插件A要读取插件B的文件怎么实现?
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(11)
我实现的方式是,在Bundle B中Export一个类,在A中或者这个类。通过这个类获取ClassLoader,这个ClassLoader就是Bundle B的类加载器。这个加载器是可以加载到B中的文件的。
这种直接引用资源本身是存在bundle界定不清的问题,全局配置本质是一个中心化的处理,问题也会暴露很多,分离到bundle,就存在较多的ref,所以,需要区分一下你的resource是什么来定!
我是通过扩展点的方式,让其它引用的插件告知文件位置,然后再统一读取,danny提的Preferences可能有些思路,但不知道怎么用,有没有代码思路?另外听别人说在扩展点里可以定义方法,然后我直接调用这个方法可以返回文件流,这个方案是否可行?
这要看你到底想做什么,B的内部文件A是不可见的
OSGi默认提供了两种方式,发布全局的配置信息
一个是ConfigAdmin 一个Preferences, 看看这个是不是你要的
一般来说Web应用本身不存在动态模块化,也没有和底层框架交互的需求。所以Web应用更多的是作为一个Bundle跑在OSGi框架里。我曾经做过一个特殊的例子,利用OSGi和Vaadin实现了一个可以动态增减模块的RIA程序。
用OSGi做WEB应用,把各个业务功能做成一个个的组件,动态的加载卸载,是否可行呢?
我们公司的系统web都是osgi框架做的
能介绍介绍么?
利用OSGi和Vaadin实现了一个可以动态增减模块的RIA程序,这个比较感兴趣,想和你交流交流!我的msn,ivaadin@gmail.com
搭车问一下,OSGi现在在WEB中应用的如何?
配置文件放在项目根目录里 例如图上的config 这样所有的plugins都能读取
每个插件各自都是不同的classloader 读取别的插件内部的配置文件比较麻烦 你可以让那个插件export一个获取配置文件中值得类出来然后引用它