gpt4 book ai didi

eclipse - 在访问代码之前,eclipse/osgi 激活器是否总是至少被调用一次?

转载 作者:行者123 更新时间:2023-12-01 09:39:55 25 4
gpt4 key购买 nike

在 Eclipse (3.3) 中,我有一个插件用户,具体取决于插件提供者。提供者有一个激活器。在提供者的插件编辑器上,它有一个复选框“加载其类之一时激活此插件”。选中/取消选中这将更改 Manifest 设置:Eclipse-LazyStart 为 true/false。

我的问题是,对我来说,复选框意味着如果未选中它,则激活器可能不会运行,而设置意味着激活器将始终运行,无论您是否希望它与 eclipse 一起加载。

  • 如果你有激活器
    在 a 之前总是至少运行一次
    下游插件调用代码,不管这个复选框?
  • 此复选框是否仅适用于
    立即启动还是懒惰启动?
  • 最佳答案

    Eclipse-LazyStart: true ->意味着当插件中的类被加载时插件将自动启动。Eclipse-LazyStart: false ->意味着加载该插件中的类时不会启动插件/捆绑包。它将需要一个明确的 Bundle#start()由您调用,而不是从 Equinox OSGI 框架自动启动。
    所以是的,此支票簿仅适用于该设置。
    注意:对于 OSGI4.1,可能还会设置新的 Bundle-ActivationPolicy setting .
    来自 OSGI design :

    Lazy Activation

    Lazy activation is a life cycle policy that mandates a bundle MUST be activated upon the first successful request to load a class from that bundle.
    Sometimes this is referred to as auto starting because the bundle is automatically activated upon first class load.
    This design will always use the term lazy instead of auto because auto starting can imply that a bundle is always automatically started every time the framework is launched.


    这里的选择是“延迟启动 vs 不启动”,而不是“延迟启动 vs 急切启动”。
    因此,即使使用 Activator,您的插件 Provider 也不会启动,直到加载其类之一( lazy-start true )并显式调用(如果 lazy start false )

    关于eclipse - 在访问代码之前,eclipse/osgi 激活器是否总是至少被调用一次?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1253612/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com