novembre
2007
Bonjour.
Il s’agit ici de faire une petite présentation d’un projet OpenSource hébergé dans SourceForge dont je suis membre, qui est Akrogen.
Akrogen est un plugin eclipse de génération de code orienté composants extrêmement flexible et simple d’emploi. Une fois installé, il permet de créer des générateurs de code comme ceux d’eclipse (wizards).
Dans eclipse (et en général), pour développer un générateur de code, il faut:
1. Créer une IHM (une page ou un wizard de plusieurs pages) qui permet de collecter les différents paramètres de l’utilisateur. Cette étape nécessite de maitriser une bibliothèque de GUI (Swing, SWT/jFace, etc.)
2. Mettre en place un mécanisme de génération de code configurable (pour pouvoir injecter les paramètres collectés de l’utilisateur). Cette étape peut être simplifiée en passant par un langage de templating comme Freemarker, Velocity, etc.
Le but d’Akrogen est de s’occuper des détails techniques et de permettre au développeur de se concentrer sur l’essentiel.
Pour ce faire, Akrogen permet de:
1. Décrire ses IHMs en un langage simple basé sur XML: c’est le XUL de Mozilla qui est utilisé entre autres pour batir l’interface de Firefox et Thunderbird ainsi que leurs plugins. La tache devient alors beaucoup plus simple que si on passe par Swing ou SWT.
De plus, il est possible d’utiliser JavaScript dans les IHMs pour décrire la logique.
2. Ecrire les templates du code à générer en utilisant les langages Freemarker, Velocity ou XSL.
Akrogen s’occupe alors de transformer les IHMs XUL en fenêtres SWT/jFace et d’injecter les données collectées dans les templates pour générer le code.
Akrogen permet aussi de lancer des taches Ant pour générer du code en masse ou encore effectuer des traitements plus complexes, comme du revers-engineering sur une base de données.
Une version stable d’Akrogen est disponible dans SourceForge et actuellement, on travaille sur la prochaine version d’Akrogen ou plus exactement sur un nouveeau moteur de transformation XUL -> SWT/jFace (actuellement, on utilise notre propre couche au dessus de Wazaabi) pour y inclure les fonctionnalités suivantes :
* possibilité d’utiliser d’autres grammaires que XUL (certains ne l’aiment pas trop ;-)) comme xhtml ou xforms.
* possibilité d’utiliser d’autres guis que SWT/jFace, comme Swing (Le but est de porter Akrogen vers Netbeans) ou SWT Forms.
* possibilité d’utiliser le CSS.
* un mécanisme de binding évolué, comme celui de JSF par exemple.
Nous somme à la recherche de toute personne désirant nous aider à améliorer Akrogen, surtout dans la création de catalogues (générateurs de code). Actuellement, on a comme catalogues:
* Catalogue Struts 1.x : permet de générer les Actions, ActionForm et struts-config.xml.
* Catalogue Struts 2, mais c’est loin d’être complet.
* Catalogue JPA : permet de générer les DTOs (Entities), DAOs et persistence.xml en utilisant JPA et Hibernate.
* Catalogue OpenJPA qui permet de récupérer la structure d’une base de données dans un fichier XML. On peut ensuite l’afficher grace au XUL dynamique.
* Catalogue XMI.
Les catalogues sont disponibles dans un repository CVS.
Le plugin et les autres fichiers sont disponible en téléchargment ici.
Pour nous contacter, vous pouvez consulter la page équipe du site d’Akrogen ou encore sur le forum Akrogen de Développez.com.
Angelo Azerr, le créateur d’Akrogen et son principal contributeur en parle dans son blog hébergé dans Developpez.com.