修补一个类的插件?

Fre*_*rik 6 eclipse eclipse-plugin

这是我的情况:我们的Eclipse环境中有第三方功能.该功能包含几个插件.该插件包含一堆类.其中一个类包含一个bug.

我们已经能够找到bug的解决方案,因此我们有一个带有bug的类的工作版本.

不幸的是,这个插件被55页长的EULA(由IBM)覆盖,所以我认为可以非常安全地假设反编译jar,交换类文件,重新编译和分发是合法的.我不是法律专家,但我猜我们不能以任何方式篡改jar文件.

所以这意味着我有一个单一的类文件,我想加载而不是插件中的类,这是否可能?

页面建议使用片段,但这需要修改插件中的清单.

这个问题有相同的问题,因为我,但在这种情况下,就可以获得源代码,他是能够建立一个插件.

这篇博文显示了如何使用功能补丁,但它们要求我能够构建自己的插件,因为我只有一个类,所以我不能这样做.

And*_*erg 7

我不会尝试使用片段.根据我的经验,最干净的事情是使用功能补丁.我已成功使用功能补丁来完成你想要做的事情.这并不简单,但它很强大.您需要执行以下操作.

  1. 创建一个封装单个类文件的插件
  2. 创建一个功能补丁,其中包含您的新插件,并修补您要定位的功能.
  3. 导出功能补丁并创建p2元数据(以创建更新站点).
  4. 使用安装管理器安装到Eclipse中
  5. 麾!

  6. (可选)默认情况下,功能修补程序仅针对目标功能的单个版本.因此,如果目标功能突破其版本号,则将无声地应用功能补丁.但是,可以放宽功能补丁的版本限制.此过程在此处详细介绍:http://aniefer.blogspot.com/2009/06/patching-features-part-2.html

更多信息:

http://aniefer.blogspot.com/2009/06/patching-features-with-p2.html http://aniefer.blogspot.com/2009/06/patching-features-part-2.html

使用功能补丁而不是片段的好处是,任何人都可以安装补丁并使补丁工作,但是对于片段而言,事情更加困难,因为最终用户必须清除清单.