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 :

[RCP] Lancer seulement une instance d'une appli


Sujet :

Eclipse Platform

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 4
    Points : 3
    Points
    3
    Par défaut [RCP] Lancer seulement une instance d'une appli
    Salut,

    Je suis en train de développer une appli qui ne doit être lancer qu'une seule fois à la fois (hum, c'est vachement clair..), sinon, les fichiers sur lesquels elle bosse se trouve modifié par deux applis en meme temps et on perd des données.

    Bref, je cherche une solution pour interdire le lancement d'une deuxième application.

    Sachant que j'ai déjà trouvé 2 solutions qui ne me satisfont pas :
    - créer un fichier au lancement de l'application (et le supprimer à la fermeture), si le fichier est déjà créé, alors l'application est déjà lancée, donc on en lance pas une nouvelle. Cette solution pose un probleme en cas de gros plantage, le fichier ne sera pas effacé, et il deviendra donc impossible de relancer l'application.
    - utiliser les sockets, dans le même style que les fichiers (ouverture d'un socket à la place de la création d'un fichier). Cela pose un probleme en cas de firewall trop strict qui empeche l'ouverture de tout socket.

    Je me suis dit qu'il y avait peut etre une possibilité de le faire grâce au RCP d'Eclipse. Mais je n'ai pas réussi à trouver.

    Si quelqu'un connait la solution, il aura mon entiere gratitude.

    Merci d'avance.

  2. #2
    Candidat au Club
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 3
    Points : 4
    Points
    4
    Par défaut [RCP] Lancer seulement une instance d'une appli
    Regarde comment fait eclipse. Il utilise un mécanisme de ce type pour détecter le lancement d’une autre instance d’eclipse sur ton workspace.

    Tout se passe dans la classe org.eclipse.ui.internal.ide.application.IDEApplication.

    En gros, eclipse crée un fichier ".lock" dans les metadatas de ton workspace. Mais surtout, il verrouille le fichier (à l’aide de l’API java.io), ce qui fait qu’une autre instance de l’application ne sera pas capable de le créer. De cette manière eclipse détecte que le workspace est déjà utilisé et demande la sélection d’un autre workspace.

    En cas de gros plantage, le processus java étant mort, même si il existe encore, le fichier n’est plus verrouillé, on peut donc relancer l’application.

    Eclipse fournit une API pour le verrouillage se basant sur l’interface org.eclipse.osgi.service.datalocation.Location.

    Je me base sur eclipse 3.3 mais le mécanisme est similaire pour les anciennes versions.

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 4
    Points : 3
    Points
    3
    Par défaut
    Merci bcp.

    Je savais qu'Eclipse le faisait, mais je n'avais pas réussi à le reproduire. J'ai d'ailleurs cherché sur le net comment faire à la eclipse like, mais impossible de trouver. D'ailleurs, si tu (ou quelqu'un d'autre, je ne suis pas fermé ) connait un bon site d'aide sur les RCP, je suis preneur.

  4. #4
    Candidat au Club
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 3
    Points : 4
    Points
    4
    Par défaut [RCP] Lancer seulement une instance d'une appli
    Bonjour,

    en dehors du site officiel eclipse.org, l'un des principaux sites d'information et de support est www.eclipsezone.com. Les forums sont directement liés aux newsgroups officiels d'aide et tu communiques directement avec les développeurs des différents projets.

    Bonne soirée

  5. #5
    Candidat au Club
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 4
    Points : 3
    Points
    3
    Par défaut [RCP] Lancer seulement une instance d'une appli
    Merci encore.

    Je me le mets dans mes favoris.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Utiliser une méthode d'une instance, dans une callback
    Par qdaemon_fr dans le forum Langage
    Réponses: 3
    Dernier message: 18/04/2014, 18h09
  2. [ATL] Utiliser une instance d'une règle dans une autre règle
    Par sacha33 dans le forum Eclipse Modeling
    Réponses: 0
    Dernier message: 02/06/2013, 23h41
  3. Réponses: 4
    Dernier message: 15/10/2009, 13h33
  4. [XL-2007] Afficher une checkbox dans une feuille si une checkbox d'une autre feuille est cochée
    Par JessieCoutas dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 18/08/2009, 13h35
  5. Recherche une valeur d'une cellule dans une colonne d'une autre feuille
    Par kourria dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 21/06/2007, 13h48

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