在Eclipse(3.3)中,我有一个插件 User ,具体取决于插件 Provider 。 提供商有一个激活器。在提供程序的插件编辑器上,它有一个复选框“加载其中一个类时激活此插件”。选中/取消选中此项将更改Manifest设置:Eclipse-LazyStart为true / false。
我的问题是,对我来说,复选框意味着如果取消选中激活器可能无法运行,而设置意味着激活器将始终运行,只是您是否希望它是否使用eclipse加载。 / p>
答案 0 :(得分:8)
Eclipse-LazyStart: true ->
表示插件插件加载后会自动启动插件
Eclipse-LazyStart: false ->
表示加载该插件中的类时不会启动插件/包。它需要您进行明确的Bundle#start()
调用,而不是从Equinox OSGI框架自动启动。
是的,这张支票簿仅适用于该设置
注意:使用OSGI4.1,也可以设置新的Bundle-ActivationPolicy
setting。
来自OSGI design:
延迟激活
延迟激活是一种生命周期策略,它要求在第一次成功请求从该捆绑中加载类时必须激活捆绑。
有时这被称为自动启动,因为捆绑在第一次加载时自动激活 此设计将始终使用术语lazy而不是auto,因为自动启动可能意味着每次启动框架时都会自动启动捆绑包。
这里的选择是“lazy-start vs no-start”,而不是“lazy-start vs eager-start”。
因此,即使使用Activator,您的插件提供程序也不会启动,直到其中一个类被加载(lazy-start true
)并明确调用(如果lazy start false
)