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