1

是否有可能(如果是的话,安全)在它的生命周期中随时修改捆绑的清单(即大概只在安装和解决之间)。

我想问这个问题的另一种方式是,

在安装之后,但在解决之前,清单是否已经完全评估(即进一步的更改将被忽略),使其更改为时已晚?

如果以上所有内容看起来都很荒谬..那么我的下一个问题是,有没有人认为有可能(没有讨厌的框架黑客)包装清单分辨率(即从类加载器步骤中获取 META-INF/MANIFEST.MF bundle) 带有自定义 impl。

背景:考虑一个不基于 OSGi 的现有模块化框架,我想通过提供无需修改即可部署现有“插件”的基调并在运行时执行分析的能力来简化向 OSGi 的迁移(“插件”定义明确,因此映射不应该很难)将它们转换为真正的 OSGi 包,使用 BND 运行时操作生成一个清单,该清单将用于代替可能不存在或不存在的 osgi 包显现。

希望这是有道理的(@njbartlett!)

4

2 回答 2

4

为什么不定义一个改变清单的 URL 方案作为安装/更新过程的一部分?当框架通过您的 URLConnection 访问包时,您可以返回一个带有变异清单的变异包。这基本上是 web bundle 支持所做的,它也应该对你有用。

于 2011-09-11T18:06:03.247 回答
1

不,你不能这样做。在安装操作期间读取整个 JAR 文件(以及因此 MANIFEST.MF)。为了更改该 JAR 中的任何内容,您必须更新捆绑包或卸载并重新安装。

关于你真正想做的事情,为什么不能在将 JAR 作为 bundle 安装之前通过 bnd 进行分析和转换?

于 2011-09-11T17:18:42.550 回答