我正在构建一个 Eclipse 功能,该功能的要求相当于...如果用户的许可证被吊销,该功能必须能够自动卸载。
如果您想了解更多相关背景信息,这是我就该主题提出的另一个问题。
感谢该问题的答案,我一直在尝试学习 Eclipse p2 director api。我在这里找到了一些看起来很有用的类
我一直试图在我的代码中实例化这些类之一,但还没有运气。我一直在阅读帮助文档,但我有点迷失了。
我被卡住了,因为我需要为 OperationFactory 提供一组 IInstallableUnit 对象。
private void scheduleUninstallOperationJob(
Collection<? extends IVersionedId> toUninstall)
{
OperationFactory oFactory = new OperationFactory();
Collection<URI> repos = null;
UninstallOperation op = null;
try {
op = oFactory.createUninstallOperation(toUninstall, repos, null);
} catch (ProvisionException e) {
e.printStackTrace();
}
IStatus result = op.resolveModal(null);
if (result.isOK()) {
op.getProvisioningJob(null).schedule();
}
}
我看不到任何方法可以轻松地要求 Eclipse 的运行实例给我当前安装的 InstallableUnits 的集合,以便我可以轻松地将要卸载的那个传递给OperationFactory.createUninstallOperation()方法。
我尝试使用 Eclipse 源代码作为示例,但我发现的代码是 org.eclipse.equinox.p2.ui.ProvisioningUI,它与手动卸载 InstallableUnits 时使用的 UI 紧密耦合。这段代码还使用了可怕的 Eclipse内部包中的代码,如果可能的话,我想避免使用这些代码。
谢谢你的考虑,追踪