J'essaye d'utiliser l'éclipse P2 pour activer un outil de mien pour la mise à jour automatique sur le démarrage d'éclipse. Ce faisant, je veux utiliser un UpdateOperation qui ne convient qu'à "my" avec l'identifiant "my.feature.id". Chaque fois que cette requête est émise dans une installation Eclipse, elle a un résultat vide et donc rien à mettre à jour. Donc, comment utiliser le droit QueryUtil pour obtenir une collection contenant uniquement ma fonctionnalité pour la mise à jour en tant qu'entrée pour une UpdateOperation?Eclipse P2 IUQuery a toujours un résultat vide
La méthode suivante est appelée lorsque l'on veut commencer la mise à jour Eclipse démarrage:
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);
}
}