OSGi的运行时灵活性

时间:2018-04-30 17:20:28

标签: runtime osgi

开始使用OSGi时,想到这个问题,因为这对我来说已经不清楚了。 如果您需要更改运行时代码,OSGi可能是使用Java实现此目的的唯一可能方法。 来自https://mondula.com/2016/01/11/osgi-benefits-and-drawbacks/

技术上如何在OSGi中保持运行时灵活性?

1 个答案:

答案 0 :(得分:1)

这是一个很大的问题,在这里完全回答是不切实际的。以下是简要概述。

OSGi为每个已解析的分发包分配Java ClassLoader。更新捆绑包时,OSGi首先向捆绑包发送一个停止信号,允许它释放资源并准备进行垃圾回收。

然后根据其要求重新解析新捆绑包,与先前版本相比,这些要求可能已更改。假设新版本仍然解析(即它的需求仍然满足),那么OSGi会分配一个新的ClassLoader,使用它来加载bundle中的类,如果bundle有一个激活器并且在ACTIVE更新前的状态,向新加载的激活器发送启动信号。