快速业务通道

为基于Eclipse3.4的RCP应用创建补丁程序 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-15
应用创建补丁程序(4) 时间:2011-08-09 IBM 韩猛

更新 Feature Patch 的版本号,选择所包含的插件,保存所有修改。

图 3. Feature Patch 的 feature.xml 编辑窗口

在创建完 Feature patch 工程后,可以将根据要应用补丁的 Feature 的版本号来更新 Feature Patch 的版本号,然后在图 3 中的 Plug-ins 标签页中添加要更新的插件。默认情况下,插件的版本号是 0.0.0,你可以通过选中 “Versions“对话框中的第二项,来显示具体的版本号。

步骤 4:导出 Feature Patch

右击 Feature Patch 工程,选择“Export->Plug-in Development- >Deployable feature”,输入要保存的位置,如果 Feature patch、feature 或插件中含有 .qualifier 字段,可以通过切换到 Option 标签页,勾选“Qualifier replacement“进行替 换,如下图所示,注意替换字符串对应的 ASCII 码值应比原有插件版本的 qualifier 部分大。点击 “Finish”,Feature Patch 就被保存在本地磁盘上了。

图 4. 导出 Feature Patch 工程对话框

为基于Eclipse3.4的RCP应用创建补丁程序(5)

时间:2011-08-09 IBM 韩猛

对于基于 Eclipse v3.4.0 的产品来说,还需要为 Patch 产生 P2 元数据。而对于 Eclipse v3.4.1 及以后的版本,由于 P2 的变化,则不需要此步。打开命令提示符,切换到 Eclipse v3.4.0 安装目录,运行下面命令即可得 到 P2 元数据。

清单 1. 产生 P2 元数据的命令

 eclipsec.exe -application  org.eclipse.equinox.p2.metadata.generator.EclipseGenerator   -metadataRepositoryName  [PATCH NAME] -metadataRepository file:[PATCH LOCATION]  -artifactRepository  file:[PATCH LOCATION] -source [PATCH LOCATION]  -flavor tooling -append - noDefaultIUs -inplace -nosplash

部署与验证

将生成的 features/plugins 目 录拷贝到产品环境 Eclipse 所在的目录,重新启动应用程序,即完成了 Feature patch 的一次部署。但 对于累积式补丁,考虑到用户可能已经安装过旧版本补丁程序,部署流程应能检测到旧版本的补丁程序并 移除。借助于 Eclipse Link 机制,将补丁程序安装在 link 文件指向的目录,能够比较安全的实现新版 本补丁程序的安装。在具体实施中,可以通过脚本实现文件的拷贝操作,并调用 Eclipse 运行时参数清 空 Eclipse 缓存,来确保 Eclipse 加载补丁程序中高版本的插件。

补丁是否被正确的安装可以 通过下面三种方法来检验:

通过“Help” -> “About Product Name” ->“Plug-in Details”查看插件的版本号

通过“Help” -> “Software update”查看 Patch 的版本信息

验证为插件新增加的功能是否存 在。

新版本插件未生效问题诊断

通过上面的步骤,我们已经能够正确的创建 Feature Patch 并且部署到产品环境。但是当用户使用产品时,产品功能及 Pug-in details 时 plug-in 版本并 没有更新,那么常见的原因为:

插件依赖性未满足

插件被多个 feature 包含

本文 提供了一种定位原因的思路,首先我们需要了解 Eclipse 启动机制:Eclipse v3.4 基于 Equinox 框架 构建,Equinox 完全按照 OSGI r4 规范编写,同时增加了一些自己的扩展,那么在 Eclipse 启动的过程 中,主要完成了以下动作,

处理命令行参数

启动 OSGI 框架,安装 bundle

对已经 安装的 bundle,检查其依赖是否满足,若满足则置为 resolved

对已经 resolved 的 bundle,调 用其 activator 的 start 方法,将 bundle 的状态置为 active 或 lazy-starting

可以通过 – console 参数启动 OSGI console 来查看

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号