Dynamic 如何动态更新OSGi捆绑包?

Dynamic 如何动态更新OSGi捆绑包?,dynamic,osgi,updates,Dynamic,Osgi,Updates,我想在OSGi框架中动态更新一个bundle。 在这里,我想保留组件状态。我知道OSGi中的update命令忽略了组件的维护状态 我想找到一个类似DSUF的OSGi更新框架: 注意。更新包意味着更新包的新类加载器。因此,这意味着首先停止捆绑包,将其更新为新版本,然后使用新版本重新启动捆绑包。因此,组件也将使用包的新版本中的实现类停止和重新启动 组件可以在停用期间保存一些状态,在重新激活期间可以恢复这些状态,但这需要成为组件实现的一部分。我看到的最简单的方法是通过持久机制(jdbc、文件写入、jm

我想在OSGi框架中动态更新一个bundle。 在这里,我想保留组件状态。我知道OSGi中的update命令忽略了组件的维护状态

我想找到一个类似DSUF的OSGi更新框架:


注意。

更新包意味着更新包的新类加载器。因此,这意味着首先停止捆绑包,将其更新为新版本,然后使用新版本重新启动捆绑包。因此,组件也将使用包的新版本中的实现类停止和重新启动


组件可以在停用期间保存一些状态,在重新激活期间可以恢复这些状态,但这需要成为组件实现的一部分。

我看到的最简单的方法是通过持久机制(jdbc、文件写入、jms等)自己保存和恢复上下文.

您能告诉我如何维护状态的更多细节吗?如果可能的话,请告诉我一个在更新OSGi包时维护状态的更著名的框架?只有您的组件知道它的“状态”。所以只有您的组件知道在bundle更新期间保留什么作为状态。您的意思是“维护状态”?如果要保留由捆绑包实例化的映射的内容,则不可能将当前捆绑包中变量的内容(或值)保留在新捆绑包中。这可能是一个全局变量。在这里,保存和恢复上下文并不简单。可能线程中有正在执行的数据,例如,通信请求。请参阅:。我想找到一个类似Pymoult的框架,但不适用于OSGi