OSGi - 修改包中的类而不修改原始包

时间:2014-05-21 19:01:57

标签: osgi equinox osgi-bundle

我需要修改OSGi包中的类。但是这个捆绑包来自上游项目,因此我不能(/不会)触摸它。但是我必须在其中修改一个类以符合我的项目要求。所以,我正在寻找解决方案。

所以,我创建了自己的包含修补类的包。但是自上游OSGi包以来存在复杂性,并且我创建的补丁OSGi包具有相同的包。我想覆盖上游OSGi包中的类,而不是触及它。

我查看了osgi.org Fragment页面。它提出了一种使用片段包修补主机包的方法,但为此我必须修改上游项目包MANIFEST.MF以设置Bundle-ClassPath: patch.jar,.

有什么建议吗?

1 个答案:

答案 0 :(得分:0)

您可以实现WeavingHook并捕获该捆绑包的类加载。

但是,只有在您没有其他机会解决问题时才能这样做。如果您有机会为包含jar的项目做出贡献,请为它们发送补丁并将其作为临时解决方案。对于像这样的黑客攻击,你的系统对其他人来说会很混乱。