OSGI Apache felix-热部署支持

时间:2013-10-02 09:22:55

标签: osgi apache-felix hotdeploy

有点背景:我们正在使用Apache Felix实现OSGI进行Web开发(Adobe CQ5,它是基于apache felix构建的)。我们有一些自己的捆绑(大约10个),每个都被配置为一个项目。

问题:在开发生命周期中,我们对bundle进行更改,然后使用ant脚本创建bundle并将其部署在felix中。我想知道是否有一些方法可以在开发模式下启用我所做的更改的热部署,这将节省开发人员的时间。

根据我的研究,我们可以使用felix文件安装,它将监视文件夹以更改任何软件包,并可以自动部署它们。但这又意味着我需要运行ant脚本来构建jar文件并将其移动到文件安装正在观看的自动部署文件夹中。有没有更好/更快的方法来实现这一目标?该脚本目前需要大约10秒(大约)来编译类,创建osgi特定的元数据文件,将类+元数据捆绑在一个新的jar中。有没有办法进行热部署,以便我对java文件所做的任何更改都会自动反映在bundle中?

非常感谢

2 个答案:

答案 0 :(得分:1)

如果您在Bndtools中开发项目并从内置启动器运行,那么Bndtools将立即处理您更改的任何Java代码,并将更新的bundle部署到运行时。这导致了极快的代码/测试/调试/修复周期。

话虽如此,我很惊讶目前编译和构建捆绑包需要10秒钟!你是在一个非常古老的计算机上建造的?或者捆绑包的大小是几千兆字节?

答案 1 :(得分:1)

我们尝试了DCEVM,它几乎可以完成我们所期望的所有减少开发+修复+测试生命周期的工作。我向所有使用大型Web应用程序的Java开发人员推荐这个。感谢您对bndtools Neil的建议。