Bonjour a tous,
On vient de me poser une problématique qui est de générer des DAO à partir de Bean. J'ai étudié la question est j'ai réussi à générer une DAO à partir d'une classe Bean en utilisant un moteur de template (je l'ai fait avec JET et Freemarker) et j'ai aussi réussi a mettre en place JMerge, l'API utilisé par EMF qui permet de lancer une régénération de code sans écraser le code que l'on a rajouté (en utilisant les commentaires @generated).
Je pensais faire une série d'article dessus pour expliquer pas à pas comment mettre en place un tel générateur de code (la génération de code se lance à partir d'une classe Main (j'ai réussi a faire marcher JMerge en standalone (pas dans un Plug-In) ce qui n'a pas été chose facile).
Pensez vous qu'une série d'article "How generate DAO from Bean with JET/Freemarker and JMerge" pourrait intéressé?
Ce qui me frêne un peu c'est que :
- on m'a dit que JET est un projet plus maintenu. Il est pourtant utilisé dans la plupart des Plug-Ins (comme la génération d'une servlet avec WTP). J'ai fait d'ailleurs la même chose avec le wizard de génération de WebSocket pour Jetty (ou j'ai développé un adapteur WTP pour Jetty), si jamais ca intérésse quelqu'un voir bug https://bugs.eclipse.org/bugs/show_bug.cgi?id=327020).
- JET marche très bien mais il manque d'outillage comme la coloration syntaxique.l'auto-complétion, le debug...
- Freemarker manque d'outillage, j'ai cependant commencé à développer un Plug-In Freemarker (avec DLTK) avec la coloration syntaxique, l'autocompletion sur le modèle, le debug... (si ca vous intéresse voir https://freemarker.svn.sourceforge.n...eemarker/docs/). J'ai arrêté le développement car j'attends que l'equipe de Freemarker modifie le parseur FM pour être plus tolérant.
On m'a conseillé de regarder du coté d'Acceleo. Mais le problème c'est le modèle attendu. C'est de l'EMF. J'adore EMF, modèliser son modèle EMF sont dans les bonnes pratiques MAIS que fait on lorsque l'on arrive sur un énorme projet qui n'a pas été modélisé?
Dans mon cas précis (du moins le cas que l'on me pose), toute l'application a été développé sans modélisation. Le seul modèle dont on bénéficie sont les JavaBeans et il est impossible de recommencer toute l'application en la modélisant avec EMF (ou XMI ou autres).
Peut on utiliser Acceleo en partant d'un modèle Bean? Si oui comment? Existe-il un composant qui transformerait les Class en EClass EMF?
Que doit on faire dans ce cas-ci?
Je vous remercie de vos réponses et si vous pensez qu'une sérié d'articles "How generate DAO from Bean with JET/Freemarker and JMerge" pourrait être intéressant je serais ravi de les rédiger .
Bonne journée
Angelo
Partager