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 Modeling Discussion :

[Persistance] Spécialiser la persistance (stockage physique) d'un modèle


Sujet :

Eclipse Modeling

  1. #1
    Membre habitué Avatar de NeraOne
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2007
    Messages
    218
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2007
    Messages : 218
    Points : 128
    Points
    128
    Par défaut [Persistance] Spécialiser la persistance (stockage physique) d'un modèle
    Bonjour à tous,

    J'ai créé un MetaModel dans un projet EMF, à partir duquel j'ai généré le code et l'éditeur pour ce modèle. EMF fait tout ça très bien.

    Si j'utilise cet éditeur pour créer un nouveau modèle, le stockage physique des informations de celui-ci (ce que j'apelle persistance), se fait par défaut en XMI. En gros, le fichier géré par l'éditeur est un fichier XMI.
    Moi je voudrais pouvoir le faire dans un autre format (fichier Excel dans mon cas mais peu importe).

    J'ai créé un plugin Eclipse qui ouvre cet éditeur et donc cela me permet de gérer moi-même mon objet Resource (en charge de la persistance).
    Voici le code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    //Définition de ma ressource
    ResourceSet resourceSet = new ResourceSetImpl();
    Resource resource = resourceSet.createResource(fileURI);
    //Ouverture de mon éditeur (en réalité dans le try/catch qui va bien)
    page.openEditor (
               new FileEditorInput(modelFile),
               workbench.getEditorRegistry().getDefaultEditor(
                          modelFile.getFullPath().toString()
                  ).getId()
       );
    Je précise (après avoir étudié le code) que la méthode createResource() renvoie un objet de type ResourceImpl qui implémente l'interface Resource, d'où le fait qu'il soit vu que comme une Resource.
    C'est cet objet ResourceImpl qui va ensuite sauvegarder et lire au format XMI.

    Afin de commencer doucement, je souhaite comprendre et utiliser une autre implémentation de Resource faite par EMF qui est BinaryResourceImpl. Celle-ci fonctionne différement puisque selon le livre EMF Second Edition, ça se déclare comme cela :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Resource resource = new BinaryResourceImpl(fileURI);
    En gros on ne passe pas par un objet ResourceSet mais on crée directement notre Resource.

    J'ai fait cela, mais mon éditeur refuse de s'ouvrir et renvoie une MalformedByteSequenceException.

    Au niveau du principe, il me semble qu'on peut à la fois conserver la vue arborescente offerte par l'éditeur généré par EMF (que j’appellerai Vue Logique) et avoir une persistance autre que XMI (que j’appellerai Vue Physique).
    Me trompe-je ?

    Merci à ceux qui connaissent EMF, qui m'auraient compris et qui pourront éventuellement m'aider... !

    Antoine
    "Je ne suis pas d'accord avec ce que vous dites, mais je me battrai jusqu'à la mort pour que vous ayez le droit de le dire." Voltaire

  2. #2
    Nouveau Candidat au Club
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2011
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2011
    Messages : 1
    Points : 1
    Points
    1
    Par défaut
    Salut,

    Bon j'ai pas de réponse exacte pour ta question, cela fait longtemps que tu as posté , je me demande , car je me suis trouvé dans la même situation.
    Etant donné que j'ai un métamodèle, j'ai généré les trucs avec EMF, maintenant je veux que ce métamodèle soit étendu depuis l'application, sans toucher le code, donc j'ai pensé à faire la chose en base de donnée, et je me demande sur la façon de persister mon métamodèle.

    Une idée??

  3. #3
    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 469
    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 469
    Points : 2 997
    Points
    2 997
    Par défaut
    Je pense que tu peux jeter un oeil a CDO, c'est justement ca leur spécialité: persister des object EMF dans une base de donnée plutot que dans des fichiers. A vu de nez, je dirai qu'il s'agit de créer un nouvelle implémentation de ERsource...
    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

Discussions similaires

  1. Type de colonne Table et stockage physique
    Par wahnfried dans le forum SQL
    Réponses: 3
    Dernier message: 18/09/2012, 08h57
  2. Réponses: 1
    Dernier message: 16/05/2012, 12h55
  3. Lieu de stockage physique des fichiers VARBINARY(MAX)
    Par robv dans le forum Développement
    Réponses: 1
    Dernier message: 24/02/2012, 14h30
  4. [EJB3] Mes EJB3 persistent à ne pas persister
    Par rozwel dans le forum Java EE
    Réponses: 1
    Dernier message: 11/03/2010, 17h27
  5. [EJB3 Entity] Persistance qui ne persiste pas ?
    Par ipingu dans le forum Java EE
    Réponses: 3
    Dernier message: 18/11/2008, 14h04

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