Sunteți pe pagina 1din 69

Acceleo 2.

6 : Tutoriel utilisateur
Page 1/69
Acceleo 2.6 : Tutoriel utilisateur
Page 2/69
ACCELEO
Tutoriel utilisateur
Ce manuel est la proprit exclusive de ses auteurs et a t concd par ces derniers au profit de la socit
OBEO, !"# au capital de $%&''' ( dont le si)ge social est sis 2 rue "o*ert c+uman, $$$'' "e,, inscrite
au "egistre du Commerce et des socits de -!-.E sous le numro $/%&129&/6'&
Ce manuel est protg au titre des dispositions lgales et rglementaires rgissant les droits de proprit
intellectuelle& 0l traite d1un produit logiciel dnomm !CCE#EO, actuellement distri*u sous licence open
source EP# par la socit OBEO& Ce manuel a t fait avec la plus grande attention& .outefois, des erreurs
ont pu se glisser dans la version de ce manuel& OBEO ne peut 2tre, en aucun cas, tenue pour responsa*le
des suites 3ue ces erreurs pourraient entra4ner&
#a distri*ution de ce manuel n1est pas li*re& Ce manuel peut52tre tlc+arg gratuitement apr)s
enregistrement sur le site de la socit OBEO, et peut52tre consult dans le cadre d6une utilisation
commerciale ou non de la tec+nologie !CCE#EO& Cependant, la copie, la traduction et la redistri*ution de ce
document sur support lectroni3ue ou sur papier ncessite une autorisation de la part de OBEO&
-ous rappelons 7 votre attention 3ue les dispositions lgales rgissant les conditions d1utilisation et de
distri*ution de ce manuel sont regroupes au sein du Code de la Proprit 0ntellectuelle, notamment dans
son .itre 00 8 9roits des auteurs :!rticles #12151 7 #12;512<&
-ous nous rservons le droit de modifier sans avis prala*le ce manuel ou le produit&
=erci de respecter ces dispositions&
________________
> OBEO ?, > !CCE#EO ?, ainsi 3ue les logos OBEO et !CCE#EO associs 7 ce manuel sont dposs par
OBEO !"# en @rance et/ou dans d6autres paAs du monde&
.ous les autres noms, titres, dessins, et logos sont la proprit exclusive de leurs auteurs respectifs et sont
protgs au titre des droits de proprit intellectuelle&
Ce manuel a t rdig avec les outils suivants B OpenOffice
!uteurs B Conat+an =DE., Etienne CD#0O., tp+ane #!C"!=PE
avec la participation de B EoulFen #E @D", Culien 9DPO-., Euillaume "!0=B!D#., -at+alie #EP0-E,
Gilliam P0E" et Cdric B"D-
H CopArig+t 2''652''/ O*eo& .ous droits rservs
Acceleo 2.6 : Tutoriel utilisateur
Page ;/69
Sommaire
1 - ntroduction.......................................................................................................................5
1.1 - Connaissances minimales requises..........................................................................5
1.2 - Ensemble des documentations Acceleo...................................................................5
2 - nstallation.........................................................................................................................6
3 - Dmarrage rapide.............................................................................................................7
3.1 - mporter un projet dans Eclipse................................................................................7
3.2 - Lancer la chane de gnration .............................................................................10
4 - Modlisation....................................................................................................................11
4.1 - Dfinition..................................................................................................................11
4.2 - Les modeleurs.........................................................................................................11
4.2.1 - Le mtamodle UML2 avec le modeleur EMF................................................12
4.2.1.1 - La cration d'un projet..............................................................................12
4.2.1.2 - Cration d'un modle UML 2.1.................................................................15
4.2.1.2.a - Crer un package..............................................................................16
4.2.1.2.b - Crer une classe...............................................................................17
4.2.1.2.c - Crer un attribut.................................................................................17
4.2.1.2.d - Ajouter un profil au modle...............................................................17
4.2.1.2.e - Crer une Association.......................................................................19
4.2.1.2.f - Valider le modle................................................................................21
4.2.2 - A partir de l'exemple........................................................................................21
4.2.2.1 - mporter un projet dans Eclipse................................................................22
4.2.2.2 - Cration d'un projet " Dynamic Web Project ..........................................24
4.2.2.3 - Le modle WebLog_fr.uml.......................................................................27
4.2.2.4 - Cration d'un modle...............................................................................28
5 - nitialisation du projet......................................................................................................31
5.1 - mport des modules de gnrations........................................................................31
5.2 - Les fichiers de gnrations.....................................................................................32
5.2.1 - Pr-visualisation des rsultats.........................................................................33
5.2.1.1 - Synchronisation code modle..................................................................35
5.3 - Cration de la chane de gnration ......................................................................35
5.3.1 - Crer une chane de gnration partir de l'assistant..................................36
5.3.2 - Crer une chane de gnration sans l'assistant............................................41
5.3.2.1 - Ajouter un modle....................................................................................42
5.3.2.2 - Ajouter un rpertoire cible........................................................................43
Acceleo 2.6 : Tutoriel utilisateur
Page $/69
5.3.2.3 - Ajouter un log............................................................................................44
5.3.2.4 - Ajouter un mta-modle...........................................................................45
5.3.2.5 - Ajouter un fichier de gnration ..............................................................45
6 - Gnration......................................................................................................................47
6.1 - Lancer une chane de gnration...........................................................................47
6.2 - mporter un serveur Tomcat....................................................................................48
6.2.1 - mporter les librairies Tomcat..........................................................................51
6.3 - Tester l'application..................................................................................................52
7 - Paramtrage...................................................................................................................55
7.1 - Les chanes de gnrations....................................................................................55
7.1.1 - Modifier une chane de gnration .................................................................55
7.2 - Les " logs ...............................................................................................................56
7.3 - Les fichiers " Properties ........................................................................................57
7.3.1 - Cration du fichier " properties" ......................................................................57
8 - Gestion des volutions...................................................................................................60
8.1 - Dveloppements manuels.......................................................................................60
8.1.1 - Ajouter du code dans les servlets....................................................................60
8.2 - volutions fonctionnelles.........................................................................................61
8.2.1 - Modification du modle d'entre......................................................................61
8.2.1.1 - Modification d'un attribut...........................................................................61
8.2.1.2 - Ajout d'une Classe....................................................................................63
8.2.1.3 - Suppression d'une classe.........................................................................63
8.2.1.4 - Renommer une classe..............................................................................64
8.2.1.5 - Ajout / modification d'une relation (association / hritage)......................64
8.3 - Les fichiers " lost ...................................................................................................65
8.4 - Acceleo Traceability................................................................................................66
9 - Utilisation avance..........................................................................................................67
9.1 - Lancer une chane de gnration automatiquement partir d'Eclipse..................67
10 - Environnements complmentaires...............................................................................68
10.1 - La gestion de versions..........................................................................................68
10.1.1 - Partager un nouveau projet...........................................................................68
10.1.2 - Partager ses modifications............................................................................69
10.1.3 - Rcuprer les modifications d'une tierce personne......................................69
Acceleo 2.6 : Tutoriel utilisateur
Page %/69
1 - nt r oduct i on
Ce document est un tutoriel dtaill permettant aux utilisateurs la prise en main du gnrateur de code
Acceleo, initi par la socit Obeo.
Les fonctionnalits abordes permettront une mise en oeuvre efficace de modules de gnration au sein de
projets, ainsi que la gestion du cycle de vie des projets industrialiss avec Acceleo.
Ce gnrateur de code est ddi aux personnes qui veulent tirer profit des technologies MDA pour accrotre
la productivit de leurs dveloppements informatiques. l permet de gnrer des fichiers partir de modles
UML, MOF, EMF...
l s'agit d'un plugin caractris par :
Son intgration complte l'environnement Eclipse et au framework EMF
La gestion de la synchronisation entre le code et le modle
La gnration incrmentale
La simplicit d'adaptation tout type de cible technique
La facilit de mise au point et de maintenabilit des templates
La coloration syntaxique, la compltion, la dtection d'erreurs
1.1 - Connaissances minimales requises
Ce prsent guide ne se veut pas tre une formation pour l'ensemble des problmatiques couvertes par le
MDA et Acceleo en particulier. Ainsi, la lecture de ce guide requiert les connaissances suivantes :
Java
modlisation (par exemple : UML)
utilisation d'Eclipse
La connaissance des concepts suivants sera galement un plus, mais ne sera pas indispensable la lecture
de cette documentation :
mta-modles
mta-modle UML2
dveloppement de plugins Eclipse
MDA ou MDD
1.2 - Ensemble des documentations Acceleo
Ce tutoriel s'inscrit dans un ensemble de documentations proposes par la socit Obeo. Chaque
documentation aborde une facette diffrente de la matrise d'Acceleo :
rfrence : inventaire et explication de chaque service et chaque lment de syntaxe
guide utilisateur : documentation des fonctionnalits d'Acceleo
tutoriel architecte : guide pour la cration et la personnalisation de modules de gnration
Acceleo 2.6 : Tutoriel utilisateur
Page 6/69
2 - nst al l at i on
Pour installer Acceleo, vous devez commencer par tlcharger et installer la plateforme Eclipse 3.2.12, EMF
2.2.2, et UML2 2.0.3. Vous devez ensuite tlcharger et installer Acceleo 2.5.
Plusieurs procdures existent pour l'installation d'Acceleo sur chaque poste utilisateur. Chaque procdure a
ses spcificits, en fonction du contexte de dploiement de la plateforme Eclipse.
Le mode d'installation conseill est l'installation partir du site de mise jour http://www.acceleo.org/update/.
Chaque type d'installation est dtaill pas pas dans le guide d'utilisateur.
Acceleo 2.6 : Tutoriel utilisateur
Page I/69
3 - Dmar r age r api de
Cette partie du tutoriel s'adresse aux personnes qui veulent excuter directement l'exemple que l'on trouve
sur le site d'Acceleo : http://www.acceleo.org/pages/telechargement-modules-d-exemple/fr.
Enregistrer le contenu de l'archive dans un rpertoire choisi.
L'archive doit contenir trois rpertoires:
free.demo.weblog
free.uml2.gen.java
free.uml14.gen.java
3.1 - mporter un projet dans Eclipse
l faut importer " free.demo.weblog dans Eclipse :
Cliquer sur " mport... (cfB @igure 1).
Slectionner ensuite l'assistant d'import de projet " Existing Project nto WorkSpace (cfB @igure 2).
Cliquer sur " Next .
@igure 1B 0mporter un proJet
:1<
@igure 2B 0mporter un proJet :2<
Acceleo 2.6 : Tutoriel utilisateur
Page //69
Cliquer sur " Browse... (cfB @igure ;) afin d'ouvrir une fentre contenant tous les dossiers prsents sur le
disque.
Slectionner l'emplacement du rpertoire qui contient " free.demo.weblog (cfB @igure $).
Cliquer sur " OK .
" free.demo.weblog est ajout la liste (cfB @igure %). Une fois que la liste contient tous les dossiers
souhaits cliquer sur " Finish pour ajouter le projet Eclipse.
Le projet " free.demo.weblog est un " Dynamic Web Project (cfB $&2&2&2 Cration d1un proJet K 9Anamic
Ge* ProJect L).
Refaire la mme manipulation que prcdemment pour importer le projet " free.uml2.gen.java .
@igure ;B 0mporter un proJet :;<
@igure $B 0mporter un proJet :$<
@igure %B 0mporter un proJet :%<
Acceleo 2.6 : Tutoriel utilisateur
Page 9/69
l est noter que le rpertoire " src est vide (cfB @igure 6). La gnration va remplir ce rpertoire.
@igure 6B !r*orescence des
deux proJets
Acceleo 2.6 : Tutoriel utilisateur
Page 1'/69
3.2 - Lancer la chane de gnration
Une fois que les deux projets sont imports, il faut slectionner l'action de lancement de la chane de
gnration " free.demo.weblog>weblog.chain>Launch (cfB @igure I).
Aprs avoir cliqu sur " Launch le rpertoire " src contient trois packages contenant des fichiers java qui
sont le rsultat de la gnration (cfB @igure /).
@igure IB #ancer la
c+a4ne de gnration
@igure /B #es fic+iers
gnrs
Acceleo 2.6 : Tutoriel utilisateur
Page 11/69
4 - Modl i sat i on
L'outil Acceleo permet diffrentes possibilits de modlisation :
UML1.x
UML2
Ecore
DSL
Autres (Merise, SADT, OMT, outil propritaire...)
4.1 - Dfinition
Voici un rappel de quelques dfinitions propres UML qui pourront tre utiles la
comprhension du tutoriel.
Profile:
Un profile est un mcanisme standard d'extension du langage UML qui permet de spcialiser un schma
UML selon un domaine particulier.
l reprsente un ensemble cohrent de strotypes, tag-value et contraintes.
Attention : on n'ajoute pas de mta-classes mais des annotations aux mta-classes UML existantes.
Des profiles standards existent: le profil CORBA (OMG), le profil EJB 1.0 (JCP),...
Strotypes:
Le concept de strotype permet de classer (annoter) des lments et se comporte comme un nouvel
lment d'un mta-modle.
Un strotype est un " GeneralizableElement .La relation d'hritage est donc possible pour les strotypes.
De mme il est possible de dfinir des strotypes abstraits pour viter des rptitions quand des
strotypes ont des proprits communes.
Tag-value:
Le concept de tag-value permet d'ajouter des informations sur des classes. Un tag-value peut tre considr
comme un nouveau mta-attribut.
Contraintes:
Le concept de contrainte est utilis pour exprimer des relations entre les strotypes et les tag-values.
4.2 - Les modeleurs
De nombreux modeleurs sont compatibles avec Acceleo. Ce gnrateur repose sur EMF, il est donc
nativement compatible avec les outils crs autour de ce framework. On peut nommer RSM, Together,
Acceleo 2.6 : Tutoriel utilisateur
Page 12/69
Omondo.
Les modeleurs ne sont pas tous intgrs Eclipse, mais beaucoup d'entre eux proposent un export de type
XM pour se rendre compatible avec les autres outils.
Acceleo a t test avec succs pour des outils exportant des modles UML 1.4 en XM 1.x : Poseidon,
Objecteering, Sparx, ArgoUML...
Pour pouvoir lire un XM diffrent de EMF il faut faire un clic droit sur le fichier XM et choisir " Convert XM .
La procdure est toujours la mme:
Soit le modeleur est intgr Eclipse et Acceleo peut utiliser directement les fichiers XM, soit le modeleur
est externe et dans ce cas il faut exporter le XM dans un rpertoire du workspace et rafrachir le dossier
dans Eclipse.
Voici un exemple de modle cinmatique dans un DSM cr partir de GMF :
Ce modle est directement compatible avec Acceleo car il est bas sur EMF.
4.2.1 - Le mtamodle UML2 avec le modeleur EMF
Acceleo utilise l'diteur de EMF pour reprsenter des modles dcrit en UML2. Ce modeleur est prsent
dans la section " Example EMF Model Creation Wizards .
l faut avoir cr un projet pour pouvoir crer un modle UML2.
$&2&1&1 5 #a cration d6un proJet
Pour crer un projet il suffit de faire un clic droit dans l'environnement de travail et de choisir l'assistant de
cration d'un nouveau projet simple " New>Other>General>Project (cfB @igure11).
@igure 9B mod)le de cinmati3ue dans un 9=
Acceleo 2.6 : Tutoriel utilisateur
Page 1;/69
Remplir le champ " Project Name avec le nom " fr.obeo.pim.demo.tutorial .
Cliquer sur " Finish pour ajouter le projet Eclipse (cfB figure 12).
@igure 11B Cration d6un
proJet :1<
@igure 1'B Cration d6un proJet :2<
@igure 12B Cration d6un proJet :;<
Acceleo 2.6 : Tutoriel utilisateur
Page 1$/69
l faut maintenant crer un rpertoire " model (cfB @igure 1$< dans ce nouveau projet.
Pour cela :
Faire un clic droit sur le projet et slectionner l'assistant de cration de rpertoire " New>Folder
(cfB @igure 1;).
Remplir le champ " Folder name
Cliquer sur " Finish pour ajouter le rpertoire Eclipse. Un rpertoire vide apparat dans le projet.
@igure 1;B Cration d6un rpertoire
@igure 1$B -ommage du rpertoire
Acceleo 2.6 : Tutoriel utilisateur
Page 1%/69
$&2&1&2 5 Cration d1un mod)le D=# 2&1
Pour crer un modle UML 2.1 il faut :
Effectuer un clic droit sur le rpertoire " model
Choisir l'assistant de cration de modle EMF " New>Other>Example EMF Model Creation
Wizards>UML Model (cfB @igure 1%).
Cliquer sur " Next .
Nommer le modle " Tutorial.uml dans le champ " File name (cfB@igure 16).
Cliquer sur " Next .
Dans le champ " Model Object choisir " Model (cfB @igure 1I).
Cliquer sur " Finish pour ajouter le modle Eclipse
Un modle vierge t cr. l faut maintenant crer le modle souhait.
@igure 1%B Cration d6un mod)le
@igure 16B -ommage du mod)le
@igure 1IB C+oix du mod)le
Acceleo 2.6 : Tutoriel utilisateur
Page 16/69
$&2&1&2&a 5 Crer un pacMage
La premire tape consiste crer un package. Pour cela :
Effectuer un clic droit sur l'lment de haut niveau nomm " Model
Choisir dans la liste de " Child l'lment " Package (cf: Figure 18)
Les proprits de l'lment " Package se trouve dans la vue " Properties . Si cette vue n'est pas affiche
faire un clic droit " ShowProperties View (cfB @igure 19).
@igure 1/B Cration d6un pacMage
@igure 19B
!ffic+er la vue
proprit
Acceleo 2.6 : Tutoriel utilisateur
Page 1I/69
La saisie du champ " name est obligatoire. Saisir " monPremierPackage dans celui-ci. (cfB figure 2'<.
Un clic sur l'lment du modle permet d'afficher dans la vue " Properties les proprits de l'objet.
$&2&1&2&* 5 Crer une classe
Maintenant que le package est cr il va falloir lui ajouter une classe. Pour cela ritrer les oprations
suivantes:
Clic droit sur le package " MonPremierPackage , slectionner le menu " New Child>Class
Remplir le champ " name avec le nom " MaClasse
$&2&1&2&c 5 Crer un attri*ut
Maintenant pour ajouter un attribut cette classe ritrer les oprations suivantes:
Clic droit sur la classe " MaClasse , slectionner le menu New Child>Property
Remplir le champ " name avec le nom " monAttribut .
l faut aussi complter le type de l'attribut " monAttribut : String. Un clic sur le champ type ne propose pas
les types primitifs (tel que String). Pour utiliser les types primitifs, il faut utiliser les profils UML2.
$&2&1&2&d 5 !Jouter un profil au mod)le
Pour utiliser les profils UML2 il suffit de faire un clic droit sur " monAttribut et de slectionner " Load
Ressource... (cfB @igure 21)
@igure 2'B Proprit name
@igure 21B !Jouter un profil
:1<
Acceleo 2.6 : Tutoriel utilisateur
Page 1//69
Ensuite il faut saisir l'UR pour obtenir le profil contenant les types primitifs (Entier, Chane de caractre,
Boolen...):
pathmap://UML_PR!"L#$/$tandard.profile.uml et cliquer sur " OK (cfB @igure 22)
De nouveaux profils sont alors ajouts au modle. (cfB @igure 2;).
Pour que " monAttribut soit de type String il suffit, dans la vue " Properties , de cliquer sur l'onglet " Type
et de choisir " String . (cfB @igure 2$)
Pour complter le modle, ajouter une seconde classe " MaSecondeClasse (cfB ;&2&1&2&* Crer une classe)
et un attribut cette classe " monSecondAttribut (cfB ;&2&1&2&c Crer un attri*ut).
@igure 22B !Jouter un profil :2<
@igure 2;B -ouveau profil
@igure 2$B C+oisir le tApe tring
Acceleo 2.6 : Tutoriel utilisateur
Page 19/69
$&2&1&2&e 5 Crer une !ssociation
Pour l'attribut " monSecondAttribut utiliser le type " MaClasse . Pour cela, dans le champ " type de la vue
" Properties choisir " MaClasse (cfB figure 2%). Une association entre les deux classes a t cre.
Une seconde faon de crer une association entre deux classes consiste ajouter une association la main.
Pour cela se placer sur le package, faire un clic droit, et choisir l'lment " Child>Association .
La nouvelle association est ajoute la fin du modle (cfB figure 26).
l faut renseigner le champ " memberEnd de cette association dans la vue " Properties .
Pour cela cliquer sur le slectionneur (cfB figure 2I).
@igure 2%B Crer une association
@igure 26B !Jouter une association entre deux
classe
@igure 2IB lectionneur
Acceleo 2.6 : Tutoriel utilisateur
Page 2'/69
Une fentre apparat.
Slectionner " monAttribut et cliquer sur " Add
Slectionner " monSecondAttribut et cliquer sur " Add .
Pour valider cliquer sur " OK (cfB @igure 2/).
Le champ " memberEnd est maintenant compos des deux attributs.(cfB @igure 29)
@igure 2/B Crer une association
@igure 29B C+amp K mem*erEnd L
Acceleo 2.6 : Tutoriel utilisateur
Page 21/69
$&2&1&2&f 5 Nalider le mod)le
Le modle est cr. Pour vrifier que le modle est correct, effectuer un clic droit sur l'lment de haut
niveau " Model et slectionner " Validate (cfB @igure ;').
4.2.2 - A partir de l'exemple
%ette partie consiste e&pliquer le fonctionnement de l'e&emple.
Un exemple de modle et de script peut tre tlcharg sur le site d'Acceleo l'adresse suivante :
http://www.acceleo.org/pages/telechargement-modules-d-exemple/fr
Enregistrer le contenu de l'archive dans un rpertoire de votre choix.
L'archive doit contenir trois rpertoires:
free.demo.weblog
free.uml2.gen.java
free.uml14.gen.java
@igure ;'B Nalidation du mod)le
@igure ;1B Nalidation effectue
Acceleo 2.6 : Tutoriel utilisateur
Page 22/69
$&2&2&1 5 0mporter un proJet dans Eclipse
l faut importer " free.demo.weblog dans Eclipse.
Cliquer sur " mport... (cfB @igure ;2)
Slectionner ensuite l'assistant d'import de projet " Existing Project nto WorkSpace (cfB @igure ;;)
Cliquer sur " Next pour importer le projet dans Eclipse.
@igure ;2B 0mporter un proJet :1<
@igure ;;B 0mporter un proJet :2<
Acceleo 2.6 : Tutoriel utilisateur
Page 2;/69
Cliquer sur " Browse... (cfB @igure ;$) pour slectionner l'emplacement du rpertoire qui contient
" free.demo.weblog .(cfB @igure ;%)
Cliquer sur " OK .
Le projet " free.demo.weblog est ajout la liste (cfB @igure ;6). Pour finir cliquer sur " Finish .
Le projet est ajout Eclipse (cfB @igure ;I).
Le projet " free.demo.weblog est un projet " Dynamic Web Project .
@igure ;$B 0mporter un proJet :;<
@igure ;%B 0mporter un proJet :$<
@igure ;6B 0mporter un proJet :%<
@igure ;IB 0mporter un proJet
:6<
Acceleo 2.6 : Tutoriel utilisateur
Page 2$/69
$&2&2&2 5 Cration d1un proJet K 9Anamic Ge* ProJect L
%ette partie e&plique comment le pro(et free.demo.)e*lo+ a t cr.
Cette seconde partie du tutoriel explique comment l'exemple t cr et comment faire pour le recrer.
l faut auparavant avoir install Eclipse WTP.
Ensuite il faut faire un clic droit dans l'environnement de travail pour slectionner l'assistant de cration de
projet Web dynamique " New>Other>Web>Dynamic Web Project (cfB @igure ;/), puis cliquer sur " Next .
@igure ;9B Cration d6un proJet :2<
@igure ;/B Cration d6un proJet:1<
Acceleo 2.6 : Tutoriel utilisateur
Page 2%/69
Remplir le champ " Project Name avec le nom souhait pour le projet et cliquer sur " Next
(cf B @igure $').
Cliquer sur " Next (cfB figure $1).
@igure $1B Cration d6un proJet :$<
@igure $;B Cration d6un proJet :6<
@igure $'B Cration d6un proJet :;<
@igure $2B Cration d6un proJet :%<
Acceleo 2.6 : Tutoriel utilisateur
Page 26/69
Lorsque la fentre " Open associated Perspective (cfB figure $;) apparat,
cliquer sur " Yes pour avoir une perspective J2EE (cfB @igure $$)
ou
sur " No pour garder la perspective Java (cfB @igure $%).
Pour changer de perspective il suffit de cliquer sur l'icne " Open Perspective (cfB @igure $%).
@igure $$B Perspective C2EE
@igure $%B Perspective Cava
Acceleo 2.6 : Tutoriel utilisateur
Page 2I/69
$&2&2&; 5 #e mod)le Ge*#ogOfr&uml
Afin de mieux comprendre le projet Weblog voici une reprsentation UML du diagramme de classe.
La premire reprsentation reprsente l'HM du projet WebLog (cfB @igure $6) et la seconde reprsente
l'application mtier du projet Weblog (cfB @igure $I).
weblogs
creerBlog
@igure $IB 9iagramme de classe de l1application mtier Ge*log
"Entity "
Utilisateur
email: String
prenom: String
nom: String
login: String
motDePasse: Password
"Entity "
ArticleDeBlog
titre: String
dateDeCreation: Date
contenu: String
auteur
1
*
@igure $6B 9iagramme de classe de l60P= Ge*log
"Screen
CreationCompte
email: String
prenom: String
nom: String
login: String
motDePasse: Password
creer()
1
1
1
1
1
1
1
1
visualisationBlogs
visualisationBlogs
editionCompte
login
connection creationCompte
"Screen
CreationBlogs
contenu: String
titre: String
creer()
"Screen
EditionCompte
email: String
prenom: String
nom: String
login: String
motDePasse: Password
modifier()
"Screen
VisualisationBlogs
blogs: ArticleDeBlog
message: String
utilisateur: String
creerBlog()
deconnecter()
editerCompte()
connecter()
recharger()
"Screen
Connection
login: String
motDePasse: Password
connecter()
creerCompte()
Acceleo 2.6 : Tutoriel utilisateur
Page 2//69
$&2&2&$ 5 Cration d1un mod)le
Tout au long de cette partie le modle de rfrence sera le modle " Webog!fr"uml # .
" WebLog_en.uml reprsente le mme modle UML mais en anglais.
" Weblog_en.uml14 reprsente le modle dcrit en UML 1.4 en anglais.
Une fois le projet cr (cf B $&2&1&1 =on premier proJet ou $&2&2&2 Cration d1un proJet K 9Anamic Ge*
ProJect L), crer un rpertoire " model l'intrieur du projet.
Dans ce rpertoire faire un clic droit et slectionner l'assistant de cration de modle EMF :
" New>Other>Example EMF Model Creation Wizards (cfB @igure $/).
Cliquer sur " Next puis nommer le modle.
Dans la section " Model Object choisir " Model (cf: Figure 49).
Cliquer ensuite sur " Finish pour ajouter le modle Eclipse.
@igure $/B Cration d6un mod)le
@igure $9B Cration d6un mod)le :2<
Acceleo 2.6 : Tutoriel utilisateur
Page 29/69
Une fois le modle UML 2.1 cr, il faut l'ouvrir, faire un clic droit sur l'lment de haut niveau, et slectionner
le menu " New Child . Une liste des lments pouvant tre ajouts apparat (cfB @igure %').
La figure ci-dessous reprend les lments prsents dans la liste de la figure 50.
Un lment parent : =odel =od)le Nierge
Des profiles
Des packages
Des classes
Des proprits
Des oprations
Des paramtres d'opration
@igure %'B #es noeuds du mod)le
Acceleo 2.6 : Tutoriel utilisateur
Page ;'/69
Un clic droit sur un des lments permet de voir les " Child qui peuvent lui tre associ.
Ces lments sont paramtrables partir de la vue " Properties (cfB figure %2).
Si cette vue n'apparat pas dans Eclipse, il faut faire un clic droit sur le modle (dans le " Reflective Editor )
et slectionner le menu " Show Properties View (cfB @igure %1).
Les proprits ne seront pas dcrites dans ce tutoriel cependant quelques points seront abords.
es cardinalits:
" Lower : Cardinalit minimale
" Upper : Cardinalit maximale
L'infini se reprsente par " -1
es types:
" Type permet de dfinir les types des attributs
le nom:
" Name permet de nommer l'lment. Cette proprit doit absolument tre renseigne.
L'exemple WebLog n'utilise pas de strotypes mais des " keywords . Les trois modles prsents dans le
rpertoire " model de Weblog ont t raliss partir d'un modeleur qui a remplac les strotypes par des
" keywords . l est tolrable d'assimiler les " keywords des strotypes.
@igure %2B Nue properties
@igure %1B !ffic+er la vue Properties
Acceleo 2.6 : Tutoriel utilisateur
Page ;1/69
5 - ni t i al i sat i on du pr oj et
e mod$le % Webog!fr"uml # sera utilis pour cette partie"
5.1 - mport des modules de gnrations
Le modle de rfrence tant " WebLog_fr.uml il faut importer le module de gnration correspondant ce
modle. Le module de rfrence importer est:
free.uml2.gen.java
Ce rpertoire se trouve dans l'archive tlcharge dans la partie 3 (cfB ;&2&2).
Pour importer ce projet, se rfrer la partie 4&2&2&1 0mporter un proJet dans Eclipse.
Les deux projets doivent apparatre dans Eclipse (cfB @igure %;)
Pour le reste du tutoriel il est conseill d'avoir la perspective Acceleo ouverte. Pour cela il suffit de cliquer sur
l'icne " Open Perspective (cfB @igure $%) et de choisir Acceleo si celui-ci apparat dans la liste. Sinon il faut
cliquer sur " Other... , slectionner Acceleo, puis cliquer sur " Ok (cfB @igure %$).
@igure %$B Perspective !cceleo
@igure %;B #es proJets dans Eclipse
Acceleo 2.6 : Tutoriel utilisateur
Page ;2/69
5.2 - Les fichiers de gnrations
Le projet " free.uml2.gen.java contient les fichiers de gnration.
Ces fichiers se trouvent dans le rpertoire " src et possdent l'extension " .mt .
Ces fichiers sont des scripts de gnration qui vont permettre de gnrer le code souhait.
@igure %%B @ic+iers de gnration
Acceleo 2.6 : Tutoriel utilisateur
Page ;;/69
5.2.1 - Pr-visualisation des rsultats
Pour pouvoir faire une pr-visualisation des rsultats il faut tout d'abord choisir un script de gnration. Pour
cela il faut faire un clic droit sur le modle (ici WebLog_fr.uml) et choisir " Acceleo>Select Template
(cf B @igure %6)
l faut ensuite slectionner le fichier que l'on veut pr-visualiser. La pr-visualisation s'effectuera avec le
fichier " jdbc.mt prsent dans " src>org>acceleo>modules>uml2>gen>java>dao (cfB @igure %I)
@igure %6B lectionner un gnrateur
@igure %IB lection du fic+ier 7 pr5
visualiser
Acceleo 2.6 : Tutoriel utilisateur
Page ;$/69
Les classes du modle ayant un " keywords dont la valeur est " Entity se voit apposer une flche
(cfB @igure %/)
Pour avoir un aperu de la gnration, slectionner une des classes qui une flche et cliquer sur l'onglet
" Source (cfB @igure %/).
Le code en noir est le code qui a t gnr dynamiquement et qui correspond aux lments du modle. ci
le code gnr correspond la classe Utilisateur.
Le code en violet correspond au code qui a t gnr statiquement. (cfB @igure %9).
@igure %/B Classe avec K MeAFords L dont la valeur est QEntitAQ
@igure %9B Prvisualisation du code gnr
Acceleo 2.6 : Tutoriel utilisateur
Page ;%/69
%&2&1&1 5 Anc+ronisation code mod)le
Une synchronisation est faite entre le modle et le code gnr. Ainsi il est possible de retrouver un lment
dans le code gnr partir du modle et inversement. l suffit de double-cliquer sur un lment gnr
dynamiquement (de couleur noire) pour qu'il soit slectionn dans le modle (cfB @igure 6').
Un simple clic dans le modle slectionne l'lment dans le code gnr (cfB @igure 61). Un second clic sur
le modle slectionne la seconde occurrence et ainsi de suite.
5.3 - Cration de la chane de gnration
l existe deux faons de crer une chane de gnration. Soit en utilisant l'assistant soit en le faisant
@igure 6'B Anc+ronisation code mod)le
@igure 61B sAnc+ronisation mod)le code
Acceleo 2.6 : Tutoriel utilisateur
Page ;6/69
manuellement.
5.3.1 - Crer une chane de gnration partir de l'assistant
Dans l'exemple, les chanes de gnration (.chain) sont dans le projet " free.demo.weblog . L'emplacement
de la chane n'a pas d'importance.
Pour crer une chane de gnration, il est conseill de passer en perspective Acceleo (cfB @igure $% et %$).
Dans l'exemple les chanes de gnrations sont dj cres. Le but du tutoriel est de recrer une chane de
gnration identique la chane de gnration " weblog.chain .
Pour crer une nouvelle chane de gnration:
slectionner le projet " free.demo.weblog
Faire un clic droit et slectionner " New>chain (cfB @igure 62).
@igure 62B Cration d6une c+a4ne de gnration
Acceleo 2.6 : Tutoriel utilisateur
Page ;I/69
Slectionner le mta-modle appropri. Dans le cas prsent il faut choisir le mta-modle UML2
(http://www.eclipse.org/uml2/2.0.0/UML) (cfB @igure 6;) puis cliquer sur " Next .
l faut slectionner le modle " WebLog_fr.uml (cfB @igure 6$) puis cliquer sur " Next .
@igure 6;B lection du mtamod)le
@igure 6$B lection du mod)le
Acceleo 2.6 : Tutoriel utilisateur
Page ;//69
l faut maintenant slectionner les fichiers de gnrations souhaits, les trois rpertoires " dto , " dao , " ui
dans le cas prsent (cf @igureB 6%) puis cliquer sur " Next .
Enfin, il faut choisir l'emplacement et le nom de la chane de gnration (cfB @igure 66). Cette chane sera
place dans le rpertoire " free.demo.weblog et se nommera " MaWebLog_fr.chain
@igure 6%B lection des scripts
@igure 66B -ommage de la c+a4ne de gnration
Acceleo 2.6 : Tutoriel utilisateur
Page ;9/69
Voici la constitution de cette nouvelle chane de gnration (cfB @igure 6I).
Elle liste l'ensemble des ressources manipules et des actions raliser. L'diteur spcialis permet de
valider les tches et de guider l'utilisateur. On distingue deux parties dans ces fichiers : la partie des
ressources et la partie des actions.
La partie des ressources, aussi appele "Repository", contient l'ensemble des ressources utilises par les
actions. On distingue 5 types de ressources :
Model : les modles sur lesquels les gnrateurs vont tre appliqus
Folder : les rpertoires cibles de gnration
Log : les fichiers pour recenser les erreurs de gnration
PM : les mta-modles de haut niveau dcrivant les modles en entre des gnrateurs
Script : les gnrateurs appliquer
La partie des actions, aussi appele "ActionSet", contient l'ensemble des tches lancer. On distingue 5
types d'actions :
Generate : applique un gnrateur sur un modle, et met l'arborescence des fichiers crs dans le
rpertoire cible prcis. Le mta-modle demand est celui dcrivant le modle en entre.
Convert Xmi : convertit un fichier XM export d'un modeleur non EMF en un fichier XM bas sur le
mta-modle UML14 dfini pour EMF avec l'UR http://www.obeo.fr/acceleo/uml14. Cet export doit bien
sr tre compatible XM 1.x et UML 1.4. Cette action prcde gnralement une action de gnration qui
s'applique sur le modle rsultant de la conversion.
Backup : sauvegarde toutes les ressources d'un rpertoire dans un autre rpertoire. Plusieurs niveaux de
sauvegarde peuvent tre dfinis. La sauvegarde d'un rpertoire cible de gnration est notamment trs
pratique dans une phase de mise au point des scripts. Cependant, cette action ne fait pas toujours bon
mnage avec les outils de gestion de versions : CVS, SVN... A utiliser avec modration!
Clear : vide le contenu de chaque fichier du rpertoire slectionn et de ses sous-rpertoires. Cette
action ne supprime pas les ressources. Elle a pour objectif d'identifier les gnrations qui n'ont pas
donnes les rsultats attendus (fichiers vides dtects) tout en assurant que les ressources restent
synchronises avec les outils de gestion de versions (CVS, SVN). Dans ce contexte, la comparaison des
ressources entre 2 gnrations est vraiment trs fiable et simple. C'est pourquoi, cette action est souvent
utilise pour raliser des tests de non-rgression sur les gnrateurs. Cependant, quand elle est mal
@igure 6IB Constitution d6une c+a4ne de gnration
Acceleo 2.6 : Tutoriel utilisateur
Page $'/69
utilise, elle est source d'erreur au niveau de la gestion du code utilisateur. Autrement dit, il ne faut
jamais faire une action "Clear" sur un fichier qui contient du code manuel.
Remove : Supprime dfinitivement les fichiers et les rpertoires slectionns.
Acceleo 2.6 : Tutoriel utilisateur
Page $1/69
5.3.2 - Crer une chane de gnration sans l'assistant
Pour crer une chane de gnration sans l'assistant se placer sur le rpertoire " free.demo.weblog et faire
un clic droit. Slectionner " New>Other>Acceleo>Empty Chain (cfB @igure 6/).
Cliquer sur " Next et nommer la chane " webLog_fr_sa.chain (cfB @igure 69) et cliquer sur " Finish pour
ajouter la chane Eclipse.
La chane est cre mais elle est vide. l va falloir lui ajouter les lments ncessaires son fonctionnement.
@igure 6/B Cration d6une c+a4ne de
gnration sans assistant
@igure 69B -ommage de la c+a4ne de
gnration
Acceleo 2.6 : Tutoriel utilisateur
Page $2/69
%&;&2&1 5 !Jouter un mod)le
Slectionner la chane de gnration et effectuer un clic droit.
Slectionner " Repository>New Child>Model (cfB @igure I').
Saisir l'UR du modle dans le champ " Path de la vue " Properties :
" /free.demo.weblog/model/WebLog_fr.uml (cf @igure I1).
@igure I'B lection du mod)le
@igure I1B D"0 du mod)le
Acceleo 2.6 : Tutoriel utilisateur
Page $;/69
Cette solution reste fastidieuse et complique. l existe une manire plus simple pour choisir un modle dans
l'espace de travail Eclipse.
Pour cela :
Faire un double clic sur le modle, permet de choisir parmi les modles disponibles (cfB @igure I2).
Slectionner le modle dsir.
Slectionner le rpertoire " model . Cette slection permet d'afficher les modles prsents dans le
rpertoire. Pour slectionner un modle il suffit de le cocher et de cliquer sur " OK (cfB @igure I;).
%&;&2&2 5 !Jouter un rpertoire ci*le
Slectionner la chane de gnration et effectuer un clic droit.
Slectionner " Repository>New Child>Folder
@igure I;B lectionner un mod)le
@igure I2B 9ou*le cli3uer sur le mod)le
Acceleo 2.6 : Tutoriel utilisateur
Page $$/69
Slectionner ensuite " Folder et renseigner le champ " Path avec le repertoire cible:
" /free.demo.weblog
ou
Double cliquer sur " Folder
Choisir l'emplacement souhait (cfB @igure I$).
Cliquer sur " OK pour valider le choix du rpertoire cible.
%&;&2&; 5 !Jouter un log
Slectionner la chane de gnration et effectuer un clic droit.
Slectionner " Repository>New Child>Log
Slectionner ensuite " Log qui vient d'tre ajout et renseigner le champ " Path par :
" /free.demo.weblog/WebLog_fr.log.txt
ou
Double cliquer sur le " Log qui vient d'tre ajout la chane de gnration
Slectionner le fichier correspondant " Error Log (cfB @igureI%).
@igure I%B lectionner le Error #og
@igure I$B lectionner le
rpertoire ci*le
Acceleo 2.6 : Tutoriel utilisateur
Page $%/69
%&;&2&$ 5 !Jouter un mta5mod)le
Slectionner la chane de gnration et effectuer un clic droit.
Slectionner " Repository>New Child>Emf Metamodel
Slectionner ensuite " Emf Metamodel et renseigner le champ " Path par:
http://www.eclipse.org/uml2/1.0.0/UML
ou
Double cliquer sur le mta-modle qui vient d'tre ajout
Choisir dans la liste le mta-modle souhait (cfB @igure I6).
%&;&2&% 5 !Jouter un fic+ier de gnration
Slectionner la chane de gnration et effectuer un clic droit.
Slectionner " Repository>New Child>Generator
Renseigner le champ " Path par l'UR du fichier de gnration (.mt) souhait :
" /free.uml2.gen.java/src/org/acceleo/modules/uml2/gen/java/dao/jdbc.mt.
ou
Double cliquer sur le fichier pour choisir le fichier de gnration (.mt) souhait (cfB @igure II).
@igure I6B C+oisir le mta5mod)le sou+ait
@igure IIB C+oisir un fic+ier de gnration
Acceleo 2.6 : Tutoriel utilisateur
Page $6/69
l est possible d'ajouter autant de " Generator que l'on souhaite comme on peut le voir sur la figure 67
page 39.
l faut maintenant remplir la partie " Action Set .
Faire un clic droit sur " Action Set et slectionner " New Child>Generate .
Dans la vue " Properties il y a six champs qu'il faut remplir.
Documentation: Le nom que l'on souhaite. l est possible pour se reprer de le nommer par le nom du
fichier.
Folder: Le nom du projet.
Generator: le chemin du fichier de gnration (.mt).
Log: l'adresse du fichier d'erreur (log).
Metamodel: l'UR du mtamodle.
Model: l'adresse du modle.
Pour chaque fichier de gnration (.mt) que l'on veut gnrer il faut crer un " Generate correspondant.
Dans le cas prsent le " Generate correspondra au fichier " jdbc.mt .
Pour les autres fichiers, la manipulation est strictement identique hormis pour la proprit " Documentation
puisqu'il s'agit d'un nom choisi par l'utilisateur et diffrent pour chaque fichier (cf @igure I9).
@igure I/B #es six c+amps PropertA de !ction et
@igure I9B #es six c+amps de proprits d6un K Eenerate L
Acceleo 2.6 : Tutoriel utilisateur
Page $I/69
6 - Gnr at i on
6.1 - Lancer une chane de gnration
Maintenant que les chanes de gnration ont t cres, il est possible de gnrer les fichiers. Pour cela il
suffit de faire un clic droit sur la chane de gnration " weblog.chain et de slectionner le lanceur de la
chane de gnration " Launch (cfB @igure /').
Le rpertoire " src qui jusqu' prsent tait vide contient dsormais trois packages:
free.demo.weblog/src/org/acceleo/sample/dto
free.demo.weblog/src/org/acceleo/sample/ihm
free.demo.weblog/src/org/acceleo/sample/jdbc
Ces trois packages contiennent les fichiers java qui ont t gnrs.
L'un des trois packages contient des erreurs (free.demo.weblog/src/org/acceleo/sample/ihm). Les erreurs
prsentent dans les fichiers java sont des erreurs qui peuvent tre rsolues en important un serveur Tomcat
au projet.
@igure /'B #ancer la
c+a4ne de gnration
Acceleo 2.6 : Tutoriel utilisateur
Page $//69
6.2 - mporter un serveur Tomcat
l faut au pralable avoir une version du serveur Tomcat installe sur la machine ainsi qu'avoir installer les
plug-ins du projet WTP pour interfacer ce serveur avec Eclipse. l est possible de tlcharger le serveur
tomcat l'adresse suivante:
http://tomcat.apache.org/
et de rcuprer les plug-ins du projet WTP via le site de release simultane des projets eclipse Callisto ou en
allant directement sur le site du projet :
http://www.eclipse.org/webtools/main.php
Une fois la version du serveur installe sur la machine il faut l'importer afin qu'Eclipse le reconnaisse.
Pour cela, il faut ouvrir la vue " Servers .
Cliquer sur Window>Show View>Other (cfB @igure /1).

Slectionner Server>Servers (cfB @igure /2)
@igure /1B 0mporter un erveur
@igure /2B lectionner
erver
Acceleo 2.6 : Tutoriel utilisateur
Page $9/69
La vue " Servers est ajoute Eclipse (cf B@igure /;).
Faire un clic droit dans la vue " Servers et slectionner " New>Server (cfB @igure /$).
Slectionner le serveur Apache correspondant celui install sur la machine. Dans le cas prsent c'est
le serveur Tomcat 5.5 qui est install (cfB @igure /%).
@igure /;B #a vue erver
@igure /$B electionner erver
@igure /%B lection d6un serveur
Acceleo 2.6 : Tutoriel utilisateur
Page %'/69
Cliquer sur " Next . Choisir le rpertoire d'installation du serveur en cliquant sur " Browse (cfB @igure
/6).
Cliquer sur " Next .
Slectionner le projet assimiler au serveur et cliquer sur " Add > (cfB @igure /I).
Pour finir cliquer sur " Finish .
@igure /6B 0ndi3uer le rpertoire d6installation
@igure //B lectionner le proJet
@igure /IB Dne fois le proJet aJout
Acceleo 2.6 : Tutoriel utilisateur
Page %1/69
6.2.1 - mporter les librairies Tomcat
Maintenant que le serveur est install les erreurs apparaissent toujours dans le second package. Pour
supprimer ces erreurs il faut importer les librairies du serveur Tomcat. l suffit de se placer sur le projet, de
faire un clic droit, et de slectionner " Properties>Java Build Path (cfB @igure /9).
Slectionner " Add Externals JARs , rechercher le rpertoire d'installation du serveur Apache Software
Foundation/Tomcat 5.5/common/lib, choisir le fichier servlet-api.jar et cliquer sur " Ouvrir (cfB @igure 9').
@igure /9B !Jouter les li*rairies de .omcat
@igure 9'B lectionner la li*rairie correspondante
Acceleo 2.6 : Tutoriel utilisateur
Page %2/69
Cliquer sur " OK (cfB @igure 91).
La librairie est ajoute au " build path du projet et les erreurs disparaissent.
Le rpertoire WebContent a galement t modifi. l contient un rpertoire " jsp avec les fichiers JSP, et un
rpertoire " WEB-NF avec notamment le fichier web.xml.
6.3 - Tester l'application
Une fois le serveur install il est possible de tester l'application.
Pour cela il faut tout d'abord lancer le serveur.
Effectuer un clic droit sur le serveur prsent dans la vue " Servers .
@igure 92B Contenu des
diffrents rpertoires
@igure 91B !Jout des li*rairies au K *uild pat+ L du proJet
Acceleo 2.6 : Tutoriel utilisateur
Page %;/69
Slectionner " Start (cfB @igure 9;).
Une fois le serveur lanc l'icne " Started apparat dans la vue " Servers (cfB @igure 9$).
La vue " Console permet galement de voir que le serveur est bien lanc (cfB @igure 9%).
Ensuite, il faut ouvrir un navigateur Web et tapez l'URL suivante: http://localhost:8080/free.demo.weblog/
Une page de menu apparat alors l'cran. Cette page correspond au fichier " ndex.html (cfB @igure 96)
@igure 9;B #ancer le serveur .omcat
@igure 9$B #e serveur est lanc
@igure 9%B Nue de la Console
Acceleo 2.6 : Tutoriel utilisateur
Page %$/69
Un clic sur " Screen CreationCompte permet de crer un nouveau compte (cfB @igure 9I).
Les fonctionnalits ne sont pas implmentes, seule l'"-M est implmente.
@igure 96B =enu de free&demo&Fe*log
@igure 9IB Crer un compte
Acceleo 2.6 : Tutoriel utilisateur
Page %%/69
7 - Par amt r age
7.1 - Les chanes de gnrations
l a t expliqu en partie 5.3 comment crer une chane de gnration. Une fois la chane de gnration
cre il peut arriver que le besoin change et que la chane de gnration ne rponde plus au besoin.
l n'est alors pas obligatoire de recrer une nouvelle chane de gnration.
Acceleo permet en effet de modifier une chane de gnration existante.
7.1.1 - Modifier une chane de gnration
l faut double cliquer sur la chane de gnration modifier pour l'ouvrir dans la vue d'Eclipse (cf: Figure 98).
Pour modifier un lment il suffit de double cliquer dessus. Par exemple, si l'on souhaite modifier un fichier
de gnration il faut double cliquer sur le fichier d'extension (.mt) et choisir le nouveau fichier que l'on
souhaite. Pour choisir le nouveau fichier :
@igure 9/B #a c+a4ne de gnration Fe*log&c+ain
Acceleo 2.6 : Tutoriel utilisateur
Page %6/69
Dslectionner le fichier actuel en cliquant dessus (cfB @igure 99). Le fichier est alors dcoch
Slectionner le nouveau fichier souhait (cf: Figure 100). Le fichier se coche.
Pour valider le changement cliquer sur " OK .
7.2 - Les " logs
Les " logs permettent, en cas d'erreur lors de l'excution de la chane de gnration, de lister les
@igure 99B 9selectionner le fic+ier
@igure 1''B lectionner le nouveau fic+ier
Acceleo 2.6 : Tutoriel utilisateur
Page %I/69
vnements qui ont empch la gnration.
Le fichier de log spcifi apparat en cas d'erreur lors de la gnration (cf:Figure 101).
l suffit de double cliquer sur ce fichier pour l'ouvrir dans la fentre principale d'Eclipse. (cfB @igure 1'2).
l est trs important de penser supprimer le fichier d'erreur avant de relancer la chane de gnration. En
effet cela permet de voir si la gnration se droule normalement ou si il y a encore des anomalies.
7.3 - Les fichiers " Properties
Lors de l'analyse, il a t notifi que les packages des diffrentes classes Java taient paramtres en
fonction du script. Bien que modulaire, la modification de la politique de nommage des packages au sein
d'une entreprise implique la reprise de tous les gnrateurs de classes Java.
Acceleo incorpore un mcanisme de fichiers properties afin de pouvoir paramtrer les gnrations, par
exemple pour le nom des rpertoires, ou des packages o les fichiers sont gnrs.
Ce mcanisme va tre mis en oeuvre pour paramtrer le nom des packages dans le projet Weblog.
7.3.1 - Cration du fichier " properties"
Crer un nouveau package " org.acceleo.modules.uml2.utils dans le rpertoire " src du projet
" free.demo.weblog .
Effectuer un clic droit sur ce nouveau package et slectionner le menu " New > File .
Dans l'assistant de cration de fichier entrer le nom " config.properties (cf: Figure 103).
@igure 1'1B @ic+ier d6erreur
@igure 1'2B Contenu du fic+ier d6erreur
Acceleo 2.6 : Tutoriel utilisateur
Page %//69
Le nouveau fichier " config.properties est cr dans le nouveau package utilitaire du projet
(cf : Figure 104).
Ajouter dans ce fichier les cls :
package.format=com.enterprise
project.name=sample
@igure 1';B Crer le fic+ier
config&properties
@igure 1'$B le fic+ier QpropertiesQ
Acceleo 2.6 : Tutoriel utilisateur
Page %9/69
Lancer la chane " weblog.chain . Les fichiers sont maintenant gnrs dans le package
" com.enterprise.weblog la place de " org.acceleo.sample (cf figure 105).
Si un jour, il est dcid de changer le standard de nommage des packages, il suffit de rajouter un fichier
" new_config.properties ct du fichier " weblog.chain et d'y mettre une nouvelle valeur pour la cl
" project.name , par exemple " web.weblog (en supposant que la gamme de produit est " web pour le
weblog). Lors de la rgnration, le nom des packages inclura bien la nouvelle gamme du produit (cf figure
106).
@igure 1'%B PacMages paramtrs 7 la gnration
@igure 1'6B nouveau fic+ier QpropertiesQ permet de
nouveau nom de pacMages
Acceleo 2.6 : Tutoriel utilisateur
Page 6'/69
8 - Gest i on des vol ut i ons
8.1 - Dveloppements manuels
8.1.1 - Ajouter du code dans les servlets
l est possible d'ajouter du code dans le source gnre. Les portions de code qu'il est possible d'ajouter se
trouve entre balises :
//Start of user code
et
//End of user code
Par exemple, pour ajouter du code dans la mthode init :Pttpervlet"e3uest re3, Pttpervlet"esponse resp<
du fichier free&demo&Fe*log/src/org/acceleo/sample/i+m/CreationCompteervlet&Java, il faut procder ainsi :
Dans les balises rserves l'utilisateur on peut saisir :
//Start of user code init
if (nom.equals("Julien")){
returnCode = !"E#C$%%EC&'$%(
)
//End of user code
Puis, il faut gnrer nouveau l'application en lanant la chane de lancement.
Pour cela :
Redmarrer le serveur.
Faire un clic droit sur le serveur
Slectionner " Restart>Start (cfB @igure 1'I).
Ractualiser la page courante du navigateur Web. L'action est prise en compte.
Si on relance la chane de gnration le code est gard.
On peut refaire la mme manipulation en ajoutant du code hors des balises " Start of user code .
@igure 1'IB "elancer le serveur
Acceleo 2.6 : Tutoriel utilisateur
Page 61/69
La modification est prise en compte au nouveau lancement du serveur, cependant le code qui a t ajout
hors des balises sera supprim la prochaine gnration.
"l est donc primordial de ne pas crire de code hors des *alises rser.es cette effet.
8.2 - volutions fonctionnelles
8.2.1 - Modification du modle d'entre
Des modifications peuvent bien sr tre apportes au modle d'entre.
/&2&1&1 5 =odification d1un attri*ut
l est possible de modifier un attribut. Pour cela :
Prendre l'attribut " login de la classe " Utilisateur du package " blog dans le package " metier
(cfB @igure 1'/).
changer sa proprit " name dans la vue " Properties . Remplacer la proprit " name de valeur
" login par " identifiant .
L'exemple va porter sur le fichier gnr /free.demo.weblog/src/org/acceleo/sample/dto/UtilisateurDto.java.
@igure 1'/B #e mod)le
Acceleo 2.6 : Tutoriel utilisateur
Page 62/69
Avant la modification, les attributs taient gnrs ainsi :
pu*lic class +tilisateur,to implements Seriali-a*le {
// serial.ersion+', is used for seriali-ation.
pri/ate static final long serial.ersion+', = 01(
protected String email(
protected String prenom(
protected String nom(
protected String login(
protected String mot,easse(
Pour que les modifications soient prises en compte il faut gnrer nouveau les fichiers. l suffit de relancer
la chane de gnration (cfB 6&1 #ancer une c+a4ne de gnration).
Les attributs sont dsormais gnrs ainsi :
pu*lic class +tilisateur,to implements Seriali-a*le {
// serial.ersion+', is used for seriali-ation.
pri/ate static final long serial.ersion+', = 01(
protected String email(
protected String prenom(
protected String nom(
protected String identifiant(
protected String mot,easse(
Quand on supprime un attribut, il est supprim des fichiers gnrs. Par exemple, si on supprime l'attribut
" email du modle, il n'apparatra plus dans la dclaration des attributs du fichier java.
Acceleo 2.6 : Tutoriel utilisateur
Page 6;/69
/&2&1&2 5 !Jout d1une Classe
l est possible d'ajouter une classe au modle.
Ajouter une classe dans le package " blog .
La nommer " Administrateur .
Lui ajouter deux attributs de type String, les nommer " nom et " prenom .
Lui ajouter galement un " keywords de valeur " Entity . Pour cela faire un " Copier/Coller de celui
prsent dans la classe Utilisateur (cfB @igure 1'9).
Maintenant que la classe a t ajoute au modle, il faut sauvegarder le modle et relancer la chane de
gnration. l est possible de remarquer que de nouveaux fichiers java aient t crs (cfB @igure 11').
Si une classe avec un strotype " Screen (keywords " Screen ) avait t cre, alors la gnration aurait
galement modifie le fichier web.xml.
De mme, si la classe n'avait pas t strotype " Entity (keywords " Entity ), il n'y aurait pas eu de
nouveaux fichiers java crs.
/&2&1&; 5 uppression d1une classe
l est galement possible de supprimer une classe du modle.
@igure 1'9B !Jout d6une classe
@igure 11'B 9e nouveaux
fic+iers ont t cres
Acceleo 2.6 : Tutoriel utilisateur
Page 6$/69
Supprimer la classe " Administrateur. Pour cela faire un clic droit sur " Administrateur et slectionner
" Delete .
Sauvegarder le modle et relancer la chane de gnration.
Les fichiers correspondant la classe n'ont pas t supprims. l faut les supprimer la main ou utiliser la
chane de gnration weblog.clean.chain. Attention, le code manuellement insr dans les balises "Start of
user code (cf B /&1&1 raJouter du code dans les servlets) sera supprim. Cette chane de gnration n'est
utiliser que si il n'y a pas eu de code ajout dans les balises.
/&2&1&$ 5 "enommer une classe
l est possible de renommer une classe. La procdure est identique celle utilise pour renommer un attribut
(cfB /&2&1&1 =odification d1un attri*ut).
Une fois la classe renomme et le modle sauvegard, il faut lancer la chane de gnration.
Le rsultat est identique celui observ lors de la surpression d'une classe (cfB /&2&1&; uppression d1une
classe), c'est dire que de nouveaux fichiers java sont crs mais que les anciens sont toujours prsents
galement (cfB @igure 111). Dans l'exemple ci-dessous la classe " Utilisateur a t renomme en
" Blogger .
/&2&1&% 5 !Jout / modification d1une relation :association / +ritage<
l est possible d'ajouter ou de modifier une relation (association, hritage). Pour cela il suffit de modifier la
relation dans le modle, sauvegarder cette modification et lancer la chane de gnration. La modification
effectue apparat dans les fichiers gnrs.
@igure 111B #es nouveaux fic+iers et
les anciens
Acceleo 2.6 : Tutoriel utilisateur
Page 6%/69
8.3 - Les fichiers " lost
Si une modification dans le fichier de gnration ou dans le modle intervient et que celle-ci implique une
modification du code gnr dans les balises " Start of user code alors un fichier (.lost) est gnr.
Par exemple si l'on supprime un attribut du modle et que cet attribut est appel dans les balises " Start of
user code alors, en relanant la chane de gnration, l'ancien code est plac dans le fichier d'extension
" .lost .
Les fichiers " .lost rcuprent le code utilisateur qui n'est plus valide suite la modification.
@igure 112B Exemple de fic+ier QlostQ
Acceleo 2.6 : Tutoriel utilisateur
Page 66/69
8.4 - Acceleo Traceability
En complment de Acceleo, Obeo propose le logiciel Acceleo Traceability pour synchroniser le code gnr
avec le modle original.
Voici un exemple d' Acceleo Pro Traceability qui avertit l'utilisateur quand il modifie du code l'extrieur des
balises car celui-ci sera perdu la prochaine gnration (cf: Figure 113).
@igure 11;B !perRu de l6outil !cceleo Pro .raca*ilitA
Acceleo 2.6 : Tutoriel utilisateur
Page 6I/69
9 - Ut i l i sat i on avance
9.1 - Lancer une chane de gnration automatiquement partir d'Eclipse
l est possible de lancer une chane de gnration partir de l'icne de lancement d'application
d'Eclipse.
Cliquer sur la liste droulante de l'onglet " run .
Slectionner " Run... .
Double cliquer sur " Chain .
Remplir le champ " Name avec le nom souhait pour nommer l'action de lancement de la chane
Slectionner la chane de lancement en cliquant sur Browse (cf: Figure 114).
l est possible de slectionner plusieurs chanes de lancement.
Pour lancer la chane de gnration, il faut la slectionner dans la liste droulante de l'onglet " Run
(cf: Figure 115).
@igure 11$B lectionner une c+a4ne de
lancement
@igure 11%B #ancer la c+a4ne de
gnration
Acceleo 2.6 : Tutoriel utilisateur
Page 6//69
10 - Envi r onnement s compl ment ai r es
10.1 - La gestion de versions
Pour pouvoir grer les versions des fichiers, il faut utiliser un outil de gestion de versions tel que CVS ou
SVN.
l est possible de trouver le logiciel libre CVS sur http://www.nongnu.org/cvs/ et le logiciel libre SVN sur http://
subversion.tigris.org/. Une fois ces logiciels installs, la faon la plus simple de les utiliser est d'installer les
plugins Eclipse qui correspondent. Le plugin Eclipse pour CVS est install par dfaut. Le plugin Eclipse pour
SVN, Subclipse, peut se trouver sur http://subclipse.tigris.org/. Une fois un de ces plugins install, il est
possible de retrouver les fonctions de gestion de version dans le menu " Team du pop-up menu.
10.1.1 - Partager un nouveau projet
Si un projet n'est pas dj partag, il est possible de le partager sur un serveur.
Pour cela, faire un clic droit sur le projet partager. Dans le menu " Team cliquer sur " Share Project... .
Si plusieurs logiciels de gestion de versions sont installs (CVS est forcment install), choisir celui utiliser
(cf& figure 116).
Remplir les champs ncessaires : le host, le repository, le login et le mot de passe. Cliquer sur " Finish , les
donnes peuvent alors tre rcupres par une tierce personne.
@igure 116B C+oix de l6outil de gestion de version
Acceleo 2.6 : Tutoriel utilisateur
Page 69/69
10.1.2 - Partager ses modifications
Pour partager les modifications sur un projet, faire clic droit sur le projet. Dans le menu " Team cliquer sur
" Commit . Entrer le commentaire qui explique les modifications qui ont t faites puis cliquer sur " OK (cf&
@igure 11I). Les modifications sont visibles sur le serveur.
10.1.3 - Rcuprer les modifications d'une tierce personne
Pour rcuprer les modifications d'une tierce personne, cliquer sur Team > Update. L'outil de gestion de
version gre lui mme les possibles conflits qui peuvent apparatre et demande l'utilisateur ce qu'il doit faire
s'il n'arrive pas rgler le conflit. Une fois cette opration termine, les modifications de la tierce personne
sont visibles.
@igure 11IB @en2tre de commentaire avec N-

S-ar putea să vă placă și