Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

  1. #1
    Modérateur

    Plug-in installable par update site - erreur à l'installation - problème de configuration plug-ins packagés
    Bonjour,

    J'ai fait un plug-in (d'intégration), pour Eclipse for JEE Developpers, écrit initialement avec Mars.2, et pour ses déploiement et mise à jour, j'utilise un "update site". Ce matin un nouveau dévelopeur me signale une erreur à l'installation avec ce message :
    An error occurred while collecting items to be installed
    session context was:(profile=epp.package.jee, phase=org.eclipse.equinox.internal.p2.engine.phases.Collect, operand=, action=).
    No repository found containing: osgi.bundle,org.apache.commons.io,2.4.0
    En cherchant un peu sur le net, je comprends (ou croit comprendre) que le problème vient des plug-ins Eclipse sur lesquels j'ai des dépendances qui ne sont pas à jour dans la version packagée fraichement téléchargée de Mars.2. J'ai indiqué au développeur qu'il fallait qu'il lance un "check for updates" avant d'installer mon plug-in, et l'installation c'est bien passée après cette procédure, ce qui a priori confirme mon interprétation du problème. Les différentes forums que j'ai trouvés parlant du sujet parlent d'un mauvais paramétrage des "update sites" des plug-ins. Déjà, ça me semble bizarre d'avoir à paramétrer dans ma configuration d'update-site à moi les urls des updates sites des plug-ins standard d'un Eclipse packagé sur lesquelles j'ai des dépendances, mais soit, admettons. Seulement, je ne trouve nulle part de documentation qui me dise comment faire.

    J'imagine que le souci est dû au fait que j'ai développé avec une version déjà mise à jour et, donc, quand j'ai importé la dépendance, la version mise à jour a été marquée comme version minimum. Il est possible que je puisse modifier la version minimale pour revenir à la version incluse dans le package, mais je trouve ça un peu fastidieux.

    Par ailleurs, les développeurs préfèrent rester pour le moment en Mars.2 en attendant que la recette Neon.2 soit validée. Je n'ai pas vu de mention de version dans les forums parlant de cette erreur, et, donc, je n'arrive pas à savoir si ce problème a été réglé depuis Mars.2 (ça me semblerait logique de ne pas avoir à s'occuper des configurations de mise à jour de plug-ins que Eclipse sait très bien mettre à jour de lui-même tout seul comme un grand).
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  2. #2
    Membre émérite
    Tes diagnostics semblent bons.
    Dans Mars.2, la version de org.apache.common.io installlee par default est la 2.2; or ta feature semble dependre (transitivement peut-etre) de la version 2.4, qui n'est pas visible pour les utilisateurs d'Eclipse Mars.2.
    Tu as 3 solutions, par ordre de preference:
    1. Changer la dependance dans ton code de la version 2.4 a la version [2.2.0,3.0.0). Comme 2.4 est compatible avec 2.2, ton plugin s'installera dans Mars en utilisant 2.2 et dans Neon en utilisant 2.4.
    2. Inclure dans ton update site la version qui va bien d'org.apache.commons.io (2.4.0), comme ca, quel que soit l'Eclipse "hote" qui installe, il est sur de trouver la dependance directement sur le repo.
    3. Mettre un lien de ton repo p2 vers le repo Orbit de Neon, qui include une version assez recente de commons-io


    Il est possible que je puisse modifier la version minimale pour revenir à la version incluse dans le package, mais je trouve ça un peu fastidieux.
    C'est a mon avis la meilleure solution.
    Pour du HTML, CSS, JavaScript, TypeScript, JSon, Yaml, Node... dans Eclipse IDE, installe Eclipse Wild Web Developer
    Pour du Rust dans Eclipse IDE, installe Eclipse Corrosion
    Follow me on twitter

  3. #3
    Modérateur

    Salut Mickael,

    Merci de me répondre.

    [QUOTE=Mickael_Istria;9038005]
    1 - Changer la dependance dans ton code de la version 2.4 a la version [2.2.0,3.0.0). Comme 2.4 est compatible avec 2.2, ton plugin s'installera dans Mars en utilisant 2.2 et dans Neon en utilisant 2.4. [/QUOTE]
    Je voulais trouver une solution "générale". Je ne sais pas si j'utilise quelque chose de particulier de la 2.4. Je suppose que j'ai ajouté cette dépendance alors que j'avais déjà mis à jour mon Mars.2, sans pour autant savoir si j'ai besoin de la 2.4 ou si la 2.2 est suffidante. Si j'impose la dépendance sur la 2.2 et qu'un "client" installe le plug-in sur un Mars.2 standard sans faire d'update, il risque d'avoir des plantages (bien sûr je pourrais toujours conseiller de faire de toute manière un "Check updates".

    Citation Envoyé par Mickael_Istria Voir le message

    2- Inclure dans ton update site la version qui va bien d'org.apache.commons.io (2.4.0), comme ca, quel que soit l'Eclipse "hote" qui installe, il est sur de trouver la dependance directement sur le repo.
    Je voudrais éviter au maximum d'ajouter des éléménts qui ne soient pas directement de ma production. Déjà, ça m'obligerait à gérer éventuellement les upgrades (je suppose que je pourrais peut-être éventuellement gérer ça automatiquement, genre via maven, mais ça me gène quand même).


    Citation Envoyé par Mickael_Istria Voir le message

    3 - Mettre un lien de ton repo p2 vers le repo Orbit de Neon, qui include une version assez recente de commons-io
    De toute manière, au final, je vais migrer vers Neon, le problème devrait donc ne plus se poser pour le cas de commons-io. Mais je cherchais une solution dans ce genre-là, ou mieux, genre une simple option à activer qui fasse que mon plug-in, voire l'update de mon plug-in, impose en prérequise un "check update" de Eclipse pour les plug-ins non présents (en réalité, je m'attendrais à ce que ça le fasse tout seul : genre Eclipse se rend compte que le plug-in demande une dépendance sur un plug-in qui est obsolète localement, Eclipse interroge pour ce plug-in son update-site pour voir si la bonne version est présente sur le repo et fait l'update le cas-échéant.
    Cela dit, comment fait-on pour inclure ce type de lien ?

    Au final, la solution la plus simple qui fonctionne à tous les coups est d'inclure dans la documentation d'installation la mention "Faire un "Check updates"" avant l'installation du plug-in
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  4. #4
    Membre émérite
    Ce message n'a pas pu être affiché car il comporte des erreurs.
    Pour du HTML, CSS, JavaScript, TypeScript, JSon, Yaml, Node... dans Eclipse IDE, installe Eclipse Wild Web Developer
    Pour du Rust dans Eclipse IDE, installe Eclipse Corrosion
    Follow me on twitter

  5. #5
    Membre émérite
    Cela dit, comment fait-on pour inclure ce type de lien ?
    https://bugs.eclipse.org/bugs/show_b...i?id=453708#c9

    Au final, la solution la plus simple qui fonctionne à tous les coups est d'inclure dans la documentation d'installation la mention "Faire un "Check updates"" avant l'installation du plug-in
    Bah justement, ca marchera pas forcement a tous les coups. "Check for updates" ne cherche des updates que dans les update-sites qui sont deja enregistres dans l'IDE. Donc si aucun de repos p2 "actifs" ne contient la bonne version, alors "Check for updates" ne fera pas d'update de ce bundle.
    Pour du HTML, CSS, JavaScript, TypeScript, JSon, Yaml, Node... dans Eclipse IDE, installe Eclipse Wild Web Developer
    Pour du Rust dans Eclipse IDE, installe Eclipse Corrosion
    Follow me on twitter