org.apache.aries.blueprint.preemptiveShutdown = false保证在启动级别命令中关闭bundle

时间:2016-02-02 15:12:41

标签: apache-felix apache-karaf osgi-bundle karaf aries

我们在我们的Karaf容器中运行了一个共享服务包,当我们关闭容器时,我们希望共享捆绑包最后一个。

我们想知道org.apache.aries.blueprint.preemptiveShutdown = false是否保证在启动级别顺序中关闭捆绑包(具有较高启动级别的一个将首先关闭?)

1 个答案:

答案 0 :(得分:1)

理论上,是的,当破坏容器时,此属性会禁用蓝图aries的默认行为。默认情况下(或此属性为true时),当捆绑0停止时,将销毁所有蓝图容器。如果将此属性设置为false,则当框架停止捆绑时,会以相反的顺序使用startlevel来销毁蓝图容器。

但它不是“保证”。这种扩展器通常使用异步策略:创建和销毁上下文可以由另一个线程处理。 afaik,aries的当前版本看起来像是在捆绑停止时同步破坏蓝图上下文。