是否有可能(如果可以,那么安全)在其生命周期中的任何时候修改 bundle 的 MANIFEST(即可能仅在 INSTALLED 和 RESOLVED 之间)。
我猜另一种提问方式是,
INSTALLED 之后,RESOLVED 之前,MANIFEST 是否已经完全评估(即,进一步的更改将被忽略)以致于更改为时已晚?
如果以上所有内容看起来都很荒谬.. 那么我的下一个问题是,有没有人认为有可能(没有令人讨厌的框架黑客)包装 MANIFEST 决议(即类加载器步骤以获取 META-INF/MANIFEST.来自 bundle 的 MF)和自定义实现。
背景:考虑一个不基于 OSGi 的现有模块化框架,我想通过提供部署现有“插件”基调的能力来简化向 OSGi 的迁移无需修改,并在运行时执行分析(“插件”定义明确,因此映射不应该很难),将它们转换为真正的 OSGi 包,使用 BND 运行时操作生成一个 MANIFEST 来代替可能不存在或非 osgi-bundle MANIFEST。
希望这是有道理的(@njbartlett!)
最佳答案
为什么不定义一个 URL 方案来改变 list 作为安装/更新过程的一部分?当框架通过您的 URLConnection 访问包时,您可以返回一个带有变异 list 的变异包。这基本上就是网络捆绑支持所做的,它应该也适合您。
关于java - 在运行时修改 Bundle Manifest,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7379840/