是否有可能使用eclipse PDE API读取可能读取插件的功能?目前我使用以下方式阅读插件:
Bundle[] bundles = Platform.getBundles(name, version);
if (bundles == null) {
throw new NullPointerException("No bundle found with ID: " + name
+ " and version: " + version);
} else {
for (Bundle bundle : bundles) {
System.out.println(bundle.getSymbolicName());
}
}
但是如果我指定已安装功能的名称,我就会得到null。还有其他方法可以读取功能吗?
当我阅读该功能时,我想迭代它引用的所有插件。
答案 0 :(得分:0)
您可以尝试使用p2 API查询已安装的功能。 P2是eclipse安装的经理。
// IProvisioningAgent is a OSGi service
IProvisioningAgent agent = ...;
IProfileRegistry profileRegistry = (IProfileRegistry) agent.getService(IProfileRegistry.SERVICE_NAME);
IProfile profile = profileRegistry.getProfile(IProfileRegistry.SELF);
IQueryResult rt = profile.query(QueryUtil.createIUPropertyQuery("org.eclipse.equinox.p2.eclipse.type", "feature"), null);