Acceleo 2.2.0 - Aperçu des nouveautés


Comme prévu voici la version 2.2.0 d'Acceleo, cette dernière apporte de nombreux changements dans les éditeurs, le logiciel supporte désormais la localisation ainsi que la définition de l'encoding dans les templates de génération.

Toutes ces nouveautés complètent les nouveautés d'Acceleo 2.0.0 et d'Acceleo 2.1.0.

Localisation des plugins

Les plugins composants Acceleo sont désormais localisés ce qui signifie qu'il est possible simplement de traduire la totalité d'Acceleo.

Pour le moment seule la localisation française a été réalisée, n'hésitez pas à contacter l'équipe si vous souhaitez prendre en charge une autre langue !

Editeur de .chain en français
Figure :éditeur de .chain en français

Amélioration de la colorisation syntaxique

Suite aux discussions sur la mailling-list de développement les couleurs de l'éditeur de templates ont été revues pour une meilleure lisibilité.

Couleurs avant
Figure :Couleurs avec Acceleo 2.1.x
Couleurs avec Acceleo 2.2
Figure :Couleurs avec Acceleo 2.2.0

Editeur de template

L'éditeur de templates s'est offerts quelques assistances suplémentaires, en particulier l'auto-completion sur les éléments de syntaxe de l'entête ainsi que la mise en évidence des blocs conditionnels.

Completion en en-tête
Figure :Completion de l'en-tête
Correspondance des blocks
Figure :Correspondance des blocs

Support de l'encoding des templates

Acceleo peut désormais gérer correctement les templates utilisant un "encoding" particulier. Cela signifie qu'il n'y a plus de problème à utiliser des caractères spéciaux au sein des templates tout en passant d'un système d'exploitation à l'autre. Auparavant Acceleo utilisait l'encoding courant de la JVM pour lire les templates, désormais il est possible de spécifier l'encoding directement au sein du template.

Attention il est généralement conseillé de plutôt écrire ses templates en ASCII, mais il est parfois indispensable de générer des caractères spéciaux. Ainsi le template suivant utilise utf-8:

Template en utf-8
Figure :Template en utf-8

Celui-ci ISO-8859-1 :

Template en ISO-8859-1
Figure :Template en ISO-8859-1

Et ce dernier ASCII tout en important les deux premiers :

Template en ASCII
Figure :Template en ASCII

Le texte est généré avec l'encoding spécifié par la JVM courante, ainsi pour le résultat suivant tout à été automatiquement converti en UTF-8:

UTF-8 generated text
Figure :texte généré en UTF-8

Bien sûr le spécification de l'encoding est facultative et la spécification d'un encoding non supporté provoque une erreur.

Template with non-existent encoding
Figure :Template avec un encoding inexistant

Script générique

Une autre nouveauté est la possibilité de définir des scripts génériques qui pourront s'appliquer sur n'importe quel type d'objet.

Il suffit de spécifier le type EObject qui est le type générique des éléments de modèles EMF.

Template générique
Figure :Template générique

Documentations mises à jour

Les différentes documentations (Guide utilisateurs, tutoriaux..) ont été mises à jours et corrigées, en particulier les version anglaise qui souffraient de beaucoup d'erreurs.

Module JEE

Spring
  • Ajout du support Spring
    • Gestion des DAO Hibernate + Tests Unitaires
    • Gestion de la couche Service avec support Transactionnel en AOP + Tests Unitaires
    • Gestion de la présentation des services métiers via SOAP (XFire) + Tests Unitaires
  •  
  • Améliorations et corrections diverses sur l'existant DAO Hibernate
  • Relocalisation des wizards de démonstration dans une Catégorie "Examples/Acceleo"
  • Nouvelle démonstration pour la partie Spring
  • Support UI par Velocity (Experimental)

Module PHP

PHP
  • Gestion de l'héritage au niveau des couches DAO (une table par classe) et objet métier. Les classes abstraites ne sont pas gérées.
  • Gestion des Enumérations, création et remplissage de la table.
  • Génération de tests unitaires phpunit
  • Meilleure gestion des stéréotypes
  • Génération d'une classe de base pour la couche DAO (classe Dao) et la couche OM (interface IEntity et classe Entity).

Module Ecore2Python

Python
  • Gestion des EOperation
  • Les eAnnotations de documentation sont exploitées dans la génération.
  • Une Factory est désormais générée.
  • Les classes générées partagent une classe de base commune
  • Amélioration de la gestion des sous-packages

Module WISS

WISSS
  • Modélisation spécifique de type entité/relations
  • Génération de la couche persistance (PHP + Zend Framework)


Export d'un générateur en modèle EMF

Première étape vers Acceleo 3.0, cette version propose un export des modules de génération sous la forme d'un modèle EMF qui peut être lui-même exploité comme base pour un générateur.

Assistant d'export en modèle EMF
Figure :Assitant d'export en modèle EMF

Anomalies corrigées

Les anomalies suivantes ont été corrigées:

308139 eAllContents("Type") returns a wrong result when the metamodel has multiple inheritance
307391 Syntax error when you use parenthesis with RequestService [ ]
308032 The call to the "args" service modify the value of the argument
307328 The JAR Custom Action makes error
306476 Reflective Editor : Ctrl+A Ctrl+C is not working on generated text
307408 Acceleo cannot resolve call to EObject typed scripts on UML modelElements
306891 Change the icons and the images of the wizards
307550 ClassCastException when no category provided in module launcher's plugin.xml
307383 Unexpected result from XPath preceding() service
307296 [2.1.0] SAXParseExceptions in Help
307309 Unresolved call while using a service that has a Collection parameter
307339 Java heap space exception with many Java services in an Acceleo project
307375 probléme sur atribut length
Webdesign : www.katrinet.com - Réalisation : Obeo