Blog de Samuel Liard
RSS icon Email icon Home icon
  • Acceleo M2T et Eclipse 3.5

    Posted on juin 25th, 2009 Samuel 6 comments

    Comme vous le savez Eclipse 3.5 Galileo est sorti le 24 Juin.

    Une des nouveautés est l’intégration d’Acceleo M2T directement dans la version « Eclipse Modeling Tools ».
    Je n’ai pas passé beaucoup de temps à l’essayer, mais on peut déjà noter plusieurs grosses améliorations. Bien sur la plus importante est le changement de langage de script. On passe d’un format spécifique Acceleo à du MTL standard défini par l’OMG pour les transformations Model to Text.

    Je vais plus me focaliser sur les nouveautés au niveaux outillage.

    Installation facile

    Avant je n’avais jamais réussit à installer Acceleo sur mon Eclipse via leur update site. Il y avait toujours des problèmes avec les versions d’emf, uml2… J’ai perdu beaucoup de temps et le seul moyen de le faire fonctionner rapidement était de récupérer leur package Eclipse+Acceleo.

    Cette fois j’ai installé un Eclipse 3.5 vierge et via l’update site de Galileo je peux installer Acceleo 0.8. Au moment de l’installation il m’a installé toutes les dépendances nécessaires (emf…) En 5 minutes ça marche. Seul petit hic, il ne tire pas les dépendances vers le plugin uml2 et l’exemple ne fonctionne pas sans. Mais si vous avez téléchargé la version « Eclipse Modeling Tools » tout fonctionne sans passer par l’update.

    Exécution en standAlone

    Même si cette fonctionnalité existe depuis la version 2.4.0 d’Acceleo, on note maintenant la disparition complète des chaines de lancement Acceleo. Pour générer notre code on peut donc utiliser au choix :

    • Du Java
    • Une tache ant
    • Un runner Eclipse

    Il ne manque plus qu’un plug-in Maven 2, mais vu que l’équipe d’acceleo utilise plus ivy que Maven il faudra peut être le réaliser nous-même.

    Debug

    Je gardais le meilleur pour la fin, il est enfin possible de mettre des points d’arrêt dans nos templates. Ca marche très bien et on peut facilement naviguer dans notre model comme on le fait avec des objets en debug Java.
    C’était le gros manque au niveau outillage d’Acceleo, c’est maintenant très bien fait.

    Une grosse évolution très intéressante d’Acceleo donc. Je suis même étonné qu’il n’y ait pas plus d’infos à ce propos sur leur site Web. Ils sont trop occupés à préparer l’Acceleo Day du 10 Juillet peut être :) Journée annoncée sur la page d’acceuil d’Eclipse, la classe !

    acceleoday

     

    6 responses to “Acceleo M2T et Eclipse 3.5”

    1. Laurent Delaigue

      Juste un petit mot pour signaler qu’il existe depuis longtemps un debugger dans acceleo.
      Je l’utilise (très) régulièrement, en fait je ne sais même pas comment je ferais sans ;-)
      On peut naturellement mettre des points d’arrêts, y compris des points d’arrêt conditionnels, ce qui est très pratique.

    2. La documentation n’a pas été mise à jour ?
      Les exemples non plus?

    3. Si si, dans Eclipse.
      Pour l’exemple tu fais : File->New->Example
      Et pour la doc : simplement F1

    4. Doc inutilisable.
      Impossible de faire la promotion d’un tel outil au sein d’une entreprise pour son utilisation par le plus grand nombre.

      MOF, ECORE, OCL, MTL, le ticket d’entrée est trop élévé pour arriver à générer quelque chose.

      La doc Acceleo M2T est inexistante. Liens vides.
      F1 sur quoi? De l’aide sur l’éditeur> Est-ce vraiment utile?

    5. Philippe,

      Je suis l’un des développeurs d’Acceleo, et ce type de retour nous intéresse autant, voire plus que les avis favorables. Toutefois je ne comprends pas vos remarques :

      « Doc inutilisable » : y a t’il plus simple comme documentation que celle intégrée à Eclipse? Help => Help Contents => cliquer sur le lien « Acceleo Model To Text Transformation Language » et la doc est accessible. Si il ne s’agit pas de « inutilisable » dans le sens « impossible à trouver », alors certes, il n’y en a qu’assez peu, mais suffisante pour démarrer un projet de génération de code.

      « MOF, ECORE, OCL, MTL » … Rien n’oblige a connaître MOF et Ecore, quoi que quelqu’un qui en arrive à la génération de code depuis un modèle (m2t) à l’intérieur d’Eclipse connaît plus que certainement Ecore et/ou UML. Sinon, c’est qu’il utilise un DSM personalisé, et dans ce cas inutile de connaître Ecore ou UML.

      OCL est effectivement un langage à apprendre; il est extrêmement complet. Le prix de cette complétude est un apprentissage long … long, mais pas compliqué à moins de se lancer tout de suite à le pousser dans ses limites. Qui pourrait prétendre connaître un outil sans apprendre progressivement comment l’utiliser?

      MTL n’apporte qu’une surcouche a OCL, et sa syntaxe en est identique.

      Notez également que même si nous considérons déjà Acceleo comme très utilisable, il n’en reste pas moins un produit « en incubation » au sens Eclipse. La version 1.0 est prévue pour juin 2010.

      Laurent Goubet

    6. Bonjour,

      Ce produit à l’air très intéressant lorsqu’on l’utilise en parallèle avec un modeler gratuit.

      J’ai essayé avec topcased et je vois bien le code se générer. Par contre je n’ai pas réussi à générer des classes stéréotypées comme je le fais avec omondo pour mes EJB stateless et mes EJB entity (j’utilise des EJB3). C’est peut-être une limitation de topcased…

      Yan Langlois.

    Leave a reply