我真的很喜欢 OSGi 实现的模块化包的概念。
我还喜欢“托管部署”服务,例如 Google AppEngine(用于 Web 应用程序)或 Java WebStart(用于客户端软件)。
这两个想法似乎在概念上很好地相互补充。
然而,OSGi 标准包含一些特性,使得 Felix 或 Equinox 等实现无法在 AppEngine 或 Webstart 等沙盒虚拟机之上运行。在这些环境中,无法直接访问文件系统,例如,这排除了用于存储持久包状态和本机库的 OSGi 包缓存。
现在,我对使用本机库或拥有持久包状态没有太大兴趣。是否有一些框架实现了 OSGi 的核心包和服务概念(理想情况下以兼容的方式,以便 OSGi 包可以按原样部署到其中),但可以在没有包缓存的情况下工作(以及沙箱中不可用的其他工具) ?
我正在寻找适用于 AppEngine 或 WebStart 的有限版本的 Felix。
当然,如果 WebStart 引擎和 Google AppEngine 只是提供开箱即用的 OSGi 框架服务,那也很棒……
更新: AppEngine 的另一个非常有限的方面是您无法启动新线程。这可以防止(除其他外)异步捆绑生命周期管理。WebStart 显然不是问题。