eclipse中如何获得feature与plugin的list
2009-02-24 21:34
453 查看
eclipse中如何获得feature与plugin的list
做一些基于eclipse的开发,如RCP,经常需要查找当前platform中所有已经安装的feature和plug-in。其实,eclipse的“about eclipse platform”对话框就需要使用这个功能。通过阅读该对话框的代码,作者发现了以下方法。约定本文中Plugin与Bundle概念相同。
1.获得所有feature的list
首先,通过Platform,得到一个IBundleGroupProvider数组;
然后,通过IBundleGroupProvider,获得相应的IBundleGroup数组;
最后,通过IBundleGroup,得到Bundle数组。
代码如下:
for (int i=0;i<providers.length;i++){
IBundleGroupProvider provider = providers[i];
System.out.println("Provider name: "+ provider.getName());
IBundleGroup[] groups=provider.getBundleGroups();
for (int j=0;j<groups.length;j++){
IBundleGroup group = groups[j];
System.out.println(" Feature name: "+group.getName());
}
}
2. 获得plug-in的list
原本可以通过上例的IBundleGroup列出,每个BundleGroup下的Bundle。但是,考虑到有的Plugin不属于任何一个feature,所以上述方法得到的bundle list可能不完全。通过BundleContext的getBundles()方法,可以达到这个目的。但是,如果某些class没有继承Bundle,Plugin或者BundleActivator,就无法获得BundleContext参数。因此,需要采用另一种方式得到所有bundle list。不通过BundleContext获得bundle list的代码如下:
BundleDescription[] descriptions = Platform.getPlatformAdmin().getState().getBundles();
for (int i=0;i<descriptions.length;i++){
System.out.println("Bundle name:"+descriptions[i].getSymbolicName());
}
做一些基于eclipse的开发,如RCP,经常需要查找当前platform中所有已经安装的feature和plug-in。其实,eclipse的“about eclipse platform”对话框就需要使用这个功能。通过阅读该对话框的代码,作者发现了以下方法。约定本文中Plugin与Bundle概念相同。
1.获得所有feature的list
首先,通过Platform,得到一个IBundleGroupProvider数组;
然后,通过IBundleGroupProvider,获得相应的IBundleGroup数组;
最后,通过IBundleGroup,得到Bundle数组。
代码如下:
for (int i=0;i<providers.length;i++){
IBundleGroupProvider provider = providers[i];
System.out.println("Provider name: "+ provider.getName());
IBundleGroup[] groups=provider.getBundleGroups();
for (int j=0;j<groups.length;j++){
IBundleGroup group = groups[j];
System.out.println(" Feature name: "+group.getName());
}
}
2. 获得plug-in的list
原本可以通过上例的IBundleGroup列出,每个BundleGroup下的Bundle。但是,考虑到有的Plugin不属于任何一个feature,所以上述方法得到的bundle list可能不完全。通过BundleContext的getBundles()方法,可以达到这个目的。但是,如果某些class没有继承Bundle,Plugin或者BundleActivator,就无法获得BundleContext参数。因此,需要采用另一种方式得到所有bundle list。不通过BundleContext获得bundle list的代码如下:
BundleDescription[] descriptions = Platform.getPlatformAdmin().getState().getBundles();
for (int i=0;i<descriptions.length;i++){
System.out.println("Bundle name:"+descriptions[i].getSymbolicName());
}
相关文章推荐
- eclipse中如何获得feature与plugin的list
- eclipse plugin popupMenu 如何获得选中java文件的包名
- 如何删除Eclipse subclipse plugin中记住的SVN用户名密码
- Eclipse plugin list
- 如何获得eclipse的soure code的git地址
- 如何使用links配置eclipse的plugin
- 如何给Eclipse的Plugin增加快捷键
- 通过ResourcesPlugin.getWorkspace().getRoot()获得我的工作空间,eclipse找不到ResourcesPlugin的解决办法
- 如何使用代码获得一个function module的Where Used List
- eclipse install plugin Error Error retrieving "feature.xml"
- 如何使用代码获得一个function module的Where Used List
- eclipse 中plugin和feature的区别
- Eclipse下如何获得一个插件的安装目录 getBundle
- AE常用代码(标注要素、AE中画带箭头的线、如何获得投影坐标、参考坐标、投影方式、FeatureCount注意事项)
- sencha touch 如何获得list中选中项的元素(element)
- el表达式如何获得list长度??
- freemarker 如何获得list的索引值
- 如何自己编译生成hadoop的eclipse插件,如hadoop-eclipse-plugin-2.6.0.jar
- DWR如何获得返回对象 list Map Set list.add(JavaBean)
- 如何在点击sencha-touch-list中通过点击item获得所在的绑定字段