【发布时间】:2011-05-18 20:55:36
【问题描述】:
当一个包被更新(比如修复一个错误)时,当前正在使用正在更新的包的其他包会发生什么?
说有两个bundles service和dao。当我发出命令更新 dao 层时,假设服务包中的类正在使用 dao 包中的类。使用dao代码的服务层中的类会出现异常吗?
感谢您的response。
我的意思是用相同的版本更新。
直到发生包含依赖包的包刷新。
更新包的用户会调用包刷新操作,对吗?说当用户调用refresh来更新dao bundle时,bundle服务中的一个类调用了dao层中一个类的方法……这种情况会发生什么?
我发现这篇博文很有帮助: http://solutionsfit.com/blog/2008/08/27/osgi-what-modularity-can-do-for-you-part-1/
来自帖子:
如果我们简单地用包含修复的包替换包,容器将注销旧包并注册新包。然后代理可以处理引用改组并恢复服务调用。这种交互几乎是瞬间的。您的客户将完全不知道发生了什么,而您刚刚为公司节省了大量资金(我听到奖金了吗?)。
在这篇博文中,对 authorizePayment() 的调用被暂停,直到更新的捆绑包可用。如果在 bundle 刷新发生时控件在 authorizePayment() 方法中会发生什么?
【问题讨论】:
标签: osgi