我喜欢OSGi,但是当尝试使用第三方库时,导入/导出限制和缺少上下文类加载器会造成严重破坏(例如,某些库尝试在META-INF中找到file.xml,期望所有这些文件在要返回的所有jar中,其他库使用ServiceLoader)。
我想要OSGi的动态加载,处理同一个库的多个版本和服务框架的能力。
那么我的替代方案是什么?我知道JPF,寻找的东西少了xmlish。
答案 0 :(得分:0)
您是否尝试使用Google搜索每个库+ osgi?快速浏览一下其他人的经历和(似乎)成功。
很抱歉“只是谷歌回答”,但由于我没有在我的OSGi应用程序中主动使用这些库,我只能建议我如何为我的一些库处理这个......这是google。
这不是一个很好的答案,但我不希望将其隐藏在评论中。
答案 1 :(得分:0)
我想要OSGi的动态加载,处理同一个库的多个版本和服务框架的能力。
还有其他服务框架,但是为了获得动态加载和同一类的多个版本,OSGi没有其他任何我知道的。
此外,现在OSGi似乎终于获得了一些牵引力,图书馆“玩得好”的压力正在上升。例如,SpringSource维护着越来越多的OSGified库。您需要的包裹可能已经存在。
答案 2 :(得分:0)
我遇到了一个java垃圾邮件捆绑包与我的java激活捆绑包分开的问题。你有以下选项可以让1个bundle看到其他bundle的META-INF中的文件(即不是java资源,但是像xml文件这样的东西)。
1)将捆绑包合并在一起。这通常很难处理,或者根本不是不可能的。
2)让需要共享资源的bundle成为需要读取资源的bundle的bundle片段。捆绑片段由OSGi规范定义,允许单独的捆绑包共享资源,就好像它们被合并在一起一样。