`
cary
  • 浏览: 84283 次
  • 性别: Icon_minigender_1
  • 来自: 合肥
社区版块
存档分类
最新评论

如何实现RCP与其插件的关系

    博客分类:
  • J2EE
阅读更多

ECLIPSE RCP开发工作中,完成产品与插件的安装模式、共享JAR,以及插件调用产品的包。需要解决一系列问题:

1:解决PRODUCT与插件依赖集

2: PRODUCT如何向PLUGIN开放自己或公共JAR的包

3: PLUGIN如何引入PRODUCT的包

<o:p> </o:p>

下面给出解决方案:

1, 解决PRODUCT与插件依赖集

     现在还没有有效的办法解决,现在只能利用开发中的经验来添加依赖的插件。添加依赖插件都是在产品中添加,所以,对其他人在开发各个模块(在ECLIPSE中称为插件)时没什么影响,因为,我们已做好了相对依赖集齐全的产品

依赖集添加,我们使用功能部件中的feature.xml中添加依赖插件,对应配置文件编辑器的plug-in菜单项。设置参照图(1)示:

<v:shapetype id="_x0000_t75" stroked="f" filled="f" path="m@4@5l@4@11@9@11@9@5xe" o:preferrelative="t" o:spt="75" coordsize="21600,21600"><v:stroke joinstyle="miter"></v:stroke><v:formulas><v:f eqn="if lineDrawn pixelLineWidth 0"></v:f><v:f eqn="sum @0 1 0"></v:f><v:f eqn="sum 0 0 @1"></v:f><v:f eqn="prod @2 1 2"></v:f><v:f eqn="prod @3 21600 pixelWidth"></v:f><v:f eqn="prod @3 21600 pixelHeight"></v:f><v:f eqn="sum @0 0 1"></v:f><v:f eqn="prod @6 1 2"></v:f><v:f eqn="prod @7 21600 pixelWidth"></v:f><v:f eqn="sum @8 21600 0"></v:f><v:f eqn="prod @7 21600 pixelHeight"></v:f><v:f eqn="sum @10 21600 0"></v:f></v:formulas><v:path o:connecttype="rect" gradientshapeok="t" o:extrusionok="f"></v:path><o:lock aspectratio="t" v:ext="edit"></o:lock></v:shapetype><v:shapetype id="_x0000_t75" stroked="f" filled="f" path="m@4@5l@4@11@9@11@9@5xe" o:preferrelative="t" o:spt="75" coordsize="21600,21600"> <v:stroke joinstyle="miter"></v:stroke><v:formulas><v:f eqn="if lineDrawn pixelLineWidth 0"></v:f><v:f eqn="sum @0 1 0"></v:f><v:f eqn="sum 0 0 @1"></v:f><v:f eqn="prod @2 1 2"></v:f><v:f eqn="prod @3 21600 pixelWidth"></v:f><v:f eqn="prod @3 21600 pixelHeight"></v:f><v:f eqn="sum @0 0 1"></v:f><v:f eqn="prod @6 1 2"></v:f><v:f eqn="prod @7 21600 pixelWidth"></v:f><v:f eqn="sum @8 21600 0"></v:f><v:f eqn="prod @7 21600 pixelHeight"></v:f><v:f eqn="sum @10 21600 0"></v:f></v:formulas><v:path o:connecttype="rect" gradientshapeok="t" o:extrusionok="f"></v:path><o:lock aspectratio="t" v:ext="edit"></o:lock></v:shapetype>

   图(1

功能部件,其作用大家可以参看IBM的相关文章http://www-128.ibm.com/developerworks/cn/linux/opensource/os-ecfeat/

<o:p> </o:p>

2PRODUCT如何向PLUGIN开放自己或公共JAR的包

3.1 之前版本的 Eclipse 中,在每个插件的 plugin.xml 文件中定义插件依赖关系以及扩展和扩展点。在使用 OSGi 的新版本 Eclipse 中,依赖关系信息被分解到 manifest.mf 文件中。在产品的主程序中,需要做一些设置,如下:

A)打开META-INF /manifest.mf。进入下面界面,选择runtime菜单。可以看到runtime exported packages,对应到Export-Package属性,manifest.mf文件的属性作用请参照IBM译文http://www-128.ibm.com/developerworks/cn/opensource/os-ecl-osgi/index.htmlExport-Package 该属性指定要公共暴露给其他插件的所有包。设置可参照下图(2):

    图(2

<o:p> </o:p>

3PLUGIN如何引入PRODUCT的包

    调用product的包,首先,需要增加增加依赖的插件,因为插件是在产品的基础上来加载的,所以需要将产品设为其运行依赖。设置方法如图(3):

   

               图(3

<o:p> </o:p>

wokespace中需要import产品工程。这样才能在PLUGIN中引入产品的包。这里需要注意的是引入包路径为;

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics