有时我想知道当前workspace中的某个插件工程,或者全部插件工程的信息。
所以我需要知道怎么去得到当前工作空间中的一个插件工程。
可以如下实现:
IPluginModelBase[] workspaceModels = PluginRegistry
.getWorkspaceModels();
IPluginModelBase model = null;;
for (IPluginModelBase base : workspaceModels) {
if (base.getBundleDescription().getSymbolicName().equals(
searchedId)) {
model = base;
break;
}
}
我们需要引用插件:org.eclipse.pde.core
得到某个bundle之后,就可以进一步处理了。例如要得到这个bundle对应的importedPackage或者requiredPlugins:
// record existed requied plug-in id and imported package name
BundleDescription bundleDescription = model.getBundleDescription();
ImportPackageSpecification[] importPackages = bundleDescription.getImportPackages();
for(ImportPackageSpecification ips:importPackages){
// TODO
}
BundleSpecification[] requiredBundles = bundleDescription.getRequiredBundles();
for(BundleSpecification bs:requiredBundles){
// TODO
}