Eclipse P2 IUQuery始终为空结果

马库斯

我尝试使用Eclipse P2来启用我的工具,以便在Eclipse启动时自动进行自我更新。这样做时,我想使用UpdateOperation,该更新仅适用于ID为“ my.feature.id”的“ my”功能。每当在eclipse安装中发出此查询时,它的结果都是空的,因此没有要更新的内容。

因此:如何使用QueryUtil权限获取仅包含要更新的功能的集合作为UpdateOperation的输入?

要在Eclipse启动时启动更新,将调用以下方法:

public class P2Util {
    public static IStatus checkForUpdates(IProvisioningAgent agent, IProgressMonitor monitor) {
        ProvisioningSession session = new ProvisioningSession(agent);
        IQuery<IInstallableUnit> query = QueryUtil.createLatestQuery(QueryUtil.createIUQuery("my.feature.id"));
        UpdateCheckActivator.info("Update Query Expression: " + query.getExpression());
        IProfileRegistry registry= (IProfileRegistry)agent.getService(IProfileRegistry.SERVICE_NAME);
        IProfile profile= registry.getProfile(IProfileRegistry.SELF);
        IQueryResult<IInstallableUnit> result = profile.query(query, monitor);
        Set<IInstallableUnit> unitsForUpdate = result.toUnmodifiableSet();
         UpdateOperation operation = new UpdateOperation(session, unitsForUpdate);
    }
}
马库斯

该解决方案非常简单,但一开始令人困惑。试图查找带有“ my.feature.id”的特征的查询正在查询错误的ID。

我的功能feature.xml中,它是“ my.feature.id”,但是出于显而易见的原因,可安装单元获得了后缀“ feature.group”。如果将其添加到查询中的ID,您将获得正确的结果,更新操作将按预期成功。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章