IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
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

Eclipse Platform Discussion :

[Update Site] Problèmes de configuration


Sujet :

Eclipse Platform

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    96
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 96
    Points : 63
    Points
    63
    Par défaut [Update Site] Problèmes de configuration
    Bonjour,

    nous avons développé une application RCP (basée sur Eclipse Indigo SR2) contenant un certain nombre de features:
    - MyFeatureProduct (qui contient les features dépendantes suivante)
    - Feature1
    - Feature2
    - Feature3

    J'ai configuré l'application pour la rendre "updatable" en suivant le tutoriel suivant : http://www.ralfebert.de/archive/ecli...s_tutorial_36/

    Voici les différentes questions et les différents problèmes que je rencontre.

    J'ai créé et buildé un site contenant toutes les features pouvant être mises à jour dans l'application. J'y ai ajouté la feature de mon product MyFeatureProduct.

    - Action d'installation (getProvisioningUI().openInstallWizard): mon action ouvre le wizard d'install, je configure l'adresse de l'update site et toutes les features apparaissent. Je masque les features déjà installées avec la checkbox prévue à cet effet, et il ne reste plus que Feature1en version 1.0.1 (version incrémentée pour mon test) qui est sélectionnable.
    Lorsque je clique sur le bouton next, j'ai le message d'erreur suivant qui apparait:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
     
        Your original request has been modified.
           "Feature1" is already installed, so an update will be performed instead.
        Cannot complete the install because of a conflicting dependency.
          Software being installed: Feature1 1.0.1 (my.feature1.feature.feature.group 1.0.1)
          Software currently installed: MyFeatureProduct 1.0.0 (my.myfeatureproduct 1.0.0)
          Only one of the following can be installed at once: 
            Feature1 1.0.0 (my.feature1.feature.feature.jar 1.0.0)
            Feature1 1.0.1 (my.feature1.feature.feature.jar 1.0.1)
          Cannot satisfy dependency:
            From: MyFeatureProduct 1.0.0 (my.myfeatureproduct 1.0.0)
            To: my.feature1.feature.feature.group [1.0.0]
          Cannot satisfy dependency:
            From: Feature1 1.0.0 (my.feature1.feature.feature.group 1.0.0)
            To: my.feature1.feature.feature.jar [1.0.0]
          Cannot satisfy dependency:
            From: Feature1 1.0.1 (my.feature1.feature.feature.group 1.0.1)
            To: my.feature1.feature.feature.jar [1.0.1]
    Je pensais que c'était parceque la version de MyFeatureProduct version était tuojours 1.0.0 donc j'ai ajouté la version 1.0.1 au fichier site.xml que j'ai buildée, mais quand j'essaye de mettre à jour MyFeatureProduct et Feature1 de la version 1.0.0 à la version 1.0.1 j'ai la même erreur (mais sur MyFeatureProduct ).
    Je suis persuadé d'avoir oublié ou mal compris un détail important mais je n'arrive pas à mettre le doigt dessus.

    - Action de mise à jour (getProvisioningUI().openUpdateWizard(false, operation, job)): j'ai ajouté un fichier p2.inf à côté de mon .product, je l'ai ajouté à mon build.properties:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
        instructions.configure=\
          org.eclipse.equinox.p2.touchpoint.eclipse.addRepository(type:0,location:file${#58}/C:/path_to_my_update_site/);\
          org.eclipse.equinox.p2.touchpoint.eclipse.addRepository(type:1,location:file${#58}/C:/path_to_my_update_site/);
    Lorsque j'essaye de mettre à jour, j'ai le message => No update has been found.
    J'ai ajouté le code suivant à la méthode ApplicationWokbenchAdvisor::postStartup:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
     
        public static String configureRepositoryManager(final String repo) {
                final ProvisioningSession session = ProvisioningUI.getDefaultUI().getSession();
                final RepositoryTracker repoMan = ProvisioningUI.getDefaultUI().getRepositoryTracker();
                if (repo == null || repo.isEmpty()) {
                    if (repoMan != null) {
                        repoMan.removeRepositories(repoMan.getKnownRepositories(session), session);
                        repoMan.clearRepositoriesNotFound();
                    }
                    return null;
                }
                URI uri = repoMan.locationFromString(repo);
                if (uri == null) {
                    return getI18N().getString("error.malformed.uri.repository");
                } else {
                    if (uri.getScheme() == null || !uri.getScheme().equals("http")) {
                        try {
                            uri = repoMan.locationFromString("file://" + repo);
                            uri.toURL();
                        } catch (MalformedURLException e) {
                            try {
                                uri = repoMan.locationFromString("http://" + repo);
                                uri.toURL();
                            } catch (MalformedURLException e1) {
                                // Error
                                return getI18N().getString("error.malformed.uri.repository");
                            }
                        } 
                    }
                }
                repoMan.removeRepositories(repoMan.getKnownRepositories(session), session);
                repoMan.clearRepositoriesNotFound();
                repoMan.addRepository(uri, "My application repository", ProvisioningUI.getDefaultUI().getSession());
                return null;
            }
    => No update has been found.

    Je bloque depuis longtemps sur ces problèmes, donc n'importe quelle piste sera la bienvenue.

    Merci d'avance

    PS: Concernant la partie "install", ce qui est étrange, c'est que lorsque je lance l'application à partir d'un Run Eclipse, il détecte bien les features de l'update site mais ne les considère pas comme installées (la case à cocher ne masque aucune feature), et si je clique sur next, l'install se déroule sans problème...

  2. #2
    Membre émérite
    Avatar de Mickael_Istria
    Homme Profil pro
    Développeur Expert Eclipse IDE/RCP, pour Red Hat
    Inscrit en
    Juillet 2008
    Messages
    1 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Expert Eclipse IDE/RCP, pour Red Hat
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 468
    Points : 2 996
    Points
    2 996
    Par défaut
    Citation Envoyé par sanchou Voir le message
    Je pensais que c'était parceque la version de MyFeatureProduct version était tuojours 1.0.0 donc j'ai ajouté la version 1.0.1 au fichier site.xml que j'ai buildée, mais quand j'essaye de mettre à jour MyFeatureProduct et Feature1 de la version 1.0.0 à la version 1.0.1 j'ai la même erreur (mais sur MyFeatureProduct ).
    Du coup ce n'est pas la même erreur. Il te sera impossible d'updater Feature1 1.0.0 si il y a d'autres features ou IU (MyFeatureProduct) qui dépendent de cette version précise.
    On a généralement des références à des versions précises quand on utilise "include" sur les features au lieu de <requires><import feature="..."/></requires>. En gros, l'inclusion de feature les force à devoir être mise a jour en même temps à chaque fois, ce qui n'est pas super pratique en fait. Il est probable que passer d'un include à un requires résolve ton cas d'utilisation.
    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
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    96
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 96
    Points : 63
    Points
    63
    Par défaut
    Citation Envoyé par Mickael_Istria Voir le message
    Du coup ce n'est pas la même erreur. Il te sera impossible d'updater Feature1 1.0.0 si il y a d'autres features ou IU (MyFeatureProduct) qui dépendent de cette version précise.
    On a généralement des références à des versions précises quand on utilise "include" sur les features au lieu de <requires><import feature="..."/></requires>. En gros, l'inclusion de feature les force à devoir être mise a jour en même temps à chaque fois, ce qui n'est pas super pratique en fait. Il est probable que passer d'un include à un requires résolve ton cas d'utilisation.
    Bonjour,

    la feature de mon product contient les includes suivants:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <includes id="org.eclipse.rcp" version="0.0.0"/>
     
    <includes id="org.eclipse.equinox.p2.user.ui" version="0.0.0"/>
    Les dépendances vers les features composant mon product sont bien définies comme suit:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <requires>
          <import feature="my.feature1.feature" version="1.0.1" />
          .....
    </requires>
    Actuellement, lorsque je build mon site.xml, je laisse les références aux anciennes versions des features et je fais un build incrémental (uniquement les features avec une nouvelle version). Cela ne pourrait pas poser un problème?

    Cordialement

Discussions similaires

  1. Problème pour configurer un nouveau site PHP
    Par Softdaemon dans le forum Dreamweaver
    Réponses: 2
    Dernier message: 21/01/2009, 10h26
  2. [Info] Insert/Update si problèmes divers
    Par portu dans le forum Bases de données
    Réponses: 4
    Dernier message: 15/07/2004, 11h17
  3. [EJB] Problème avec configuration jonas
    Par SteelBox dans le forum JBuilder
    Réponses: 30
    Dernier message: 11/03/2004, 22h30
  4. Réponses: 2
    Dernier message: 08/03/2004, 16h10
  5. Problème de configuration
    Par lsdInside dans le forum PostgreSQL
    Réponses: 4
    Dernier message: 09/10/2003, 13h34

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo