Professional Documents
Culture Documents
iii
vi
Version 0.50.1
du 11/12/2004
par JeanMichel DOUDOUX
Prambule
A propos de ce document
Ce document fait suite mon premier didacticiel "Dveloppons en Java". C'est un didacticiel qui se propose de fournir des informations pratiques sur la mise en oeuvre et l'utilisation d'Eclipse et de quelques un de ces nombreux plugins. Celuici est compos de six grandes parties : 1. les bases pour l'utilisation d'Eclipse 2. le dveloppement en Java 3. les fonctions avances d'Eclipse 4. le dveloppement avanc avec Java 5. d'autres plugins Chacune de ces parties est compose de plusieurs chapitres dont voici la liste complte : Prambule Introduction Installation et excution d'Eclipse Le plan de travail (Workbench) L'espace de travail (Workspace) Les fonctions pratiques du workbench d'Eclipse Le Java development tooling (JDT) d'Eclipse Deboguer du code java Le refactoring Ant et Eclipse JUnit et Eclipse L'aide dans Eclipse CVS et Eclipse La gestion de la plateforme Des plugins pour le dveloppement avec Java Le dveloppement J2EE Java Server Faces et Eclipse JAXB et Eclipse Struts et Eclipse Le dveloppement d'interfaces graphiques Le dveloppement sans Java Eclipse et UML Eclipse et les bases de donnes Annexes Les sections qui concernent des plugins n'ont pas pour vocation d'tre une documentation complte sur l'utilisation de ces plugins mais simplement de fournir les bases pour les installer et mettre en oeuvre un minimum de fonctionnalits qu'ils proposent. Je suis ouvert toutes ractions ou suggestions concernant ce document notamment le signalement des erreurs, les points claircir, les sujets ajouter, etc. ... N'hsitez pas me contacter : jeanmichel.doudoux@wanadoo.fr Ce document est disponible aux formats HTML et PDF l'adresse suivante : http://perso.wanadoo.fr/jm.doudoux/java/
Ce manuel est fourni en l'tat, sans aucune garantie. L'auteur ne peut tre tenu pour responsable des ventuels dommages causs par l'utilisation des informations fournies dans ce document. La version pdf de ce document est ralise grce l'outil HTMLDOC 1.8.23 de la socit Easy Software Products. Cet excellent outil freeware peut tre tlcharg l'adresse : http://www.easysw.com
Note de licence
Copyright (C) 20032004 DOUDOUX Jean Michel Vous pouvez copier, redistribuer et/ou modifier ce document selon les termes de la Licence de Documentation Libre GNU, Version 1.1 ou toute autre version ultrieure publie par la Free Software Foundation; les Sections Invariantes tant constitues du chapitre Prambule, aucun Texte de Premire de Couverture, et aucun Texte de Quatrime de Couverture. Une copie de la licence est incluse dans la section GNU FreeDocumentation Licence. La version la plus rcente de cette licence est disponible l'adresse : GNU Free Documentation Licence.
Marques dposes
Sun, Sun Microsystems, le logo Sun et Java sont des marques dposes de Sun Microsystems Inc. Les autres marques et les noms de produits cits dans ce document sont la proprit de leur diteur respectif.
0.10 bta 08/04/2003 1ere version diffuse sur le web. Ajout des chapitres Junit, Ant, Aide, Dboguer du code Java Ajout des sections : importation, exportation, gnration javadoc, informations sur les plugins, le plugin Jalopy 0.20 13/07/2003 Complments ajouts au chapitre JDT Application d'une feuille de styles CSS pour la version HTML Corrections et ajouts divers Ajouts dans les chapitres "JDT", "deboguer du code Java" et "La gestion de la plateforme" Ajout du chapitre "le refactoring" , "le dveloppement sans java" et "Le dveloppement d'interfaces graphiques" Rduction de la taille des images : rduction de la taille et passage en niveau de gris pour la version PDF Corrections et ajouts divers Dveloppons en Java avec Eclipse 3
0.30
04/01/2004
Ajout des chapitres "Eclipse et les bases de donnes", "le dveloppement J2EE" et "JAXB et Eclipse" 0.40 24/05/2004 Ajouts dans le chapitre "Refactoring" et dans la section "Eclipse VE" Corrections et ajouts divers Prise en compte d'Eclipse 3.0 dans diffrents chapitres Ajout des chapitres : "Eclipse et UML", "Java Server Faces et Eclipse" et "Struts et Eclipse" 0.50 0.50.1 07/12/2004 Ajout d'une section concacre au plugin "Log4E" 11/12/2004 Remise en page complte pour viter autant que possible les blancs en bas de pages. Dcoupage en 5 parties Corrections et ajouts divers
Cette premire partie est charge de prsenter les bases de l'utilisation d'Eclipse. Elle comporte les chapitres suivants : Introduction : prsentation gnrale d'Eclipse Installation et excution : dtaille l'installation et l'excution des trois versions majeurs d'Eclipse sous Windows et Linux Le plan de travail (Workbench) : prsente le plan de travail qui fournit les lements de l'ergonomie notamment au travers des perspectives, des vues et des diteurs L'espace de travail (Workspace) : prsente l'espace de travail qui stocke les projets et leur contenu et dtaille des oprations de base sur les lment de l'espace de travail Les fonctions pratiques du plan de travail : dtaille certaines fonctions avances du plan de travail : la recherche, la gestion des tches et des signets et la comparaison d'lments
1. Introduction
Eclipse est un environnement de dveloppement intgr (Integrated Development Environment) dont le but est de fournir une plateforme modulaire pour permettre de raliser des dveloppements informatiques. I.B.M. est l'origine du dveloppement d'Eclipse qui est d'ailleurs toujours le coeur de son outil Websphere Studio Workbench (WSW), lui mme la base de la famille des derniers outils de dveloppement en Java d'I.B.M. Tout le code d'Eclipse a t donn la communaut par I.B.M afin de poursuivre son dveloppement. Eclipse utilise normment le concept de modules nomms "plugins" dans son architecture. D'ailleurs, hormis le noyau de la plateforme nomm "Runtime", tout le reste de la plateforme est dvelopp sous la forme de plugins. Ce concept permet de fournir un mcanisme pour l'extension de la plateforme et ainsi fournir la possiblit des tiers de dvelopper des fonctionnalits qui ne sont pas fournies en standard par Eclipse. Les principaux modules fournis en standard avec Eclipse concernent Java mais des modules sont en cours de dveloppement pour d'autres langages notamment C++, Cobol, mais aussi pour d'autres aspects du dveloppement (base de donnes, conception avec UML, ... ). Ils sont tous dvelopps en Java soit par le projet Eclipse soit par des tiers commerciaux ou en open source. Les modules agissent sur des fichiers qui sont inclus dans l'espace de travail (Workspace). L'espace de travail regroupe les projets qui contiennent une arborescence de fichiers. Bien que dvelopp en Java, les performances l'excution d'Eclipse sont trs bonnes car il n'utilise pas Swing pour l'interface hommemachine mais un toolkit particulier nomm SWT associ la bibliothque JFace. SWT (Standard Widget Toolkit) est dvelopp en Java par IBM en utilisant au maximum les composants natifs fournis par le systme d'exploitation sous jacent. JFace utilise SWT et propose une API pour faciliter le dveloppement d'interfaces graphiques. Eclipse ne peut donc fonctionner que sur les plateformes pour lesquelles SWT a t port. Ainsi, Eclipse 1.0 fonctionne uniquement sur les plateformes Windows 98/NT/2000/XP et Linux. SWT et JFace sont utiliss par Eclipse pour dvelopper le plan de travail (Workbench) qui organise la structure de la plateforme et les intractions entre les outils et l'utilisateur. Cette structure repose sur trois concepts : la perspective, la vue et l'diteur. La perspective regoupe des vues et des diteurs pour offrir une vision particulire des dveloppements. En standard, Eclipse propose huit perspectives. Les vues permettent de visualiser et de slectionner des lments. Les diteurs permettent de visualiser et de modifier le contenu d'un lement de l'espace de travail.
Une plateforme ouverte pour le dveloppement d'applications et extensible grce un mcanisme de plugins Plusieurs versions d'un mme plugin peuvent cohabiter sur une mme plateforme. Un support multi langage grce des plugins ddis : Cobol, C, PHP, C# , ... Support de plusieurs plateformes d'excution : Windows, Linux, Mac OS X, ... Malgr son criture en Java, Eclipse est trs rapide l'excution grce l'utilisation de la bibliothque SWT Les nombreuses fonctionnalits de dveloppement proposes par le JDT (refactoring trs puissant, compltion de code, nombreux assistants, ...) Une ergonomie entirement configurable qui propose selon les activits raliser diffrentes perspectives Un historique local des dernire modifications La construction incrmentale des projets Java grce son propre compilateur qui permet en plus de compiler le code mme avec des erreurs, de gnrer des messages d'erreurs personnaliss, de slectionner la cible (java 1.3 ou 1.4) et de mettre en oeuvre le scrapbook (permet des tests de code la vole) Une excution des applications dans une JVM ddie slectionnable avec possibilit d'utiliser un dbogueur complet (points d'arrts conditionnels, visualiser et modifier des variables, valuation d'expression dans le contexte d'excution, changement du code chaud avec l'utilisation d'une JVM 1.4, ...) Propose le ncessaire pour dvelopper de nouveaux plugins Possibilit d'utiliser des outils open source : CVS, Ant, Junit La plateforme est entirement internationalise dans une dizaine de langue sous la forme d'un plugin tlchargeable sparment Le gestionnaire de mise jour permet de tlcharger de nouveaux plugins ou nouvelles versions d'un plugin dj installes partir de sites web ddis (Eclipse 2.0). ...
Novembre 2001
1.0
La version 3.1 est en cours de dveloppement : cette version devrait permettre l'utilisation d'Eclipse avec Java 5.0. Ce document couvre essentiellement les versions 2.x et 3.0.x d'Eclipse. Diffrents pictogrammes sont utiliss pour signaler des fonctionnalits apportes par une version particulire d'Eclipse : : pour la version 2.0.x d'Eclipse : pour la version 2.1.X d'Eclipse : pour la version 3.0.X d'Eclipse Par dfaut, les fonctionnalits dcrites le sont pour la version 2.x d'Eclipse.
2. Installation et excution
Eclipse 1.0 peut tre install sur les plateformes Windows ( 98ME et SE / NT / 2000 / XP) et Linux. Eclipse 2.0 peut tre install sur les plateformes Windows ( 98ME et SE / NT / 2000 / XP), Linux (Motif et GTK), Solaris 8, QNX, AIX 5.1, HPUX 11. Eclipse 2.1 peut tre install sur toutes les plateformes sites prcdemment mais aussi sous MAC OS X. Quel que soit la plateforme, il faut obligatoirement qu'un JDK 1.3 minimum y soit install. La version 1.4 est fortement recommande pour amliorer les performances et pouvoir utiliser le remplacement de code lors du dbogage (technologie JPDA). Lors de son premier lancement, Eclipse cre par dfaut un rpertoire nomm Workspace qui va contenir les projets et les lments qui les composent. Le principe pour l'installation de toutes les versions d'Eclipse restent le mme et d'une grande simplicit puisqu'il suffit de dcompresser le contenu de l'archive d'Eclipse dans un rpertoire du systme.
Un clic sur le bouton "Oui" ouvre une bote de dialogue qui permet de slectionner la mise jour installer.
10
Il suffit de cocher la mise jour souhaite et de cliquer sur le bouton "Fin". Les mises jour sont tlcharges et installes. L'application doit tre redmarre.
L'application redmarre automatiquement aprs un clic sur le bouton "Oui", localise dans la langue du poste.
Pour la version 2.1., il faut tlcharger le fichier correspondant au systme d'exploitation utilis sur la page : http://download.eclipse.org/downloads/drops/L2.1.1_Translations200307021300/index.php La procdure d'installation est identique celle de la version 2.0. Pour la version 2.1.1., il existe aussi un patch pour les traductions tlchargeable la mme url nomm eclipse2.1.1.1SDKLanguagePackFeaturepatch.zip Ce patch doit tre install aprs avoir install les traductions initiales de la version 2.1.1 en dzippant le contenu du fichier dans le rpertoire qui contient le rpertoire Eclipse.
11
Cette demande est particulirement utile lors de l'utilisation de plusieurs espaces de travail. Si un seul et unique workspace est utilis, le plus simple est de cocher la case Utiliser par dfaut et ne plus poser la question avant de cliquer sur le bouton OK . L'espace prcis deviendra alors celui par dfaut qui sera toujours utilis par Eclipse.
12
Eclipse 3.0 possde une page d'accueil permettant d'obtenir des informations sur l'outil rparties en quatre thmes : overview : permet d'accder rapidement la partie de l'aide en ligne correspondant au thme slectionn tutorials : permet d'accder des assistants qui permettent sous la forme de didacticiel de raliser de simples applications ou plugins samples : permet de lancer des exemples d'applications avec SWT et JFace qu'il faut tlcharger sur internet whats's new : permet d'accder rapidement la partie de l'aide en ligne concernant les nouveauts d'Eclipse 3.0
Eclipse 3.0 possde une nouvelle interface lie une nouvelle version de SWT.
13
14
Il faut ajouter le rpertoire bin du JDK la variable systme PATH pour permettre au systme de trouver les excutables ncessaires. PATH=$PATH:/opt/IBMJava213/bin Si les excutables ne sont pas trouvs, une bote de dialogue affiche le message suivant :
Pour excuter Eclipse, il suffit de lancer eclipse dans un shell. Exemple : [jumbo@charlemagne eclipse]$ ./eclipse data workspace
15
Il existe deux versions pour Linux en fonction de la bibliothque graphique utilise : une utilisant Motif et une autre utilisation GTK 2. Pour la version Motif, il faut tlcharger le fichier eclipseSDK2.1.1linuxmotif.zip. Il faut dcompresser le fichier dans un rpertoire, par exemple /opt avec l'utilisateur root. Exemple :
[root@localhost opt]# unzip eclipseSDK2.1linuxmotif.zip Archive: eclipseSDK2.1linuxmotif.zip creating: eclipse/ inflating: eclipse/libXm.so.2.1 linking: eclipse/libXm.so > libXm.so.2.1 linking: eclipse/libXm.so.2 > libXm.so.2.1 creating: eclipse/plugins/ ... [java@localhost eclipse]$ ll total 2004 drwxrwxrx 5 root root 4096 Mar 27 22:11 ./ drwxrxrx 11 root root 4096 Jul 10 00:12 ../ rwrwr 1 root root 59 Mar 27 22:11 .eclipseproduct rwrwr 1 root root 15048 Mar 27 22:11 cplv10.html rwxrxrx 1 root root 41003 Mar 27 22:11 eclipse* drwxrwxrx 10 root root 4096 Mar 27 22:11 features/ rwrwr 1 root root 10489 Mar 27 22:11 icon.xpm rwrwr 1 root root 619 Mar 27 22:11 install.ini lrwxrwxrwx 1 root root 12 Jul 10 00:11 libXm.so > libXm.so.2.1* lrwxrwxrwx 1 root root 12 Jul 10 00:11 libXm.so.2 > libXm.so.2.1* rwxrxrx 1 root root 1915756 Mar 27 22:11 libXm.so.2.1* rwrwr 1 root root 4743 Mar 27 22:11 notice.html drwxrwxrx 64 root root 4096 Mar 27 22:11 plugins/ drwxrwxrx 2 root root 4096 Mar 27 22:11 readme/ rwrwr 1 root root 16549 Mar 27 22:11 startup.jar
Pour utiliser Eclipse avec un utilisateur sans privilge particulier, il faut dfinir la variable LD_LIBRAY_PATH et excuter Eclipse Exemple :
[java@localhost java]$ cd /opt/eclipse [java@localhost eclipse]$ LD_LIBRAY_PATH=/opt/eclipse:$LD_LIBRARY_PATH [java@localhost eclipse]$ /opt/eclipse/eclipse data $HOME/workspace
16
Si la variable LD_LIBRAY_PATH n'est pas correctement valorise, le message d'erreur suivant est affich et Eclipse ne peut pas se lancer. Exemple :
[java@localhost java]$ /opt/eclipse/eclipse data $HOME/workspace /opt/eclipse/eclipse: error while loading shared libraries: libXm.so.2: cannot l oad shared object file: No such file or directory
Deux versions existent pour Linux selon la bibliothque graphique utilise : une utilisant Motif une utilisant Gtk : eclipseSDK3.0linuxgtk.zip La version Gtk sera utilise dans cette section.
17
2.2.3.1. Installation par et pour un seul utilisateur Le plus simple est de dcompresser le fichier eclipseSDK3.0linuxgtk.zip dans le rpertoire home de l'utilisateur. L'inconvnient de cette mthode est que par dfaut seul cet utilisateur pourra utiliser Eclipse. Exemple :
[java@localhost eclipse]$ cp eclipseSDK3.0linuxgtk.zip ~ [java@localhost eclipse]$ cd ~ [java@localhost java]$ unzip eclipseSDK3.0linuxgtk.zip creating: eclipse/plugins/org.eclipse.pde.build_3.0.0/ inflating: eclipse/plugins/org.eclipse.pde.build_3.0.0/pdebuild.jar creating: eclipse/plugins/org.eclipse.pde.build_3.0.0/lib/ inflating: eclipse/plugins/org.eclipse.pde.build_3.0.0/lib/pdebuildant.jar inflating: eclipse/plugins/org.eclipse.pde.build_3.0.0/.options creating: eclipse/plugins/org.eclipse.pde.build_3.0.0/feature/ ... inflating: eclipse/startup.jar inflating: eclipse/icon.xpm inflating: eclipse/eclipse [java@localhost java]$ ll total 87140 drwxrxrx 3 java java 4096 oct 16 21:24 Desktop/ drwxrxrx 2 java java 4096 oct 16 22:34 Documents/ drwxrxrx 6 java java 4096 oct 18 23:23 eclipse/ rwxrr 1 java java 89113015 oct 18 23:23 eclipseSDK3.0linuxgtk.zip* rwrwr 1 java java 2 oct 16 22:23 java.sh~ drwx 3 java java 4096 oct 18 23:17 tmp/ [java@localhost java]$ cd eclipse [java@localhost eclipse]$ ll total 100 drwxrwxrx 2 java java 4096 jun 25 18:43 configuration/ rwrwr 1 java java 15049 jun 25 18:43 cplv10.html rwxrxrx 1 java java 27119 jun 25 18:43 eclipse* drwxrxrx 9 java java 4096 oct 18 23:23 features/ rwrwr 1 java java 10489 jun 25 18:43 icon.xpm rwrwr 1 java java 5810 jun 25 18:43 notice.html drwxrxrx 85 java java 4096 oct 18 23:23 plugins/ drwxrwxrx 2 java java 4096 jun 25 18:43 readme/ rwrwr 1 java java 17663 jun 25 18:43 startup.jar [java@localhost eclipse]$ ./eclipse& [1] 3093 [java@localhost eclipse]$
Le fichier eclipseSDK3.0linuxgtk.zip peut tre supprim. Le workspace a utiliser peut tre celui propos par dfaut (celui dans le rpertoire d'installation d'Eclipse)
18
L'apparence d'Eclipse depend du thme et de l'environnement graphique utilis, ici sous KDE :
2.2.3.2. Installation par root pour plusieurs utilisateurs Eclipse peut tre dcompresser dans un rpertoire accessible aux utilisateurs, par exemple /usr/local. Exemple :
[root@localhost eclipse3.0.x]# cp eclipseSDK3.0linuxgtk.zip /usr/local [root@localhost eclipse3.0.x]# cd /usr/local [root@localhost local]# ll total 87164 drwxrxrx 2 root root 4096 jan 5 2004 bin/ drwxrxrx 2 root root 4096 jan 5 2004 doc/ rwxrr 1 root root 89113015 oct 18 23:55 eclipseSDK3.0linuxgtk.zip* drwxrxrx 2 root root 4096 jan 5 2004 etc/ drwxrxrx 2 root root 4096 jan 5 2004 games/ drwxrxrx 2 root root 4096 jan 5 2004 include/ drwxrxrx 2 root root 4096 jan 5 2004 lib/ drwxrxrx 2 root root 4096 jan 5 2004 libexec/ drwxrxrx 3 root root 4096 oct 16 22:19 man/ drwxrxrx 2 root root 4096 jan 5 2004 sbin/ drwxrxrx 5 root root 4096 oct 14 01:57 share/ drwxrxrx 2 root root 4096 jan 5 2004 src/ [root@localhost local]# unzip q eclipseSDK3.0linuxgtk.zip [root@localhost local]# ll total 87168 drwxrxrx 2 root root 4096 jan 5 2004 bin/ drwxrxrx 2 root root 4096 jan 5 2004 doc/ drwxrxrx 6 root root 4096 oct 18 23:56 eclipse/ rwxrr 1 root root 89113015 oct 18 23:55 eclipseSDK3.0linuxgtk.zip* drwxrxrx 2 root root 4096 jan 5 2004 etc/ drwxrxrx 2 root root 4096 jan 5 2004 games/ drwxrxrx 2 root root 4096 jan 5 2004 include/ drwxrxrx 2 root root 4096 jan 5 2004 lib/ drwxrxrx 2 root root 4096 jan 5 2004 libexec/ drwxrxrx 3 root root 4096 oct 16 22:19 man/ drwxrxrx 2 root root 4096 jan 5 2004 sbin/ drwxrxrx 5 root root 4096 oct 14 01:57 share/ drwxrxrx 2 root root 4096 jan 5 2004 src/ [root@localhost local]# rm eclipseSDK3.0linuxgtk.zip rm: dtruire fichier rgulier `eclipseSDK3.0linuxgtk.zip'? o
19
[root@localhost local]#
Attention dans ce cas, il sera ncessaire de prciser le chemin d'un workspace utilisable en criture par l'utilisateur.
2.2.3.3. Installation des traductions L'installation des traductions se fait en dcompresssant le fichier NLpackeclipseSDK3.0.xlinuxgtk.zip, tlcharg sur le site d'Eclipse, dans le rpertoire contenant le rpertoire d'Eclipse. Exemple :
[java@localhost java]$ ll total 23664 drwxrxrx 3 java java 4096 nov 6 00:42 Desktop/ drwxrxrx 2 java java 4096 oct 19 00:00 Documents/ drwxrxrx 7 java java 4096 nov 6 11:03 eclipse/ rwrwr 1 java java 2 oct 16 22:23 java.sh~ rwxrr 1 root root 24175833 nov 6 11:02 NLpackeclipseSDK3.0.xlinuxgtk.zip* drwx 4 java java 4096 nov 6 11:00 tmp/ drwxrxrx 3 java java 4096 oct 18 23:59 workspace/ [java@localhost java]$ unzip NlpackeclipseSDK3.0.xlinuxgtk.zip [java@localhost eclipse]$ ./eclipse clean
Comme sous Windows, l'excution suivante d'Eclipse doit se faire avec l'option clean.
20
Le paramtre data permet de prciser l'emplacement du workspace. Ce paramtre est utile pour pouvoir utiliser plusieurs workspaces. Exemple sous Windows : Eclipse data C:\Test\workspace
Le paramtre ws permet sous les environnements de type Unix de prciser la bibliothque graphique utilise. Les valeurs possibles sont "motif" et "gtk". La paramtre arch permet de prciser l'architecture d'excution. La paramtre vmargs permet de prciser des arguments la machine virtuelle qui excute Eclipse.
21
Au lancement d'Eclipse, une seule fentre s'ouvre contenant le plan de travail (Workbench). Le plan de travail est compos de perspectives dont plusieurs peuvent tre ouvertes mais une seule est affiche en mme temps. A l'ouverture, c'est la perspective "Ressource" qui est affiche par dfaut.
Une perspective contient des sous fentres qui peuvent contenir des vues (views) et des diteurs (editors) La partie gauche du plan de travail est compose d'une barre qui contient une icne pour chaque perspective ouverte et une icne pour ouvrir une nouvelle perspective. L'icne enfonce est celle de la perspective actuellement affiche. Le titre de la fentre du plan de travail contient le nom de la perspective courante. Eclipse possde dans le plan de travail une barre de menu et une barre de tches. Elles sont toutes les deux dynamiques en fonction du type de la sous fentre active de la perspective courante. Eclipse propose de nombreux assistants pour faciliter la ralisation de certaines taches comme la cration d'entits.
22
Chaque perspective possde une icne qui permet de l'identifier plus rapidement. La version 1.00 d'Eclipse possde les perspectives suivantes : Perspective Debug Help Java Java Type Hierarchy Plugin Development Resource Scripts Team Gestion du travail collaboratif Icne Rle Dbogueur Aide en ligne Ecriture de code Java Navigation dans la hirarchie et les lments des classes Cration de plugin Gestion du contenu de l'espace de travail
Perspective Dbogage Java Navigation Java Hirarchies des types Java Dveloppement de plugin Ressource Installation/Mise jour Exploration du rfrentiel CVS Perspective Dbogage Java Navigation Java Hierarchie de type Java Dveloppement de plugin Ressource Synchronisation de l'quipe Exploration du rfrentiel CVS
Icne Rle Dbogueur Ecriture de code Java Navigation dans la hirarchie et les lments des classes
Cration de plugin Gestion du contenu de l'espace de travail Installation et mise jour de plugins via le web Gestion du travail collaboratif avec CVS
Icne Rle Dbogueur Ecriture de code Java Navigation dans la hirarchie et les lments des classes
23
Cliquer sur l'icne dans la barre des perspectives Utiliser l'option "Ouvrir" du menu "Perspective" (Eclipse 1.0) ou l'option "Ouvrir la perspective" du menu "Fentre" (Eclipse 2.0) Lors d'un clic sur l'icne , un menu flottant s'ouvre pour permettre la slection de la perspective ouvrir. Si elle n'appartient pas la liste, elle est accessible en cliquant sur l'option Autre .
Eclipse 1.0 Eclipse 2.0 Un clic sur l'option Autre... ouvre une boite de dialogue dans laquelle il est possible de slectionner la nouvelle perspective afficher.
Eclipse 1.0
Eclipse 2.0
La perspective par dfaut (celle qui est affiche l'ouverture de l'application) est indique. Il est possible d'ouvrir plusieurs perspectives d'un mme type en mme temps. Cependant une seule perspective, quelque soit son type est affiche un moment donn. Toutes les perspectives ouvertes possdent une icne dans la barre des perspectives. Pour en afficher une, il suffit de cliquer sur son icne. La perspective courante est celle dont l'icne est enfonce. Dans Eclipse 3, la position de la barre des perspectives peut tre modifie. Par dfaut, elle se situe en haut droite. Le menu contextuel Verrouiller permet de modifier son positionnement.
L'option Afficher le texte , coche par dfaut, permet d'avoir cot de l'icne un nom court facilitant l'identification de chaque perspective. Dveloppons en Java avec Eclipse 24
Pour raliser l'opration inverse, il faut faire glisser la fentre au dessus d'une vue existante : elles seront alors empiles.
25
L'onglet de l'diteur contient le libell de l'lment trait. Une petite toile apparat droite de ce libell si l'lment a t modifi sans tre sauvegard. Pour fermer l'diteur contenant l'lment en cours, il suffit de cliquer sur l'icne en forme de croix de l'onglet. Une confirmation sera demande en cas de fermeture alors que l'lment a t modifi sans sauvegarde. Il est aussi possible d'utiliser l'option "Fermer" et "Fermer tout" du menu "Fichier" du plande travail pour fermer respectivement le fichier en cours ou tous les fichiers. Si l'lment dit ne possde pas d'diteur ddi dans Eclipse, il tente d'ouvrir un outil associ au type de la ressource dans le systme d'exploitation. Quick Diff est une fonctionnalit qui permet de visualiser rapidement les modifications apportes dans un diteur par rapport une source (la version sur disque dans l'espace de travail par dfaut).
Ainsi les lignes ajoutes et modifies apparaissent avec une couleur diffrente dans la barre gauche de la zone d'dition.
En laissant le curseur de la souris sur la zone colore, un bulle d'aide affiche le contenu de la zone originale.
Pour activer ou dsactiver Quick Diff, il est possible d'utiliser la combinaison de touche Ctrl+Maj+Q ou d'utiliser l'option Activer/Dsactiver Quick Diff du menu contextuel de la Dveloppons en Java avec Eclipse 26
barre de gauche. Les paramtres de Quick Diff peuvent tre configurs dans les prfrences sous l'arborescence Plan de travail / Editeurs/ Quick Diff .
L'option "Afficher les diffrences dans la rgle de prsentation" permet de marquer les lignes modifies par une zone blanche dans la barre droite de l'diteur.
Plusieurs raccourcis ont t ajouts dans les diteurs : Raccourcis clavier Alt+flche vers le haut / bas Ctrl +Alt+flche vers le haut Ctrl+Maj+Entre Maj+Entre Ctrl+Maj+Y Ctrl+Maj+X Rle Dplacement d'un ensemble de lignes slectionnes Copie d'un ensemble de lignes slectionnes Insrer une ligne au dessus de la ligne courante Insrer une ligne en dessous de la ligne courante Conversion du texte slectionn en minuscule Conversion du texte slectionn en majuscule
27
Les vues possdent deux menus : un menu associ la sous fentre activable en cliquant sur la petite icne en haut gauche. Les options de ce menu concerne la sous fentre elle mme.
le second menu est activable en cliquant sur l'icne en forme de triangle dont la base est en haut Les options de ce menu concerne le contenu de la vue notamment le tri ou le filtre.
Eclipse 3.0 permet de rduire une vue ou d'agrandir une vue ou un diteur.
28
Inversement un clic sur le bouton permet de restaurer la taille de la vue ou de l'diteur. Un clic sur le bouton permet d'agrandir la vue ou l'diteur.
Cette option est particulirement intressante car elle vite d'avoir modifier l'agencement des vues et des diteurs pour maximiser la taille de l'un d'entre eux.
29
L'agrandissement et la restauration peuvent aussi tre obtenues en double cliquant dans la barre de titre de la vue ou de l'diteur.
Avec Eclipse 2.0, l'opration quivalente est effectue en slectionnant l'option "Afficher la vue" du menu "Fentre".
Si des ressources doivent tre sauvegardes, une bote de dialogue apparat contenant ces ressources. Il faut indiquer celles qui doivent tre enregistres et cliquer sur le bouton "OK".
La vue Progression affiche des informations sur l'tat d'avancement des traitements
31
L'espace de travail est l'entit qui permet de conserver les projets et leur contenu. Physiquement c'est un rpertoire du systme d'exploitation qui contient une hirarchie de fichiers et de rpertoires. Il y a d'ailleurs un rpertoire pour chaque projet la racine de l'espace de travail. Il est possible de parcourir cette arborescence et d'en modifier les fichiers avec des outils externes Eclipse. L'espace de travail contient tous les lments dvelopps pour le projet : il est possible de crer, de dupliquer, de renommer ou de supprimer des lments. Ces oprations de gestion sont ralises dans la vue "Navigateur" de la perspective "Ressource".
32
A partir de la vue "Navigateur", il est possible d'ouvrir le fichier slectionn dans un diteur : avec l'diteur par dfaut associ au type du fichier, il suffit de double cliquer sur le fichier dans le navigateur ou d'utiliser l'option "Ouvrir" du menu contextuel. avec un autre diteur en utilisant l'option "Ouvrir Avec" du menu contextuel L'association d'un type de fichier avec un diteur peut tre faite dans les prfrences. La vue "Navigateur" contient une option particulirement pratique pour retrouver une ressource : l'outil "Accder ". Cet outil permet partir d'un motif (Pattern) de retrouver les ressources qui respectent le motif dans leur nom. L'option "Accder / Ressource" du menu contextuel de la vue "Navigateur" permet d'ouvrir une bote de dialogue contenant l'outil.
Au fur et mesure de la saisie du motif, la liste des fichiers correspondant s'affiche. Il suffit de choisir le fichier et de cliquer sur le bouton "OK" pour fermer la bote de dialogue et slectionner le fichier dans la vue "Navigateur". Par dfaut, la vue "Navigateur" affiche tous les projets contenus dans l'espace de travail. Il est possible de limiter la vue la hirarchie d'un projet ou d'un dossier en le slectionnant et en utilisant l'option "Suivant" du menu contextuel. Les boutons permettent de passer d'un mode l'autre.
Le menu contextuel propose aussi des options pour copier, dplacer, renommer et supprimer une ressource.
33
Il est ainsi possible de crer rapidement un projet, un rpertoire ou un fichier. Si le fichier est d'un type particulier, un clic sur l'option "Autre" ouvre un assistant qui permet sur sa premire page de slectionner le type de l'entit crer.
La cration se fait grce un assistant qui demande le nom du nouveau projet. Ce nom ne doit pas contenir de blanc ou des caractres non alphabtiques.
34
Un clic sur le bouton "Fin" dclenche la cration du projet. Le projet apparait dans la vue Navigateur.
Si l'espace d travail contient dj plusieurs projets, il est possible d'associer un ou plusieurs de ceux ci avec le nouveau en cours de cration. Pour raliser cette association, il suffit de cliquer sur le bouton "Suivant" pour afficher le second volet de l'assistant. Il suffit de cocher les projets concerns.
Il est possible de crer des projets particuliers selon le type d'applications dvelopper.
35
Il suffit ensuite de saisir le nom sans espace ni caractre non alphabtique et de cliquer sur le bouton "Fin". Le nouveau rpertoire apparat dans la vue "Navigateur".
Si un diteur est associ au type du nouveau fichier, l'diteur est ouvert avec le nouveau fichier.
Il suffit alors de slectionner dans la vue "Navigateur" le rpertoire de destination et d'effectuer une des oprations suivantes : appuyer sur la combinaison de touches Ctrl + V slectionner l'option "Coller" du menu contextuel
Si le rpertoire de destination slectionn est identique au rpertoire d'origine du fichier, une message est affich.
37
4.7. Importation
L'importation permet d'inclure dans l'espace de travail un certains nombre de fichiers externes. Attention, l'importation ne peut se faire que dans un projet existant. Il faut utiliser le menu "Fichier/Importer"
38
Slectionnez le rpertoire, puis cochez chacun des lments concerns. Il est trs important de vrifier et de modifier si ncessaire le rpertoire de destination qui doit tre l'un des projets de l'espace de travail. En cliquant sur le bouton "Filtrer les types ...", une bote de dialogue permet de slectionner les fichiers concerns partir de leurs extensions.
Il suffit de slectionner les extensions parmi celles proposes, de saisir ventuellement d'autres extensions et de cliquer sur le bouton "OK". Le filtre est alors directement appliqu sur la slection.
39
Une fois la slection termine, il suffit de cliquer sur le bouton "Fin" pour lancer l'importation. Au cas ou une ressource existerait dj dans la destination, un message demande la confirmation du remplacement.
4.8. Exportation
Pour exporter tout ou partie du workspace, il faut utiliser le menu "Fichier/Exporter".
L'assistant demande de slectionner le format d'exportation. Si le format choisi est "Systme de fichiers", l'assistant demande les informations ncessaires : les fichiers exporter etle rpertoire de destination
Attention : pour que la structure des rpertoires soient conserves dans la cible, il faut obligatoirement que les Dveloppons en Java avec Eclipse 40
rpertoires soient slectionns. Si le format choisi est "Javadoc", l'assistant demande les informations ncessaires : les fichiers exporter, le rpertoire de destination et les options utiliser lors de la gnration
Les deux pages suivantes permettent de prciser des options pour l'outil Javadoc. Un clic sur le bouton "Fin" permet de gnrer la documentation. Si le format choisi est "Fichier Zip", l'assistant demande les informations ncessaires : les fichiers exporter et le nom du fichier zip gnrer.
41
Un clic sur le bouton "Fin" permet de crer le fichier zip contenant tous les lments slectionns. Si le format est "Fichier Jar", l'assistant demande les informations ncessaires : le ou les projets exporter, le fichier jar crer et les options utiliser.
Un clic sur le bouton "Suivant" affiche une nouvelle page de l'assistant pour prciser certaines options.
Un clic sur le bouton "Suivant" affiche une nouvelle page de l'assistant pour prciser le fichier manifest.
42
43
Eclipse fournit dans le plan de travail plusieurs outils trs pratiques qui permettent : d'effectuer des recherches de grer une liste de tches faire de grer une liste de signets d'lments de comparer des lments
L'onglet "Recherche d'un fichier" permet de faire une recherche de fichiers contenant un texte respectant un motif. Ce motif peut tre saisi ou slectionn dans la liste droulante partir des prcdents motifs recherchs. Dveloppons en Java avec Eclipse 44
Il est possible de saisir les caractres recherchs et d'utiliser trois caractres dont la signification est particulire : * : reprsente zro ou plusieurs caractres quelconques ? : reprsente un caractre quelconque \ : permet de dspcialiser le caractre *, ? et \ Il est possible de vouloir tenir compte de la casse en cochant la case "Respect maj/min". Il est aussi possible de restreindre la recherche certains fichiers en prcisant un motif particulier. Un clic sur le bouton "Parcourir" ouvre une boite de dialogue qui permet de slectionner un ou plusieurs types prdfinis.
Une barre de progression indique l'volution de la recherche et le nombre de fois ou le motif est trouv. Un clic sur le bouton "Annuler" permet d'interrompre la recherche.
45
Il est possible d'utiliser les expressions rgulires pour effectuer une recherche. Pour cela, il faut cocher la caser correspondante dans la bote de dialogue.
Dans la zone de saisie du mot rechercher, l'appui sur la combinaison de touches Ctrl+espace ouvre un assistant qui facilite la saisie d'une expression rgulire.
46
Le bouton permet de passer l'occurence suivante quelque soit l'lment qui la contienne. Lors du changement de l'lment qui contient l'occurence, celui ci est ouvert dans l'diteur. Il est possible de supprimer une ou plusieurs occurences dans la vue "Recherche". Le menu contextuel propose plusieurs options en fonction de la situation actuelle : "Supprimer l'occurence slectionne" : cette option permet de supprimer l'occurence courante de l'lment en cours "Supprimer les occurences en cours" : permet de supprimer toute les occurences de l'lment et l'lement de la liste "Supprimer toutes les occurences" : permet de supprimer tous les lments La vue "Recherche" affiche le rsultat de la recherche courante mais elle mmorise aussi les prcdentes recherches. Pour afficher les rsultats des prcdentes recherches, il suffit de slectioner la recherche en utilisant le bouton . Un menu affiche la liste des prcdents motifs de recherche et le nombre d'occurences trouves. La recherche courante est coche.
Il est toujours possible de ritrer la recherche en utilisant l'option "Nouvelle recherche" du menu contextuel de la vue. La vue Recherche propose deux faons d'afficher les rsultats d'une recherche : arborescence (par dfaut)
tableau
47
Le bouton
Il est possible d'accder l'lment associ la tche en double cliquant sur la tche ou en slectionnant l'option "Accder " du menu contextuel de la tche. L'lment est ouvert dans l'diteur avec le curseur positionn sur la ligne associe la tche.
48
Un clic sur le bouton "OK" cre la tche et une marque particulire apparait sur la ligne concerne dans la barre de gauche de l'diteur.
49
Cette marque reste associe la ligne mme si la position de la ligne dans le fichier change (par ajout ou suppression de lignes dans la ressource).
A partir de la vue "Signets", pour ouvrir un lment dans l'diteur, il y a trois possibilits : double cliquer sur le signet slectionner l'option "Accder " du menu contextuel associ au signet cliquer sur le bouton une fois le signet slectionn Il est aussi possible partir d'un signet de slectionner l'lment dans la vue "Navigateur" en utilisant l'option "Afficher dans le navigateur" du menu contextuel.
50
Pour crer un signet sur une ligne de l'lment, il suffit de positionner le curseur sur la ligne dsire dans l'diteur et de slectionner l'option "Ajouter un signet" du menu contextuel de la barre de gauche de l'diteur.
Le signet est ajout dans la liste des signets et une marque est affiche dans la barre de gauche de l'diteur sur la ligne concerne.
51
Si les deux fichiers possdent des diffrences, un diteur particulier s'ouvre. Cet diteur spcial pour les comparaisons, affiche chaque ligne des deux fichiers dans deux colonnes. Une colonne centrale permet de voir de faon graphique les diffrences grce des lignes.
Dans la barre centrale, les lignes en gris fonc sont identiques, les lignes en blanc sont des diffrences entre les deux fichiers.
La vue de comparaison de fichier contient une barre d'outils qui permet de naviguer dans les diffrences et de les reporter pour effectuer une synchronisation slective.
La flche vers le haut et le bas permet de naviguer dans les diffrences respectivement la suivante et la prcdente. Les quatre premiers boutons permettent respectivement : de copier tout le document de gauche dans le document de droite de copier tout le document de droite dans le document de gauche de reporter la diffrence courante de gauche dans le document de droite de reporter la diffrence courante de droite dans le document de gauche
52
Cette seconde partie est charge de prsenter les bases de l'utilisation d'Eclipse pour le dveloppement avec Java. Elle comporte les chapitres suivants : Le Java Development Tooling (JDT) : Dtaille le JDT qui fournit des outils pour permettre le dveloppement avec Java Dboguer du code Java : dtaille la perspective Dbogage ddie la recherche et la correction des bugs. Le refactoring : dtaille les puissantes fonctionnalits de refactoring proposes par Eclipse Ant et Eclipse : prsente l'utilisation de l'outil Ant avec Eclipse JUnit et Eclipse : prsente l'utilisation de JUnit avec Eclipse pour raliser l'automatisation des tests unitaires.
53
Le Java Development Tooling (JDT) est inclus dans Eclipse pour fournir des outils de dveloppement en Java. Il inclus plusieurs plugins et apporte : les perspectives "Java" et "Navigation Java" les vues "Packages" et "Hierarchie" les diteurs "Java" et "Scrapbook" les assistants : pour crer de nouveaux projets, packages, classes, interfaces, ... Dans l'espace de travail, il dfinit un projet de type particulier pour les projets Java. L'arborescence de ces projets contient un fichier particulier nomm .classpath qui contient la localisation des bibliothques utiles la compilation et l'excution du code.
Pour demander directement la cration d'un projet "Java", il suffit de cliquer sur l'cone d'outils. L'assistant demande le nom du projet. Dveloppons en Java avec Eclipse
de la barre
54
Ce nom de projet ne doit pas dj tre utilis dans l'espace de travail courant sinon un message d'erreur est affich.
En cliquant sur le bouton "Fin", le projet est cr avec des paramtres par dfaut. Pour modifier certains paramtres avant la cration du projet, suffit de cliquer sur le bouton "Suivant" :
La modification de ces paramtres sera dtaille dans la section suivante. Une fois les paramtres modifies, cliquer sur le bouton "Fin". Le projet apparait dans la vue "Packages" de la perspective.
55
Les proprits "Chemin de compilation Java" sont regroupes dans quatres onglets : Onglet Source Projets Bibliothques Ordre et exportation Rle Permet de prciser le rpertoire qui va contenir les sources et celui qui va contenir le rsultat des compilations Permet d'utiliser d'autre projet avec le projet courant Permet d'ajouter des bibliothques au projet Permet de prciser l'ordre des ressources dans la classpath
L'onglet "Source" permet de prciser le rpertoire qui va contenir les sources : par dfaut, c'est le rpertoire du projet lui mme (l'option "utiliser le dossier projet en tant que dossier source" est slectionn). Pour stocker les ressources dans un rpertoire ddi, il faut slectionner l'option "Utiliser les dossiers sources contenus dans le projet". La liste permet de slectionner le ou les rpertoires. Le bouton "Crer un dossier" ouvre une bote de dialogue qui demande le nom du rpertoire.
Il suffit de saisir le nom, par exemple "sources" et cliquer sur le bouton "OK" Par dfaut, ds qu'un premier rpertoire contenant les sources est slectionn, Eclipse propose de crer un rpertoire bin qui va contenir le rsultat des diffrentes compilations.
56
L'onglet "Projets" permet d'ajouter des projets contenus dans l'espace de travail au classpath.
Il suffit de cocher les projets inclure dans le classpath. L'onglet "Bibliothques" permet d'ajouter des bibliothques externes au projet notamment des fichiers .jar.
Les bibliothques incluses dans le classpath du projet courant sont affiches dans la liste. Pour ajouter une nouvelle bibliothque contenue dans l'espace de travail, il suffit de cliquer sur "Ajouter des fichiers jar". Pour ajouter des fichiers jar qui ne sont pas contenus dans l'epsace de travail, il suffit de cliquer sur le bouton "Ajouter des fichiers jar externes".
Une boite de dialogue permet de slectionner le fichier jar. En cliquant sur le bouton "Ouvrir", le fichier jar est ajout dans la liste. Dveloppons en Java avec Eclipse 57
Le bouton "Avances ... " permet d'ajouter d'autres entits au classpath notamment des rpertoires qui contiennent des fichiers compils.
Le bouton "Editer" permet de modifier les caractristiques de la bibliothque (son chemin d'accs dans le cas d'un fichier jar). Le bouton "Supprimer" permet de supprimer une bibliothque du classpath. L'onglet "Ordre et exportation" permet de modifier l'ordre des bibliothques dans le classpath, de prciser la cible des lments gnrs (le rpertoire qui va les contenir) et de dfinir les ressources qui seront utilisables par les autres projets de l'espace de travail lorsque le projet sera li avec eux.
58
Cliquez sur le bouton "Fin", pour crer le nouveau package. Le package apparait dans la vue "Packages".
L'assistant demande de renseigner les diffrentes caractristiques de la nouvelle classe : le projet et le package d'appartenance, le nom, les modificateurs, la classe mre, les interfaces implmentes. Enfin, il est possible de demander l'assistant de gnrer certaines mthodes. Si un projet ou un package est slectionn dans la vue "Packages", celui ci est automatiquement repris par l'assistant. L'ajout d'une interface implmente se fait en la slectionnant dans une liste. Dveloppons en Java avec Eclipse 59
Pour ajouter une interface, il suffit de double cliquer dessus ou de la slectionner et d'appuyer sur le bouton "Ajouter". Une fois toutes les interfaces ajoutes, il suffit de cliquer sur le bouton "OK". Toutes les mthodes dfinies dans la ou les interfaces slectionnes seront prsentes dans le code source de la classe gnre. Si le package saisi n'existe pas dans le projet, celui ci sera cr en mme temps que la classe. Une fois toutes les donnes utiles renseignes, il suffit de cliquer sur le bouton " Fin " pour que la classe soit gnre et que l'diteur s'ouvre avec le contenu de son code source.
L'assistant demande de renseigner les diffrentes caractristiques de la nouvelle interface : le projet et le package d'appartenance, le nom, les modificateurs ainsi que les ventuelles interfaces hrites. Dveloppons en Java avec Eclipse 60
Une fois toutes les donnes utiles renseignes, il suffit de cliquer sur le bouton " Fin " pour que l'interface soit gnre et que l'diteur s'ouvre avec le contenu de son code source.
Chaque lment de l'arborescence possde une petite icne en fonction en son type : Icne Type de l'lment Projet de type Java Package Elment Java : classe ou interface Interface Java Classe public Java Classe Java pouvant tre excute (possdant une mthode main()) Classe protected Classe package friendly Classe private Champ public Champ private
61
Champ protected Champ package friendly Mthode public Mthode private Mthode protected Mthode package friendly Le bouton Le bouton Le bouton permet de masquer les champs dfinis dans les lments Java. permet de masquer les membres statiques. permet de masquer tous les membres qui ne sont pas publics. et de
Il est possible de restreindre les entits affiches dans la vue package. Il suffit de cliquer sur bouton slectionner l'option " Filtres ".
Il suffit de cocher les filtres qui doivent tre appliqus. A partir de l'diteur, il est possible de slectionner dans la vue "Package", l'lment en cours d'dition en utilisant l'option "Afficher dans la vue package" du menu contextuel.
62
Pour afficher la hirarchie d'un lment, il y a plusieurs possibilits : dans la vue Package slectionner l'lment et utiliser l'option "Ouvrir la hirarchie des types" du menu contextuel. dans l'diteur, utiliser le menu contextuel "Ouvrir la hirarchie des types" Elle se compose de deux parties : une partie suprieure qui affiche la hirarchie de l'lment. une partie infrieure qui affiche la liste des membres de l'lment
Le bouton
Il suffit de slectionner l'lment concern et de cliquer sur le bouton "OK". Le bouton permet d'afficher la hirarchie des classes mres et des interfaces qu'elles implmentent de l'lment courant.
Le bouton menu permet de changer la prsentation de la vue : : les deux parties sont affiches horizontalement : les deux parties sont affiches verticalement : n'affiche que la partie qui prsente la hirarchie
63
permet de masquer les champs permet de masquer les membres statiques. permet de masquer tous les membres qui ne sont pas publics.
la compltion de code le formatage du code source l'importation et l'exportation de code via un assistant une forte synergie avec le dbogueur Pour ouvrir un lment dans l'diteur, il y a deux faons principales : double cliquer sur un lment dans la vue "Navigateur" double cliquer sur un lment dans la vue "Packages" L'diteur peut tre invoqu sur un fichier .java ou un fichier .class. Dans le cas d'un fichier .class, si le fichier source est disponible dans l'IDE, alors l'diteur affiche le contenu du code source.
De chaque ct de la zone d'dition, il y a une colonne qui peut contenir de petites icnes pour fournir des informations l'utilisateur. Par exemple, si l'on fait hriter une classe d'une classe dont le package n'est pas import, un clic sur la petite ampoule jaune permet d'obtenir des propositions de corrections.
Il suffit de slectionner une des actions proposes dans la liste pour que celle ci soit automatiquement mise en oeuvre. Un aperu des modifications impliques par l'action slectionne est affich dans une bulle d'aide. Le bouton de la barre d'outils permet, s'il est slectionn, d'afficher une bulle d'aide contenant des informations sur l'lment sous lequel est le curseur.
Une description plus dtaille peut tre obtenue en positionnant le curseur sur l'lment et en appuyant sur la touche F2 ou en slectionnant l'option " Afficher une description de type infobulles" du menu " Editer ".
65
Les mthodes hrites qui sont rcrites sont signales par une petite icne.
Un clic sur cette petite icne permet d'ouvrir l'diteur sur la mthode de la classe mre.
Cette fonction peut tre appele alors qu'aucune ou une partie du code complter est saisie. Dveloppons en Java avec Eclipse 66
La compltion de code s'adapte au contexte dans lequel elle est appele. Par exemple, elle peut tre appele pour complter une clause d'importation. Dans ce cas, elle propose une liste de packages en tenant compte du code dj saisi.
L'diteur peut gnrer la structure d'un commentaire Javadoc dans le source. Par exemple, avant une mthode, il suffit de saisir /** puis d'appuyer sur la touche " Entre ".
L'appel de la compltion de code en appuyant sur les touches Ctrl + Espace permet aussi de faciliter la saisie des commentaires de type Javadoc.
67
La compltion de code permet de gnrer une classe interne partir d'une interface.
Aprs la saisie de la parenthse ouvrante, il suffit d'appuyer sur les touches Ctrl + Espace. L'diteur va gnrer la classe interne qui implmente l'interface.
Il suffit de rajouter le ; la fin de la dclaration de la classe interne et mettre le code ncessaire la place du commentaire reprsentant une tche faire. La compltion de code permet aussi de dfinir des mthodes dfinies dans une interface implmente dans la classe ou de redfinir une mthode hrite.
Dans le code du corps de la classe, il suffit d'appuyer directement sur les touches Ctrl + Espace. L'diteur propose la liste des mthodes implmenter ou rdfinir en fonction de la dclaration de la classe. La signature de la mthode slectionne est gnr dans le code.
68
Par dfaut, dans le cas de la redfinition d'une mthode, l'appel la mthode correspondante de la classe mre est appele.
Si la mthode est surcharge, alors Eclipse demande de choisir la mthode utiliser pour ainsi dterminer avec prcision les paramtres afficher dans la bulle d'aide.
69
Il est possible demander dans l'diteur de code d'afficher une bulle d'aide contenant la liste des membres d'un type. Pour cela, il suffit de mettre le curseur sur un type ou une mthode et d'appuyer sur la combinaison de touches Ctrl+F3.
Il est possible de filtrer les lments en saisissant les premiers caractres des membres afficher :
Les lignes concernant le membre slectionn sont marqus par une partie grise dans la colonne de gauche de l'diteur. Les modifications apportes dans le code source (ajout, modification ou suppression de membres) sont automatiquement rpercutes dans la vue "Structure". Le bouton de la barre d'outils permet de limiter l'affichage dans l'diteur du membre slectionn dans la vue "Structure".
70
Il est possible de modifier ces couleurs par dfaut dans les prfrences (menu Fentres/Prfrence) Il faut slectionner l'lment Java/Editeur dans l'arborescence. Cet lment possde quatre onglets. L'onglet syntaxe permet de modifier les couleurs.
71
Il suffit de slectionner l'lment concern dans la liste droulante et de slectionner la couleur qui lui est associe en cliquant sur le bouton couleur. Une bote de dialogue permet de slectionner la nouvelle couleur utiliser.
Il suffit de slectionner le modle insrer pour qu'il soit immdiatement insrer dans le code. Il est possible d'ajouter, de modifier ou de supprimer un modle en utilisant les prfrences (menu Fentre/Prfrences). Il suffit de slectionner dans l'arborescence "Java/Modles"
72
73
La fonctionnalit "Organisation des importations" est trs pratique car elle permet d'insrer automatiquement les clauses imports avec les package requis par le code. Par exemple : une variable de type Socket est dclare, sans que le package java.net ne soit import
Pour ajouter automatiquement la clause d'importation, il suffit d'utiliser l'option "Source/Organiser les importations" du menu contextuel.
La clause import est insre dans le code. Si un lment est contenu dans plusieurs packages, une bote de dialogue demande la slection du type importer.
Cette fonctionnalit supprime aussi automatiquement les importations qui sont inutiles car aucune classe incluse dans ces packages n'est utilise dans le code. Certains rglages de cette fonctionnalit peuvent tre effectus dans les prfrences (menu "Fentre/Prfrences"). Il suffit de slectionner " Java/Organisation des importations " dans l'arborescence.
74
Les importations sont mises jour lors d'un copier/coller d'une portion de code source. Cette nouvelle fonctionnalit trs pratique permet lors d'un copier/coller d'un morceau de code d'une classe dans une autre de mettre jour les importations requises. Attention : cette fonctionnalit ne s'applique que si le copier et le coller est fait dans Eclipse.
Il suffit de slectionner les mthodes ncessaires pour qu'une gnration par dfaut soit effectue dans le code.
75
Il est possible de crer directement des mthodes de type getter/setter ou le constructeur par dfaut en utilisant la combinaison Ctrl+espace dans le corps d'une classe Exemple : demander la cration d'un setter pour le champ chane.
76
Le module de formatage de code a t entire rcrit et propose plusieurs fonctionnalits intressantes : il propose deux profils prdfinis (convention java et Eclipse 2.1) non modifiable sans duplication il permet de crer son propre profil il propose un aperu du style slectionn changer des profiles entre plusieurs installations d'Eclipse 3 par import/export Les prfrences permettent de mettre en oeuvre ces nouvelles fonctionnalits.
Le bouton Afficher permet de voir les diffrents options qui composent le profil.
Le bouton Crer permet de crer son propre style partir d'un style existant.
77
Il faut saisir le nom, slectionner le profil d'origine et cliquer sur le bouton OK La configuration des paramtres du profil est particulirement riche et permet un niveau de dtails trs important.
Dans la perspective Java, il est possible de demander le formatage du code source de tous les fichiers d'un package ou d'un projet en utilisant l'option Source / Formater du menu contextuel des lments. Une boite de dialogue demande la confirmation car l'opration ne peut tre annule.
78
Puis, il faut utiliser l'option " Source / Mettre en commentaires " du menu contextuel de l'diteur.
Pour supprimer les commentaires sur une portion de code, il suffit de slectionner la portion de code et d'utiliser l'option " Source / Supprimer la mise en commentaire " du menu contextuel. Les options de menu Source / Mettre en commentaire et Source / Supprimer les commentaires sont remplaces par une unique option Source / Ajout/suppression de la mise en commentaires qui effectue l'opration en fonction du contexte. L'option Source / Mettre en commentaire un bloc du menu contextuel permet de mettre en commentaire la portion de code slectionner grce un commentaire de type multiligne. Exemple Dveloppons en Java avec Eclipse 79
Rsultat :
Pour utiliser cette fonctionnalit, il est aussi possible d'utiliser la combinaison de touches Ctrl+Maj+/ L'option Source / Supprimer ma mise en commentaire un bloc permet l'opration inverse.
Puis utiliser l'option " Source / Entourer d'un bloc try / catch ". L'diteur analyse le code et gnre la cause try / catch qui va capturer toutes les exceptions qui peuvent tre leves dans le bloc de code slectionn.
80
Chacune des instructions catch est marque avec une tache " bloc catch autognr " pour indiquer au dveloppeur d'ajouter le code ncessaire au traitement de l'exception. Si le bloc de code ne contient aucun appel de mthode susceptible de lever une exception, une bote de dialogue demande si l'instruction catch doit capturer une exception de type RuntimeException.
Les erreurs sont signales par une cone ronde rouge contenant une croix blanche dans les vues suivantes : dans l'diteur, la ou les lignes contenant une ou plusieurs erreurs sont marques avec cette icne
81
dans la vue "Tches", une entre pour chaque erreur est cre pour faciliter leur recencement et leur accs dans la vue "Packages", tous les lments allant du fichier source au projet, sont marqus de la petite icne Dans l'diteur, le simple fait de laisser le pointeur de la souris sur la petite icne permet d'afficher une bulle d'aide qui prcise l'erreur.
et
Ces mcanismes sont aussi utilisables au cours de la saisie du code Java dans l'diteur. Eclipse est capable de dtecter un certain nombre d'erreurs et de les signaler.
En positionnant le curseur sur la partie de code souligne en rouge, une bulle d'aide fournie des informations sur l'erreur.
Un clic sur la petite icne en forme d'ampoule jaune, permet d'ouvrir une fentre qui propose des solutions de corrections
82
La seconde fentre permet de prvisualiser les modifications qui seront apportes par la proposition choisie.
Pour masquer la zone, il suffit de cliquer sur le petit icne change d'apparence :
Les paramtres de cette fonctionnalit peuvent tre modifis dans les prfrences.
83
mode normal au mode avanc, il suffit d'utiliser la combinaison de touche Ctrl+Maj+Ins Le paramtrage de ce mode ce fait dans les prfrences.
84
Les occurrences sont marques sous la forme d'annotations. Il est possible d'utiliser les boutons et pour se positionner sur l'occurrence suivante ou prcdente. Il faut cependant que les annotations de type occurrences soient coches dans le menu droulant associ aux boutons.
85
Il suffit alors de cliquer sur l'ampoule ou d'utiliser la combinaison de touche Ctrl+1 pour activer l'assistant.
Les oprations proposes par l'assistant le sont fonction du contexte. Les diffrentes oprations proposes sont nombreuses et facilitent souvent la ralisation de petites tches fastidieuses raliser manuellement, par exemple : ajouter un bloc else une instruction if
86
87
Il est alors possible de slectionner les paramtres du nouveau constructeur et les diffrentes options pour que le code du constructeur soit gnr.
6.4.22. Raccourci clavier pour avoir accs aux fonctions de modification du code source
L'diteur propose un menu contextuel pour accder rapidement aux fonctions de modification du code source en utilisant la combinaison de touche Alt+Maj+S
Ce menu droulant propose diffrentes options : relancer les prcdentes excutions listes dans la premire partie du menu l'option "Excuter en tant que" permet de lancer l'application dans trois modes diffrents (Application java, Test JUnit et plan de travail d'excution) l'option "Excuter" ouvre une bote de dialogue pour paramtrer prcisment les options d'excution L'option "Excuter en tant que / Application Java" lance la mthode main() d'une application. L'option "Excuter" ouvre une bote de dialogue qui permet de saisir tous les paramtres d'excution.
88
La boite de dialogue se compose de six onglets. L'onglet "Main" permet de slectionner le projet et la classe de ce projet qui contient la mthode main() excuter. L'onglet "Arguments" permet de prciser les arguments passs l'application et la machine virtuelle. L'onglet "JRE" permet de slectionner le JRE utiliser lors de l'excution. L'onglet "Chemin d'accs aux classes" permet de modifier la liste et l'ordre des bibliothques utilises lors de l'excution. Cet onglet permet de modifier la liste dfinie dans le projet qui est celle utilise par dfaut. L'onglet "Commun" permet de prciser le type de lancement et le mode d'excution et de dbogage. Une fois tous les paramtres voulus renseigns, il suffit de cliquer sur le bouton " Excuter " pour lancer l'application.
La vue " Console " permet de voir les donnes qui sont envoyes dans le flux standard de sortie et d'erreurs.
Les messages ayant pour origine une exception sont aussi envoys dans cette vue.
89
Pour rsoudre le problme, il faut aller dans l'arborescence "Java/Javadoc" des prfrences, cliquer sur le bouton "Parcourir" et slectionner le fichier javadoc.exe du JDK utiliser.
Cliquez sur le bouton "OK" pour valider les modifications. La gnration de la documentation au format Javadoc se fait avec un assistant. Il faut lui indiquer : le ou les projets concerns, la visibilit des membres inclure, le doclet utiliser et le rpertoire de destination.
90
Cliquez sur le bouton "Suivant" La page suivante de l'assistant permet de prciser des options pour l'outil Javadoc.
Une fois les options configures, cliquez sur le bouton "Suivant". La page suivante de l'assistant permet de prciser d'autres options. Dveloppons en Java avec Eclipse 91
En cliquant sur "Fin", la gnration de la documentation est effectue. L'assistant demande si l'emplacement javadoc du projet doit tre mis jour.
Il est conseill de rpondre "Oui" pour permettre d'avoir accs cette documentation partir de l'diteur en appuyant sur les touches "Shift" + "F2". Le dtail de la gnration est affich dans le vue "Console".
92
Un clic sur le bouton "Editer" permet de modifier les donnes du JRE dfini dans Eclipse.
93
L'option "Historique local" du menu contextuel propose 4 options : " Comparer ... "
Cette option permet de comparer la version contenue dans l'diteur avec celles contenues dans l'historique. Il n'est pas possible de reporter les modifications avec cette option. " Remplacer par l'lment prcdent " Cette option permet de remplacer la version de l'diteur par la dernire contenue dans l'historique : elle correspond la dernire sauvegarde. " Remplacer par ... "
Il suffit de slectionner la version dsire et de cliquer sur le bouton "Remplacer". " Restaurer partir de ... " Cette option permet de restaurer des lments contenus dans l'historique mais qui ne sont plus prsents dans l'diteur de code.
94
Il suffit de cocher le ou les lments et de slectionner la version de l'historique restaurer et de cliquer sur le bouton "Restaurer".
Dans la vue "Package", il faut slectionner le fichier source puis utiliser l'option " Source / Externaliser les chanes " du menu contextuel. Eclipse analyse le code source la cherche de chanes de caractres et affiche l'assistant " Externalisation des chanes ".
La premire page de l'assistant permet de slectionner les chanes de caractres traiter dtectes par Eclipse. Pour chaque chane, il est possible de changer le nom de la cl associe la chane de caractres et de prciser si la chane doit tre traite ou non. Pour modifier la cl, il est possible de cliquer sur la cl et de saisir le nouveau nom ou de slectionner la ligne Dveloppons en Java avec Eclipse 95
Pour indiquer si la chane doit tre traite, il est possible de cliquer plusieurs fois sur la case cocher de la ligne correspondante pour obtenir le symbole correspondant la valeur voulue ou de cliquer sur le bouton " Convertir ", " Jamais convertir " ou " Ignorer " aprs avoir slectionn la ligne dsire. Un clic sur le bouton " Suivant " permet de prciser des informations sur le fichier de ressource qui sera gnr.
Un clic sur le bouton " Suivant " affiche une liste des problmes dtects.
Un clic sur le bouton " Suivant " permet d'afficher une page qui prvisualise les modifications qui vont tre apportes. Dveloppons en Java avec Eclipse 96
Il est possible de slectionner tout ou partie des modifications en les cochant. Un clic sur le bouton "Fin" met en oeuvre les modifications.
Il suffit de saisir le dbut du nom de la classe ou de l'interface pour que la liste des entits rpondant au critre se construise de faon incrmentale.
97
Il est aussi possible de saisir un motif l'aide des caractres ? pour reprsenter un caractre quelconque unique et * pour reprsenter aucun ou plusieurs caractres quelconques. La zone qualificatif affiche le ou les packages ou l'entit est dfinie. Ce nom de package est suivi du nom du projet si l'entit est dfinie dans l'espace de travail ou du nom du fichier qui contient la version compile pour une entit externe. Une fois l'lment voulu slectionn, un clic sur le bouton " OK " ouvre l'diteur avec cette entit.
Une "page de testeur de code" est physiquement un fichier contenant du code java et ayant une extension .jpage La seule page de l'assistant permet de slectionner le rpertoire qui va contenir le fichier ainsi que son nom. Par dfaut, l'extension .jpage est ajoute. Un clic sur le bouton "Fin" permet de gnrer le fichier et d'ouvrir l'diteur avec son contenu. Le grand avantage est de pouvoir tester des morceaux de code sans avoir crer une classe et une mthode main() et de bnficier de fonctionnalits particulires pour tester ce code.
98
Exemple :
Lors de l'dition du code contenu dans le scrapbook, la barre d'outils est enrichie de plusieurs boutons qui permettent d'utiliser les principales fonctionnalits du scrapbook. Bouton Rle Permet d'excuter un morceau de code et d'valuer le rsultat de l'excution Permet d'afficher dans l'diteur de code, le rsultat de l'excution d'un morceau de code Permet d'excuter un morceau de code et d'afficher le rsultat dans la console Permet d'arrter l'excution dans la machine virtuelle Permet de dfinir les importations ncessaires Les trois premiers boutons ne sont utilisables que si un morceau de code est slectionn dans le scrapbook. Le quatrime bouton n'est utilisable que si une machine virtuelle excute du code du scrapbook. La fonction " Inspecter " permet de visualiser, dans la vue " Expressions ", les valeurs des objets contenus dans le code slectionn. Pour la mettre en oeuvre, il suffit de slectionner un morceau de code dans l'diteur du scrapbook et de cliquer sur le bouton ou d'utiliser l'option " Inspecter " du menu contextuel.
La fonction " Affichage du rsultat de l'excution " permet d'excuter un morceau de code et d'afficher le rsultat de l'excution dans l'diteur juste aprs la fin de la slection du morceau de code. Pour mettre en oeuvre cette fonctionnalit, il faut slectionner un morceaux de code dans l'diteur du scrapbook.
99
L'affichage insre le type entre parenthse et la valeur du rsultat dans l'diteur. La fonction " Excuter " permet d'excuter d'un morceau de code et d'afficher le rsultat dans la vue " Console ". Pour mettre en oeuvre cette fonctionnalit, il faut slectionner un morceau de code dans l'diteur du scrapbook.
Lors de l'excution de code dans le scrapbook, une machine virtuelle ddie est lance pour cette excution. Pour pouvoir relancer une excution, il faut arrter le machine virtuelle prcdemment lance. L'arrt de cette machine virtuelle peut se faire en cliquant sur le bouton . Lors de l'excution de code dans le scrapbook, si une erreur de syntaxe est dtecte, celle ci est signale directement dans le code de l'diteur Exemple :
100
Lors de l'excution de ce morceau de code, l'erreur suivante est affiche dans l'diteur
La structure d'un fichier java classique n'tant pas respecter dans le scrapbook, la gestion des clauses d'import est gre de faon particulire. Exemple :
Pour ajouter une clause import, il cliquer sur le bouton menu contextuel.
101
Un clic sur le bouton " Ajouter un type " permet d'importer une classe ou une interface dans le scrapbook. .
La zone de saisie du type permet une recherche incrmentale dans toutes les entits dfinies dans le chemin de compilation du projet. Un clic sur le bouton " Ajouter un Package " permet d'importer un package
La zone de saisie du package permet une recherche incrmentale du package dsir parmi tous ceux dfinis dans le chemin de compilation du projet. Enfin pour supprimer l'importation d'une entit, il suffit de la slectionner et de cliquer sur le bouton " Supprimer ". L'assistant de code, est bien sre disponible dans l'diteur du scrapbook toujours en utilisant la combinaison de touches "Ctrl" + "Espace".
102
La nouvelle classe est cre et l'diteur de code ouvre son source. Pour faciliter la rcriture des mthodes utiles, il est possible d'utiliser l'option source / Remplacer/Implmenter les mthodes ... du menu contextuel de l'diteur de code.
103
Il suffit de cocher chaque mthode dsire et de cliquer sur le bouton Ok . Le code source est enrichi avec la ou les mthodes slectionnes : Exemple :
/* (nonJavadoc) * @see java.awt.Component#paint(java.awt.Graphics) */ public void paint(Graphics arg0) { // TODO Raccord de mthode autognr super.paint(arg0); }
Pour excuter une applet, il faut utiliser l'option Excuter en tant que / Applet du bouton Excuter de la barre d'outils. Dveloppons en Java avec Eclipse 104
105
Par dfaut, la perspective "Dbogage" affiche quelques vues aussi prsentes dans la perspective Java (les vues "Structure" et "Console") ainsi que l'diteur de code Java. Elle affiche aussi plusieurs vues particulirement ddies au dbogage.
Cette vue possde plusieurs icnes qui permettent d'agir sur les lments affichs. Icne Rle Reprendre l'excution prcdemment interrompue Interrompre l'excution du processus Demande de mettre fin au processus Enlve de la liste tous les processus qui sont termins
Excute la ligne courante et arrte l'excution sur la premire ligne de code incluse dans la premire mthode de la ligne courante (raccourci : F5) Excute la ligne courante et arrte l'excution avant la ligne suivante (raccourci : F6) Excute le code de la ligne courante jusqu' la prochaine instruction return de la mthode (raccourci : F7) Affiche ou non le nom pleinement qualifis des objets
L'excution d'un processus est automatiquement suspendu dans les cas suivants : un point d'arrt est rencontr une exception non capture est propage jusqu'au sommet de la pile d'appel
107
La liste des lments d'une collection est affiche dans la vue Variable si la variable inspecte est une collection.
Le bouton
Un double clic sur un des points d'arrts permet d'ouvrir l'diteur de code directement sur la ligne ou le point d'arrt est dfini. Cette action est identique l'utilisation de l'option "Accder au fichier" du menu contextuel ou un clic sur le bouton de la barre de titre de la vue. Il est possible grce au menu contextuel de contrler les points d'arrts. L'option "Nombres d'occurences" permet de prciser le nombre fois ou le point d'arrt excut sera ignor avant qu'il n'intrrompe l'excution. Ceci est particulirement pratique lorsque l'on dbogue du code contenu dans une boucle et que l'on connait l'itration qui pose problme. Dveloppons en Java avec Eclipse 108
Lors du clic sur l'option "Nombres d'occurences", une bote de dialogue permet de prciser le nombre de passage sur le point d'arrt ignorer.
Ce nombre est indiqu dans la vue "Points d'arrts", prcd du libell "nombre d'accs".
Il est possible d'activer ou de dsactiver le point d'arrt slectionn respectivement grace l'option "Activer" ou "Dsactiver". L'option "Supprimer" permet de supprimer le point d'arrt slectionn. Il est aussi possible d'utiliser le bouton de la barre de titre de la vue. L'option "Supprimer tout" permet de supprimer tous les points d'arrts dfinis. Il est aussi possible d'utiliser le bouton de la barre de titre de la vue. L'option "Proprits ..." permet d'ouvrir une bote de dialogue pour rgler les diffrents paramtres du point d'arrt slectionn.
109
Un de ces paramtres les plus intressants est la possibilit de mettre une condition d'activation du point d'arrt. Il suffit pour cela de cocher la case "Activer la condition" et de la saisir dans la zone de texte prvue cet effet. Dans cette zone de texte, l'assistant de compltion de code est utilisable.
Dans cette vue, il est aussi possible de demander l'arrt de l'excution non pas l'excution d'une ligne de code mais la lever d'une exception particulire. Pour cela, il suffit de cliquer sur le bouton . Une bote de dialogue permet de slectionner l'exception concerne.
Il est possible de prciser si l'arrt se fait sur une exception intercepte, non intercept ou dans les deux cas. Ce type de point d'arrt possde les mmes proprits que les points d'arrts lis une ligne de code. Une case cocher devant chaque point d'arrt permet d'activer ou non un point d'arrt.
110
Le bouton permet de demander la dsactivation de tous les points d'arrts enregistrs dans l'espace de travail.
Pour ajouter une nouvelle expression, il suffit d'utiliser l'option du menu contextuel. Une boite de dialogue permet de saisir l'expression.
L'option "Rvaluer l'expression de contrle" permet de recalculer la valeur de l'expression. L'option "Editer l'expression de contrle" permet de modifier l'expression.
111
Il est aussi possible d'ajouter directement une expression dans la vue en utilisant l'option "Assistant de contenu" du menu contextuel.
Il faut slectionner le membre ou la variable concern. Pour obtenir des informations sur sa valeur, il suffit de slectionner l'expression dans la vue. Diverses actions sont alors disponibles avec les boutons dans la barre de titre de la vue ou dans les options du menu contextuel : inspecter : excution et valuation dans la vue "Expressions" afficher : afficher le rsultat dans la vue "Affichage" excuter : excuter l'expression slectionne. Il est ainsi possible de modifier la valeur d'une variable
112
Le plus simple pour lancer le dbogage d'une application est de slectionner l'option Dboguer en tant que / Application Java L'option "Dboguer ... " permet de fournir des paramtres prcis en vue de l'excution d'une application sous le dbogueur. Un assistant permet de slectionner la classe et de prciser les paramtres.
Il ne reste plus qu' mettre en oeuvre les diffrentes fonctionnalits proposes par les vues de la perpective pour dboguer le code.
113
Lors d'une demande d'inspection d'une variable dans l'diteur affichant le code, une bulle d'aide affiche les valeurs de la variable.
Pour accder la vue expression, il suffit de rutiliser la combinaison de touche Ctrl+Maj+I. Dans la fentre affichant le code, l'inspection d'une variable ouvre une bulle d'aide qui affiche en popup les informations sur la collection
114
8. Le refactoring
Eclipse intgre de puissantes fonctionnalits pour faciliter le refactoring. Le refactoring consiste modifier la structure d'un fichier source et si ncessaire propager ces modifications dans les autres fichiers sources pour maintenir autant que possible l'intgrit du code existant. Un menu nomm Propager les modifications permet d'utiliser certaines de ces fonctionnalits : il est prsent dans le menu principal et dans de nombreux menus contextuels. Chacune de ces fonctionnalits est applicable sur un ou plusieurs types d'entits selon le cas : projets, classes et membres d'une classe. Certaines de ces fonctionnalits possdent un raccourci clavier.
Type de modification
Fonctionnalits
Entit(s) concerne(s)
Raccourci clavier
Renommer
projets, packages, classes, champs, mthodes, variables locales, Alt+Maj+R paramtres projets, packages, classes, mthodes et champs statiques mthodes Alt+Maj+V
Dplacer Structure du code Changer la signature de la mthode Convertir une classe anonyme en classe imbrique
classes anonymes
Convertir un type imbriqu classes imbriques au niveau suprieur Transfrer Structure au niveau de la classe Extraire Extraire une interface Utiliser le supertype si possible Intgrer Extraire la mthode Structure l'intrieure d'une classe Extraire la variable locale mthodes ou champs mthodes ou champs classes classes mthodes, constantes et variable locales morceau de code slectionn morceau de code slectionn pouvant tre transform en Alt+Maj+I Alt+Maj+M Alt+Maj+L
115
variable Extraire une constante morceau de code slectionn pouvant tre transform en constante
L'accs aux fonctions de refactoring est contextuel : seules les fonctions applicables dans le contexte courant peuvent tre actives. L'diteur propose un menu contextuel pour accder rapidement aux fonctions de refactoring en utilisant la combinaison de touche Alt+Maj+T
Les fonctions proposes le sont en fonction du contexte (le type d'entit sur lequel le curseur est plac).
Avant de pouvoir utiliser ces fonctionnalits, il faut sauvegarder l'lment qui sera modifi sinon un message d'erreur est affich.
L'usage de ces fonctions utilise toujours le mme principe de fonctionnement : 1. slection de l'lment concern par la fonction de refactoring 2. appel de la fonction en utilisant l'option du menu Propager les modifications 3. renseigner les informations utiles la fonction dans la bote de dialogue 4. prvisualiser et valider individuellement les modifications qui seront apportes 5. demander la mise en oeuvre des modifications en cliquant sur Ok (ceci peut tre fait sans demander la prvisualisation) Les fonctionnalits du refactoring sont accessibles partir des vues "Packages" et "Structure" ou de l'diteur de code Java selon l'entit concerne par la modification. Dans les vues, il suffit de slectionner le ou les lments concerns. Dans l'diteur de code, il faut slectionner le nom de l'lement ou de positionner le curseur dessus avant d'appeler la fonctionnalit.
116
Toutes les fonctionnalits utilisent un assistant qui propose toujours la fin un bouton Apercu > permettant d'ouvrir une bote de dialogue qui permet de prvisualiser chacune des modifications rsultant de l'usage de la fonction.
Une arborescence permet d'afficher chacun des lments qui sera modifi ainsi que toutes les modifications pour ces lments. Il est possible de cocher ou non tout ou partie des modifications pour qu'elles soient appliques ou non. La partie infrieure prsente, pour l'lment slectionn, le code source actuel gauche et le code source tel qu'il sera aprs l'application de la fonction droite. Un clic sur le bouton OK permet de mettre en oeuvre toutes les modifications qui sont coches.
Il faut slectionner l'option Extraire la mthode ... du menu principal ou du menu contextuel Propager les modifications . Une boite de dialogue permet de saisir le nom de la mthode et de slectionner le modificateur d'accs.
117
Dans le cas ou le code slectionn contient une ou plusieurs variables, la bote de dialogue contient en plus la liste des variables dtectes dans le code.
118
Il faut saisir le nom de la mthode, slectionner son modificateur d'accs et ventuellement modifier les paramtres puis cliquer sur le bouton "OK". La liste des variables dtectes dans le code est affiche dans la liste des paramtres. Pour modifier le nom d'un des paramtres, il suffit de le slectionner et de cliquer sur le bouton Editer... .
Le bouton Aperu permet de voir et de valider les modifications qui seront apportes.
8.2. Intgrer
L'intgration permet de remplacer l'appel d'une mthode par le code contenu dans cette mthode.
Puis il faut utiliser l'option Propager les modifications/Intgrer... du menu principal ou contextuel.
119
En fonction du contexte d'appel, une bote de dialogue permet de slectionner la porte des modifications. Si le code slectionn ne correspond pas une mthode, un message d'erreur est affich.
8.3. Renommer
La fonction "Renommer" permet d'attribuer un nouveau nom une entit prsente dans l'espace de travail. La grand intrt de raliser une telle opration via cette fonctionnalit plutt que de le faire la "main" et qu'elle automatise la recherche et la mise jour de toute les rfrences l'lement dans l'espace de travail. Les exemples de cette section utilisent les deux classes suivantes :
Le renommage concerne l'entit slectionne dans la vue "Package" ou "Structure" ou sous le curseur dans Dveloppons en Java avec Eclipse 120
l'diteur de code Java. Par exemple, pour renommer une mthode, il suffit de positioner le curseur sur le nom de la dclaration d'une mthode dans le code source et slectionner l'option Propager les modifications / Renommer du menu contextuel.
Il suffit alors de saisir le nouveau nom. Eclipse permet de renommer la mthode dans sa classe de dfinition mais remplace aussi tous les appels de la mthode contenue dans l'espace de travail.
Pour renommer une classe, il y a deux possibilits : selectionner la classe dans la vue Packages ou positionner le curseur sur la dfinition du nom de la classe dans l'diteur. Puis il faut utiliser l'option Renommer du menu contextuel Propager les modifications .
Il est possible de prciser les types d'entits qui doivent tre mise jour. A la validation, Eclipse effectue toutes les modifications ncessaires suite au renommage de la classe, notamment le remplacement tous les endroits dans l'espace de travail ou la classe est utilise.
121
Si Eclipse dtecte des problmes potenciels lors de l'analyse de la demande, il affiche dans une boite de dialogue la liste de ces problmes et demande un confirmation avant de poursuivre les traitements.
122
8.4. Dplacer
La fonction "Dplacer" permet de dplacer certains lments prcis notamment une classe dans l'espace de travail pour la dplacer dans un autre package. La grand intrt de raliser une telle opration via cette fonctionnalit est d'automatiser la recherche et la mise jour de toute les rfrences l'lement dans l'espace de travail. Par exemple, pour dplacer une classe dans un autre package, il faut slectionner la classe dans la vue "Packages" et de slectionner l'option "dplacer" du menu "Propager les modifications"
En plus du dplacement de la classe, les clauses import correspondantes sont modifies dans les classes qui utilisent la classe dplace.
Si le code slectionn dans l'diteur de code Java ne correspond pas une entit concerne par cet action, un message d'erreur est affich.
123
Dans l'diteur de code il faut slectionner ou mettre le curseur sur un lment statique, avant d'utiliser la fonctionnalit. Une boite de dialogue permet de slectionner la classe dans laquelle la mthode va tre transfre.
Le bouton "Parcourir" permet d'ouvrir une bote de dialogue pour slectionner la classe de destination.
Les actions ralises par les boutons "Ajouter" et "Supprimer" sont assez explicite. Le bouton "Editer" permet de modifier le paramtre slectionn.
124
Les boutons "Haut" et "Bas" permettent de modifier l'ordre du paramtre slectionn. La valeur par dfaut est importante car elle sera utilise lors de la modification de l'utilisation de la mthode, pour viter les erreurs de compilation. Si le code slectionn dans l'diteur de code lors de l'appel de la fonction ne correspond pas une entit concerne par cet action, un message d'erreur est affich.
La bote de dialogue permet maintenant aussi de renommer le nom de la mthode. Le type peut tre recherch grce un assistant en utilisant la combinaison de touche Ctrl+Espace.
125
L'onglet "Exceptions" permet de modifier les exceptions propager par la mthode Lors des mises jours lies cette fonctionnalit, la documentation Javadoc de la mthode sera mise jour.
Une bote de dialogue permet de saisir les informations concernant la classe qui sera gnre.
La nouvelle classe imbrique est cre en tenant compte des informations saisies.
126
Lors de la l'appel de la fonction, une boite de dialogue permet de prciser des informations sur la classe qui va tre dplace.
127
Le nom pour l'instance de dlimitation permet de stocker une instance de la classe englobante si la classe avait besoin de l'accs des membres de l'ancienne classe englobante.
8.8. Extraire
Cette fonction permet de dplacer la dclaration d'un membre d'une classe fille dans une de ces classes meres. Pour utiliser cette fonction, il faut slectionner un membre d'une classe fille ou positionner le curseur sur un de ces membres sinon un message d'erreur est affich.
Une bote de dialogue permet de slectionner le ou les membres concerns dont celui partir duquel la fonction a t appele.
128
Il suffit de cocher le ou les membres concernes et de slectionner la classe mre dans la liste droulante. Pour les mthodes, le bouton "Editer" permet de slectionner l'action qui sera ralise.
L'action "extraire" permet de dplacer la dclaration et le code de la mthode dans la classe mre slectionne. L'action "dclarer abstrait dans la dclaration" permet de dclarer la classe choisie abstraite avec une dclaration de la mthode elle aussi abstraite. Dans ce dernier cas, le code de la mthode est laiss dans la classe fille en tant que rdfinition.
129
8.9. Transferer
Cette fonction permet de transferer une mthode dans les classes filles. Pour utiliser cette fonction il faut slectionner un membre d'une classe possdant au moins une classe fille ou mettre le curseur sur un de ces membres dans l'diteur de code. Si la fonction est appele sur une classe qui ne possde pas de classe fille, un message d'erreur est affich.
Une bote de dialogue permet de slectionner le ou les membres concerns par le transfert.
Pour une mthode, le bouton "Editer" permet de slectionner l'action qui sera raliser.
L'action "transfert" permet de dplacer la dclaration et le code de la mthode dans la ou les classes filles. L'action "laisser la dclaration abstraite" permet de laisser la dclaration abstraite de la mthode dans la classe mre.
130
Si la partie slectionne ne correspond pas un nom de classe, un message d'erreur est affich.
Il suffit ensuite d'utiliser l'option Extraire une interface du menu Propager les modifications . Une boite de dialogue permet de prciser le nom de l'interface et de slectionner les membres dclarer dans l'interface.
Pour respecter les spcifications du langage Java, les membres qu'il est possible d'intgrer dans l'interface sont des mthodes et des constantes publiques, par exemple :
131
Lors de l'appel de cette fonction, une bote de dialogue permet de slectionner une des classes mre du type slectionn.
La prvisualisation permet de voir les modifications qui seront apportes dans le code.
132
Si l'utilisation du super type slectionn n'est pas possible (par exemple car une mthode utilise n'est pas dfinie dans le type slectionn), aucune modification n'est faite dans le code et l'aperu affiche le message suivant :
Si la slection ne correspond pas une variable locale, un message d'erreur est affich.
133
Une bote de dialogue permet de prciser le nom du champ, le modificateur d'accs et l'endroit dans le code o le champ sera initialis.
134
Il faut ensuite utiliser l'option Encapsuler la zone du menu Propager les modifications . Si la slection dans le code ne correspond pas un champ de la classe, un message d'erreur est affich.
Une boite de dialogue permet de prciser les options pour la gnration du getter et du setter
Le rsultat de l'excution gnre le getter et le setter et remplace l'utilisation du champ par ces mthodes.
En slectionnant l'option conserver les rfrences de zones , ces mthodes ne sont pas utilises dans la classe o le champ est utilis.
135
Puis utiliser l'option Extraire la variable locale du menu Propager les modifications .
Une bote de dialogue permet de saisir le nom de la variable, de prciser si toutes les occurrences doivent tre modifies et si la variable doit tre une constante. Si la slection dans le code source est incorecte, un message d'erreur est affich.
136
Puis d'utiliser l'option Extraire une constante ... du menu Propager les modifications . Une boite de dialogue apparat pour prciser le nom de la constante crer et son modificateur d'accs.
Il est possible de prciser si toutes les occurrences de la valeur doivent tre remplaces dans le code source. Il est aussi possible de prciser l'utilisation de la qualification de la constante avec le nom de la classe dans laquelle elle est dfinie.
137
Il suffit de slectionner le type dsir et de cliquer sur le bouton Ok pour que le code soit mise jour.
Cette fonctionnalit est trs utile car elle facilite la mise en oeuvre d'une bonne pratique de programmation consistant utiliser un super type comme type d'une variable lorsque cela est
138
possible.
139
Cette fonction permet de remplacer une expression utilise dans une mthode par un paramtre fourni cette mthode. Il faut positionner le curseur sur une expression littrale et appeler la fonction.
En cliquant sur le bouton Ok , le paramtre est ajout dans la signature de la mthode et la valeur littrale est remplace par le paramtre.
140
9. Ant et Eclipse
Ant est un projet du groupe ApacheJakarta. Son but est de fournir un outil crit en Java pour permettre la construction d'applications (compilation, excution de taches post et pr compilation ... ). Ces processus de construction sont trs importants car ils permettent d'automatiser des oprations rptitives tout au long du cycle de vie de l'application (dveloppement, tests, recette, mise en production ... ). Ant pourrait tre compar au clbre outil make sous Unix. Il a t dvelopp pour fournir un outil de construction indpendant de toute plateforme car crit avec et pour Java. Il repose sur un fichier de configuration XML qui dcrit les diffrentes tches qui devront tre excutes par l'outil. Ant fournit un certain nombre de tches courantes qui sont codes sous forme d'objets dvelopps en Java. Le fichier de configuration contient un ensemble de cibles (target). Chaque cible contient une ou plusieurs tches. Chaque cible peut avoir une dpendance envers une ou plusieurs autres cibles pour pouvoir tre excute. Pour obtenir plus de dtails sur l'utilisation de Ant, il est possible de consulter la documentation de la version courante l'url suivante : http://jakarta.apache.org/ant/manual/index.html
141
Il faut saisir le nom du rpertoire qui va contenir les sources (par exemple src) et cliquer sur le bouton "OK".
En cliquant sur "Oui", Eclipse va automatiquement crer un rpertoire bin qui va contenir le rsultat des compilations des sources.
Cliquez sur le bouton "Yes". Il faut ensuite dplacer les fichiers .java existant dans le rpertoire src en effectuant un copier/coller dans la vue "Navigateur". Il faut ensuite crer un rpertoire build contenant deux sous dossiers : lib et doc. Ces dossiers vont contenir respectivement les fichiers de distribution gnrs (.jar, .war, .ear selon le type d'application) et la documentation des classes au format Javadoc.
Le fichier est automatiquement reconnu comme tant un fichier de configuration pour Ant : une icne particulire contenant une fourmi est associe au fichier. Il suffit ensuite d'diter le fichier pour insrer les paramtres d'excution. Exemple : afficher un message
<?xml version="1.0"?> <project name="TestAnt1" default="bonjour"> <target name="bonjour"> <echo message="Premier test avec Ant!"/> </target> </project>
Un diteur particulier est ddi l'dition du fichier build.xml de Ant. Il propose notamment un achvement du code pour les tags en utilisant la combinaison de touches Ctrl + espace.
143
Une fois le contenu du fichier saisi, il suffit de l'enregistrer. Les erreurs dans le fichier de configuration sont signales dans l'diteur avec possibilit d'obtenir une bulle d'aide prcisant le problme en laissant le curseur de la souris sur la petite icnes rouge avec une croix blanche.
A la sauvegarde du fichier de configuration, les erreurs persistantes sont signales dans la vue Erreurs
L'diteur de fichier de configuration de Ant propose une compltion de code avec une bulle d'aide qui permet de fournir des informations sur l'entit slectionne.
L'diteur propose des modles de code utilisable via la combinaison de touches Ctrl+espace. Par exemple, la cration d'un fichier build.xml vide, il est possible de demander l'insertion d'un modle contenant deux cibles. Une bulle d'aide fournit un aperu du code qui sera insr.
144
L'diteur de fichier de configuration d'Ant peut formater le code source XML du fichier de configuration en slectionnant l'option Formater du menu contextuel ou en utilisant la combinaison de touches Ctrl+Maj+F. Lexcution de Ant se fait par dfaut dans une machine virtuelle ddie et non plus dans la machine virtuelle dans laquelle Eclipse s'excute.
Par dfaut, la tche dfinie par dfaut dans le fichier build.xml est slectionne. Dveloppons en Java avec Eclipse 145
Pour lancer l'excution, il suffit de cliquer sur le bouton "Excuter". Le rsultat de l'excution s'affiche dans la vue "Console" Exemple :
Buildfile: I:\eclipse\workspace\test_junit\build.xml bonjour: [echo] Premier test avec Ant! BUILD SUCCESSFUL Total time: 401 milliseconds
146
Il faut ajouter l'attribut encoding avec le jeux de caractres utiliss dans le prologue du fichier build.xml. Exemple :
<?xml version="1.0" encoding="ISO88591" ?>
Exemple :
Buildfile: I:\eclipse\workspace\test_junit\build.xml init: [echo] Generation numero : 7 du July 2 2003 compil: doc: [javadoc] Generating Javadoc [javadoc] Javadoc execution [javadoc] BUILD FAILED: file:I:/eclipse/workspace/test_junit/build.xml:37: Javadoc failed: java.io.IOException: CreateProcess: javadoc.exe d "I:\eclipse \workspace\test_junit\build\doc" use package classpath "I:\eclipse\s tartup.jar;I:\eclipse\workspace\test_junit\junit.jar" version author "I:\eclipse\workspace\test_junit\src\MaClasse.java" "I:\eclipse \workspace\test_junit\src\MaClasse2.java" error=2 Total time: 681 milliseconds
Il faut vrifier la prsence de l'outil dans les rpertoires dsigns par la variable d'environnement PATH du systme d'exploitation. Dans le cas de Javadoc sous Windows, il faut s'assurer que le rpertoire %JAVA_HOME%\bin soit insr dans la variable PATH. Si cette dernire doit tre modifie, il faut arrter et relancer Eclipse aprs la modification pour que celle ci soit prise en compte.
147
Could not create task or type of type: junit. Ant could not find the task or a class this task relies upon.
Dans les prfrences, il faut rajouter le fichier junit.jar dans l'onglet "Classpath" de l'arborescence "Ant/Runtime"
<target name="init" description="Initialisation"> <tstamp/> <buildnumber file="numerobuild.txt" /> <echo message="Generation numero : ${build.number} du ${TODAY}"/> </target> <target name="compil" depends="init" description="Compilation"> <javac srcdir="${src}" destdir="${bin}"> <classpath> <pathelement path="${java.class.path}"/> <pathelement location="${junit_path}"/> </classpath> </javac> </target> <target name="all" depends="init, compil, test, doc" description="Generation complete"> <echo message="Generation complete."/> </target> <target name="doc" depends="compil" description="Generation de la documentation"> <javadoc destdir="${doc}" author="true" version="true" use="true" package="true"> <fileset dir = "${src}"> <include name="**/*.java"/> <exclude name="**/*Test*"/> </fileset>
148
<classpath> <pathelement path="${java.class.path}"/> <pathelement location="${junit_path}"/> </classpath> </javadoc> </target> <target name="test" depends="compil" description="Executer les tests avec JUnit"> <junit fork="yes" haltonerror="true" printsummary="on"> <formatter type="plain" usefile="false" /> <test name="ExecuterLesTests"/> <classpath> <pathelement location="${bin}"/> <pathelement location="${junit_path}"/> </classpath> </junit> </target> </project>
Rsultat de l'excution :
Buildfile: I:\eclipse\workspace\test_junit\build.xml init: [echo] Generation numero : 16 du July 2 2003 compil: test: [junit] Running ExecuterLesTests [junit] Tests run: 3, Failures: 0, Errors: 0, Time elapsed: 0,02 sec [junit] Testsuite: ExecuterLesTests [junit] Tests run: 3, Failures: 0, Errors: 0, Time elapsed: 0,02 sec [junit] [junit] Testcase: testCalculer took 0,01 sec [junit] Testcase: testCalculer took 0 sec [junit] Testcase: testSommer took 0 sec doc: [javadoc] Generating Javadoc [javadoc] Javadoc execution [javadoc] Loading source file I:\eclipse\workspace\test_junit\src\MaClasse.java... [javadoc] Loading source file I:\eclipse\workspace\test_junit\src\MaClasse2.java... [javadoc] Constructing Javadoc information... [javadoc] Standard Doclet version 1.4.1 [javadoc] [javadoc] Building tree for all the packages and classes... [javadoc] Building index for all the packages and classes... [javadoc] Building index for all classes... all: [echo] Generation complete. BUILD SUCCESSFUL Total time: 4 seconds
149
La version 2.1 d'Eclipse intgre la possibilit d'utiliser JUnit directement dans l'IDE. JUnit est un framework open source pour raliser des tests unitaires sur du code Java. Le principal intrt est de s'assurer que le code rpond toujours au besoin mme aprs d'ventuelles modifications. Le but est d'automatiser les tests. Ceux ci sont exprims dans des classes sous la forme de cas de tests avec leurs rsultats attendus. JUnit excute ces tests et les comparent avec ces rsultats. Avec Junit, l'unit de tests est une classe ddie qui regroupe des cas de tests. Ces cas de tests excutent les tches suivantes : cration d'une instance de la classe et de tout autre objet ncessaire aux tests appel de la mthode tester avec les paramtres du cas de test comparaison du rsultat obtenu avec le rsultat attendu : en cas d'chec, une exception est leve
150
Dans ce chapitre, la classe suivante est utilise comme classe tester avec JUnit. Exemple :
package com.moi.test.junit; public class MaClasse { public int additioner(int a, int b) { return a + b; } }
Si le fichier junit.jar n'est pas inclus dans le classpath du projet, un message d'erreur est affich et il est impossible de poursuivre l'excution de l'assistant.
151
Il faut complter la classe gnre selon les besoins : par exemple, ajouter un attribut qui va contenir une instance de la classe tester, ajouter l'instanciation de cette classe dans la mthode setUp() et librer cette instance dans la mthode tearDown(). Il faut ajouter les traitements ncessaires dans les mthodes testXXX() en utilisant l'API de JUnit. Exemple :
package com.moi.test.junit; import junit.framework.TestCase; public class MaClasseTest extends TestCase { private MaClasse maClasse = null; public MaClasseTest(String arg0) { super(arg0); } public static void main(String[] args) { junit.swingui.TestRunner.run(MaClasseTest.class); } protected void setUp() throws Exception { super.setUp(); maClasse = new MaClasse(); } protected void tearDown() throws Exception { super.tearDown(); maClasse = null; } public void testAdditioner() { assertTrue(maClasse.additioner(2,2) == 4); } }
152
JUnit utilise l'instrospection pour excuter les mthodes commenant par test.
Eclipse excute les tests et affiche le rsultat dans une vue ddie.
Si tous les cas de tests ont t excuts avec succs, une ligne verte est affiche. Cette vue contient deux onglets : Failures : contient la liste des cas de tests qui ont chous Hierarchy : contient une arborescence des cas de tests Dans le cas o un ou plusieurs tests chouent, la ligne est rouge.
153
154
Cette troisime partie prsente des fonctionnalits avances d'Eclipse. Elle comporte les chapitres suivants : L'aide dans Eclipse : prsente comment obtenir de l'aide lors de l'utilisation d'Eclipse. CVS et Eclipse : dtaille l'utilisation de CVS avec Eclipse. La gestion de la plateforme : dtaille les fonctionnalits proposes pour grer les plugins et la plateforme Eclipse.
155
Pour configurer l'IDE, il faut slectionner la ressource qui contient l'lment dans la vue "Packages" : un projet un fichier .jar
156
L'exemple ci dessous permet d'associer la doc du JDK avec le fichier rt.jar Il faut slectionner le fichier rt.jar du projet dans la vue "Packages" et slectionner le menu contextuel "Proprits". Il faut slectionner "Emplacement Javadoc" puis cliquer sur parcourir pour slectionner le rpertoire qui contient le fichier packagelist de la documentation.
Le bouton "Valider" permet de vrifier si l'emplacement slectionn contient les lments ncessaires.
Enfin, il faut cliquer sur le bouton "OK" pour valider les changements. Si le chemin n'est pas correct, un message d'erreur est affich.
Il est alors possible dans l'diteur de code Java de positionner le curseur sur un lment contenu dans un des emplacements Javadoc pour que l'aide en ligne affiche la page concerne par l'lment dans la documentation Javadoc. Ce processus est applicable toutes les API dont la documentation Javadoc est disponible.
157
Il n'est plus utile de dcompresser le contenu d'une documentation Javadoc pour pouvoir l'associer une bibliothque.
Ce plugin cre une entre nomme "Essentials Java Docs" dans la table des matires de l'aide en ligne. Cette Dveloppons en Java avec Eclipse 158
documentation regroupe la documentation du JDK 1.3.1, de quelques API open source frquement utilise ainsi que quelques manuels pour ces API. Ce plugin est tlchargeable sur le site de Crionics (environ 30 Mo): http://www.crionics.com/products/opensource/eclipse/com.crionics.java.doc.zip Pour l'installer, il suffit de dcompresser son contenu dans le rpertoire plugins d'intallation d'Eclipse.
159
CVS (Concurrent Versions System) est un outil libre de gestion de versions. Initialement dvelopp pour Unix, une version pour windows NT/2000 de CVS peut tre tlcharge l'url http://www.cvsnt.org/ Toutes les donnes sont stockes dans un rfrentiel (repository). Chaque modification d'une ressource gre par CVS associe cette entit un numro de rvision unique. Une version contient un ensemble de ressource, chacune ayant une rvision particulire pour la version correspondante. CVS ne verrouille pas ces ressources. Deux dveloppeurs peuvent crer chacun une rvision d'une mme ressource. La fusion des deux versions est la charge d'un des dveloppeurs. Eclipse propose une perspective pour utiliser CVS dans un projet.
160
161
162
Une fois l'installation termine, cliquez sur le bouton Finish. Excutez le service control panel en cliquant sur l'icne dans le menu
163
Cliquez sur Repository prefix et slectionnez le rpertoire cvsrepo prcdemment cr. Cliquez sur le bouton Add
164
165
Une boite de dialogue s'ouvre pour dfinir un nouvel emplacement. Un emplacement contient uniquement les informations sur une connexion.
166
Il faut renseigner le nom de la machine, le chemin du rfrentiel, le nom de l'utilisateur, son mot de passe (celui de windows) et le type de connexion (utilisez pserver) puis cliquer sur le bouton "Fin"
167
Cette tape permet de donner un nom au module : soit celui du projet Eclipse soit un nom spcifique prciser. Cliquez sur le bouton "Suivant".
Cliquez sur le bouton "Fin". La vue "Synchronisation Mode sortant" affiche les fichiers qui ont t modifis
168
Dans cette vue, il faut slectionner le projet et activer l'option "Ajouter au contrle de version" du menu contextuel.
Une fois le traitement effectu, activer l'option "Valider" du menu contextuel Une boite de dialogue demande la saisie d'un commentaire
Remarque : si l'arborescence du projet n'est pas affiche, il suffit de cliquer sur le bouton l'option "Afficher les dossiers".
et de cocher
Dans cette vue, il suffit de slectionner la ressource et d'activer l'option "Valider". Il est possible de saisir un commentaire. La vue "Synchronisation" permet la synchronisation entre les ressources locales (dans l'espace de travail) et celles contenues dans CVS. Les trois premiers boutons permettent de prciser le sens de la synchronisation : mode entrant : modifications contenues dans le rfrentiel intgrer dans l'espace de travail mode sortant : modifications contenues dans l'espace de travail intgrer dans le rfrentiel mode entrant/sortant : modifications dans l'espace de travail et le rfrentiel intgrer dans l'un et l'autre
La rvision courante est prcde d'une petite toile. Pour remplacer la ressource par celle correspondant une autre rvision, il suffit de slectionner la rvision et d'activer l'option "Obtenir une rvision avec des marqueurs" du menu contextuel. Il faut ensuite cliquer sur le bouton "Ok" lors du message d'avertissement et la rvision courante est modifie. Il est possible de comparer le contenu de deux rvisions. Pour cela, il suffit de slectionner les deux rvisions en maintenant la touche Ctrl enfonce et d'activer l'option "Comparer" du menu contextuel.
171
Il suffit de saisir le nom et de cliquer sur le bouton "Ok" La version apparat dans la vue "Rfrentiels CVS"
172
Eclipse est conu pour tre un outil modulaire. De nombreux modules (plugins) sont fournis avec Eclipse mais il est aussi trs facile d'en ajouter d'autres dvelopps par la communaut ou des socits commerciales. L'installation d'un plugin est souvent trs simple car elle consiste essentiellement dcompresser l'archive qui contient le plugin pour que le contenu soit insrer dans le rpertoire "plugins" o est install Eclipse. Eclipse 2.0 propose une fonctionnalit qui permet d'installer ou de mettre jour des plugins via le web.
Cette bote de dialogue affiche des informations gnrales sur Eclipse et permet de slectionner le type d'informations supplmentaires souhaites. Cliquez sur le bouton "Dtails des plugins" pour obtenir une liste de tous les plugins installs.
173
Un clic sur le bouton "Dtails de la configuration" affiche un fichier dans la vue diteur contenant des informations dtailles sur la configuration en cours d'utilisation.
Un clic sur le bouton "Dtails des dispositifs", permet d'avoir des informations sur les lments de base d'Eclipse.
174
Il suffit de tlcharger le fichier zip contenant le module l'url http://sourceforge.net/projects/jadclipse/. Il faut aussi avoir installer l'outil Jad. Pour installer le plugin, il suffit simplement de dcompresser le fichier dans le rpertoire "plugins" du rpertoire principal d'Eclipse. Pour que le module soit pris en compte et configurer automatiquement, il suffit de lancer ou relancer Eclipse. A l'ouverture d'un fichier .class, le menu Decompile apparat dans le menu principal. Il faut cocher l'option Engage Jadclipse . Chaque fichier .class ouvert est automatiquement dcompil et le code source est affich dans l'diteur.
Le plugin est parfaitement intgr dans Eclipse : les options du plugin sont modifiables dans l'arborescence "Java / Jadclipse" des prfrences (menu "Window / Preferences").
La vue "Mises jour des dispositifs" recence la liste des sources d'o peuvent tre tlcharges les mises jour.
L'exemple ci dessous illustre la mise jour d'une version 2.1 d'Eclipse avec la version 2.1.1.
176
Lisez la licence et si vous l'acceptez, Cliquez sur le bouton "J'accepte les termes des contrats de licence" puis sur le bouton "Finish"
Cliquez sur le bouton "Installer". Une fois l'installation termine, il faut relancer Eclipse.
Pour rechercher les mises jour, il est aussi possible dans la perspective "Installation/mise jour" de cliquer sur "Mise jour disponible" dans la vue "Mises jour des dispositifs".
177
La progression et le dtail des mises jour trouves sont affichs dans la vue "Aperu"
178
Il faut saisir le nom et l'url du fichier site.xml dsir puis cliquer sur le bouton "Fin".
L'application va lire le fichier et affiche les plugins disponibles dans l'arbrescence. Il suffit de slectionner la version dsire. La vue "Aperu" affiche le details du plugin slectionn. Pour installer la version slectionne, cliquer sur le bouton "Install" dans la vue Aperu .
179
Cliquer sur le bouton "Next". Lire et accepter la licence, puis cliquer sur le bouton Next
Il faut confirmer l'installation, car le package n'est pas sign, en cliquant sur le bouton Install
180
Le plugin est tlcharg et install. L'assistant propose de redmarrer le plan de travail pour que les modifications soient prises en compte. Cliquez sur le bouton "Yes".
Il peut tre intressant d'ajouter le site officiel d'Eclipse pour ajouter des plugins qui ne sont pas fournis en standard.
Un fois le nouveau signet configur, il suffit de naviguer dans l'arborescence en fonction de la version de la plateforme pour pouvoir installer un ou plusieurs plugins parmis ceux proposs.
Installation / Mise jour , slectionner Plateforme Eclipse dans la vue Configuration de l'installation
Pour restaurer une configuration, il suffit de slectionner, dans la vue Configuration de l'installation , la sauvegarde automatique (dans historique de la configuration) ou la sauvegarde manuelle (dans Configuration sauvegardes).
182
Pour avoir plus d'informations, il suffit de slectionner la mise jour et de cliquer sur le bouton Dtails de l'erreur .
183
Dans l'exemple cidessus, il manque un plugin ou la version installe n'est pas correcte. Pour rsoudre le problme, il suffit de quitter Eclipse, d'installer le plugin (en le dcompressant dans le bon rpertoire) et de relancer Eclipse.
Il suffit alors de dcocher la mise jour posant problme et de cliquer sur le bouton Fin afin de mettre jour le plugin manquant. Cette opration ncessite le redmarrage d'Eclipse.
Suite ce redmarrage, le plugin erron n'apparat plus en erreur et peut tre install en cliquant sur le bouton Fin .
184
La premire page permet de slectionner le type d'lment rechercher. L'option "Rechercher les mises jour des dispositifs dj installs" permet de rechercher dans les sites enregistrs, des nouvelles versions des plugins installs.
L'option "Rechercher les nouveaux dispositifs installer" permet de grer la liste des sites proposant des plugins et ainsi d'obtenir de nouveaux plugins.
185
Cette page permet de slectionner les sites concerns par la recherche. Il est possible d'ajouter de nouveaux sites grce aux boutons de droite. Un clic sur le bouton "Nouveau site distant ..." ouvre une bote de dialogue qui permet de saisir les informations le nouveau site. Il suffit de saisir un nom et l'url du site.
Cliquez sur le bouton "OK" Le nouveau site est ajouter dans la liste. Il faut ouvrir l'arborescence du nouveau site pour slectionner les dispositifs dsirs.
186
Un clic sur le bouton "Suivant" permet de lancer la rechercher. Les rsultats de la recherche sont affichs dans la page suivante.
Il suffit alors de slectionner le ou les plugins dsirs puis de cliquer sur le bouton "Suivant".
La page suivante permet de lire et d'accepter la licence pour poursuivre les traitements. Si vous acceptez la licence, cliquez sur le bouton "J'accepte les termes des contrats de licence" puis sur le bouton "Suivant". La page suivante permet de slectionner l'emplacement de l'installation du plugin
187
Cliquez sur le bouton "Fin". Si le plugin n'est pas sign, une demande de confirmation d'installation est demande
Dans ce cas, cliquez sur le bouton "Installer". Les fichiers sont tlchargs et installs.
Une fois ces oprations termines, le systme recommande de redmarrer la plateforme. Dveloppons en Java avec Eclipse 188
Il est donc recommand de cliquer sur le bouton "Oui" surtout pour pouvoir utiliser immdiatement le plugin frachement install.
En slection la racine de l'arborescence "Plateforme Eclipse", plusieurs tches sont disponibles. La tache "Rtablir" permet de restaurer une ancienne configuration.
189
Il suffit de slectionner la configuration dsire et de cliquer sur le bouton "Fin". La tche "Afficher l'historique d'installation" affiche une page web contenant l'historique des installations. Le bouton permet aussi de demander l'excution de cette tche.
190
Pour chaque plugin install, il est possible de raliser plusieurs tches en le slectionnant :
Il faut rdemarrer la plateforme que la dsactivation soit effective. Par dfaut, les plugins dsactivs ne sont pas affichs. Il faut cliquer sur le bouton l'arborescence. pour les afficher dans
La tche "Activer" permet de ractiver le plugin aprs une configuration. La relance de la plateforme n'est pas obligatoire mais fortement recommande. La tche "Dsinstaller" permet de dsinstaller le plugin aprs confirmation
191
Il est alors possible de paramtrer la planification et les options de tlchargement pour une mise jour automatique des lments enregistrs dans le systme de mise jour de l'application. Il est ainsi possible de prciser deux choses : le moment de la recherche automatique : soit chaque dmarrage de l'application soit une priodicit et une heure prcise. informer de la disponibilit de mises jour ou tlcharger automatiquement les mises jour trouvs et informer de la fin de leur tlchargement Si le systme dtecte des mises jour, une bote de dialogue est affiche l'issu des traitements de recherche :
192
Un clic sur le bouton "Oui" permet d'afficher une bote de dialogue recensant les mises jours trouves.
Il faut slectionner le ou les lments mettre jour et de cliquer sur le bouton "Suivant". Il suffit enfin de suivre les tapes de l'assistant pour obtenir et installer le ou les dispositifs choisis.
193
Cette quatrime partie prsente le dveloppement avec Java ncessitant quelques paramtrage ou l'utilisation de plugins tiers. Elle comporte les chapitres suivants : Des plugins pour le dveloppement avec Java : prsente quelques plugins tiers facilitant le dveloppement avec Java. Le dveloppement J2EE : Prsente des plugins pour faciliter le dveloppement avec J2EE. Java Server Faces et Eclipse : dtaille au travers d'un exemple l'utilisation d'Eclipse pour dvelopper une application web utilisant JSF. JAXB et Eclipse : dtaille l'utilisation de JAXB avec Eclipse. Struts et Eclipse : dtaille au travers d'un exemple l'utilisation du plugin Esay Struts pour dveloppement des applications web utilisant Struts. Le dveloppement d'interfaces graphiques : prsente plusieurs plugins pour faciliter le dveloppement d'applications graphiques utilisant AWT, Swing ou SWT.
194
Il existe de nombreux plugins dvelopps par des tiers pour enrichir Eclipse. Certains de ces plugins sont spcialement ddis faciliter le dveloppement de code avec Java. Ce chapitre va prsent plusieurs de ces plugins : Jalopy : ce plugin permet de mettre en oeuvre l'outil open source du mme nom qui permet de formatter le code source Log4E : ce plugin permet de faciliter la mise en oeuvre d'un systme de log (log4J, api de logging du JDK 1.4 ou common logging)
195
Pour la mise en oeuvre, il suffit d'utiliser le menu contextuel "Format with Jalopy" de l'diteur de code Java. Exemple :
package com.moi.test; public class TestJalopy { public static void main(String[] args) {} public void maMethode(int a, int b) {} private int maMethode2(int a) { return a; } public void maMethode3() {} }
Rsultat :
package com.moi.test; /** * DOCUMENT ME! * * @author $author$ * @version $Revision$ */ public class TestJalopy { /** * DOCUMENT ME! * * @param args DOCUMENT ME! */ public static void main(String[] args) { } /** * DOCUMENT * * @param a * @param b */ public void }
196
public void maMethode3() { } /** * DOCUMENT ME! * * @param a DOCUMENT ME! * * @return DOCUMENT ME! */ private int maMethode2(int a) { return a; } }
Le formattage du code source est ralis en tenant compte des nombreux paramtres dfinis dans Jalopy. Il est galement possible de demander le formattage de l'ensemble des fichiers source Java contenus dans un ou plusieurs packages ou rpertoires. Il suffit de slectionner le ou les packages ou rpertoires et de slectionner l'option "Format" du menu contextuel.
14.2. Log4E
Log4E est un plugin gratuit dont le but est de faciliter l'utilisation d'une API de logging dans du code java. Log4E propose en standard d'utiliser 3 API : Log4J, l'api Logging du JDK 1.4 et l'api Common Logging du projet Jakarta. Le site officiel de ce plugin est l'url : http://log4e.jayefem.de/index.php/Main_Page
14.2.1. Installation
Il y a deux faons d'obtenir le plugin et de l'installer : tlcharger l'archive .zip contenant le plugin et le dcompresser dans le rpertoire d'installation d'Eclipse utiliser la fonctionnalit de mise jour d'Eclipse avec l'url : http://log4e.jayefem.de/update
197
Le profile permet de slectionner l'api qui sera utilise par le plugin lors de la gnration de code pour les oprations demandes.
14.2.3. Utilisation
Le fichier suivant sera utilis dans cette section : Exemple :
package com.jmd.test.java; public class TestLog4E { public static void main(String[] args) { int a = 1; int b = 2; System.out.println("resultat = " + additionner(a, b)); } public static int additionner(int a, int b) { int res = a + b; return res; } }
L'api de logging slectionne dans la prfrences pour les exemples de cette section est celle du JDK 1.4. Le menu contextuel de l'diteur de code se voie ajouter une nouvelle option nomme Log4E.
198
Avant de pouvoir utiliser une de ces options, il est ncessaire de sauvegarder le code source pour permettre au plugin de raliser les modifications.
Cette nouvelle entre du menu contextuel, propose plusieurs options rparties en 4 groupes. Toute oprations impliquant une modification du code est soumise l'approbation de l'utilisation sous la forme d'une vue permettant de comparer le code avant et aprs modification et d'accepter ou non les modifications. L'option Declare Logger permet de demander l'insertion dans le code des clauses imports ainsi que la dclaration des objets ncessaires l'utilisation de l'api de logging . Exemple :
package com.jmd.test.java; import java.util.logging.Level; import java.util.logging.Logger; public class TestLog4E { /** * Logger for this class */ private static final Logger logger = Logger.getLogger(TestLog4E.class .getName()); public static void main(String[] args) { int a = 1; int b = 2; System.out.println("resultat = " + additionner(a, b)); } public static int additionner(int a, int b) { int res = a + b; return res; } }
L'option Insert Log Statement At The Position ... permet d'insrer du code pour utiliser l'api de logging. Pour utiliser cette option, il est ncessaire de placer le curseur de l'diteur de code dans une mthode, sinon un message d'erreur est affich.
199
L'option Insert Log Statement For This Method permet d'insrer automatique des appels l'api de logging dans la mthode : au dbut de la mthode, la fin de la mthode et dans les blocs try/catch. Exemple avec la mthode additionner()
... public static int additionner(int a, int b) { if (logger.isLoggable(Level.FINE)) { logger.fine("start"); } int res = a + b; if (logger.isLoggable(Level.FINE)) { logger.fine("end"); } return res; } ...
Pour utiliser cette option, il est ncessaire de placer le curseur de l'diteur de code dans une mthode, sinon un message d'erreur est affich. L'option Insert Log Statement For This Class est identique l'option prcdente mais effectue les traitements sur toute la classe. L'option Replace System.out's For This Method permet de remplacer les utilisations de la classe System.out ou System.err par l'utilisation de l'api de logging. Pour utiliser cette option, il est ncessaire de placer le curseur de l'diteur de code dans une mthode, sinon un message d'erreur est affich. L'option Replace System.out's For This Class est identique l'option prcdente mais effectue les traitements sur toute la classe.
200
Eclipse ne propose pas par dfaut de plugin permettant de faciliter le dveloppement d'applications J2EE. Il existe cependant plusieurs plugins qui simplifient la mise en oeuvre de certaines taches : Struts, Tomcat, EJB, ... Le plugin open source le plus complet, nomm Lomboz, propose des fonctionnalits pour faciliter le dveloppement d'applications web (servlets et JSP), d'EJB et de services web. Le sous projet "Eclipse Web Tools Platform" en cours de dveloppement a pour but de dvelopper des plugins pour le dveloppement d'application Web et J2EE. Ce chapitre va prsenter les plugins suivants : le plugin Tomcat de Sysdeo pour la mise en oeuvre de Tomcat pour des applications web le plugin Lomboz pour le dveloppement d'applications J2EE avec utilisation possible de plusieurs serveurs d'applications
La premire page permet de saisir les informations principales notamment la version de Tomcat utilise et le rpertoire de base de Tomcat. Exemple avec Tomcat fourni avec le JWSDP 1.3
202
La seconde vue permet de prciser des paramtres pour la JVM dans laquelle va s'excuter Tomcat.
La troisime page permet de saisir les informations concernant le dmarrage de l'application de gestion de Tomcat.
203
204
Sur cette page, slectionnez la version de Tomcat utilise (version 5.x dans cette section) et slectionnez le rpertoire de Tomcat. Slectionnez l'option Tomcat/Paramtrages de la JVM et ajoutez dans la liste "Classpath" le fichier tools.jar qui se situe dans le rpertoire lib du JDK.
Cliquez sur le bouton OK Sous la perspective Java , slectionnez l'option Fentre / Personnaliser la perspective puis dans l'arborescence, slectionnez Autres et cochez la case Tomcat . Cliquez sur le bouton OK : les trois boutons permettant respectivement de dmarrer, arrter et redmarrer Tomcatcsont ajouts dans la barre d'outils comme avec la version prcdente du plugin. Cliquez sur le bouton de dmarrage de Tomcat : la console affiche les messages de dmarrage de l'application. Pour vrifier le bon fonctionnement, il suffit d'ouvrir un navigateur l'url : http://localhost:8080
205
La perspective Debug s'affiche et les informations relatives au lancement de Tomcat s'affichent dans la vue Console .
Pour vrifier la bonne excution de Tomcat, il suffit d'ouvrir un navigateur et de saisir l'url http://localhost avec le port prcis dans la configuration dans Tomcat.
206
La page suivante de l'assistant permet de prciser certains paramtres : le nom du contexte de l'application web (par dfaut, celui du projet), le rpertoire racine de l'application et permettre au plugin de modifier ou non le fichier server.xml de Tomcat. En cliquant sur le bouton Fin , le projet est cr. Dveloppons en Java avec Eclipse 207
La structure du projet reprend celle d'une application web incluse dans un fichier .war. Le fait d'autoriser le plugin modifier le fichier server.xml provoque sa mise jour pour ajouter un nouveau contexte : Exemple : <Context path="/test_web" reloadable="true" docBase="D:\java\eclipse\workspace\test_web" workDir="D:\java\eclipse\workspace\test_web\work\org\apache\jsp" /> Si Tomcat tait dj en cours d'excution, il faut le relancer pour que les modifications soient prises en compte.
15.2. Lomboz
Lomboz est un plugin dont le but est de faciliter le dveloppement d'applications J2EE 1.3. Initialement dvelopp par la socit ObjectLearn (http://www.objectlearn.com/index.jsp), son statut est pass opensource depuis l'intgration du projet au consortium ObjectWeb, dbut 2004 (http://forge.objectweb.org/projects/lomboz) . Ce plugin utilise plusieurs outils open source pour mener bien diffrentes tches : Ant, Xdoclet, Axis, ... ce qui lui permet de couvrir le cyle de dveloppement des applications J2EE : rdaction et gnration du code, dploiement et dbogage. Cette section va utiliser Lomboz avec JBoss et Tomcat. Version utilise dans cette section Eclipse J2RE 2.1.2 1.4.2_02
208
Pour configurer Lomboz, il faut utiliser l'option Fentre / Personnaliser la perspective ...
Cliquez sur la case cocher Autre / Lomboz Actions puis sur le bouton OK . Un bouton supplmentaire apparat dans la barre d'outils : . Il permet d'afficher la vue Lomboz . Dans les prfrences, slectionnez Java / Nouveau projet , puis cliquez sur le bouton radio Dossiers en conservant les noms des dossiers src et bin .
Toujours dans les prfrences, il faut slectionner Lomboz et vrifier que le chemin dsignant le fichier tools.jar pointe bien vers le fichier $JAVA_HOME/lib/tools.jar.
209
Slectionnez Lomboz / Server Definitions puis slectionnez le ou les types de serveur utiliss : dans l'exemple de cette section, JBOSS 3.0 et Apache Tomcat v4.1.0 . Il faut donc slectionner le type JBOSS 3.0 et modifier les proprits pour reflter celle du systme utilis notamment Application server directory et Classpath variable qui doivent pointer vers le rpertoire d'installation de JBoss. Il suffit ensuite de cliquer sur le bouton Appliquer .
Pour s'assurer de la bonne configuration, il suffit de cliquer sur l'onglet de Classpath et de vrifier qu'aucune bibliothque n'est errone. Il faut slectionner le type de serveur Apache Tomcat v4.1.0 et faire de mme. Pour valider les modifications, il suffit de cliquer sur le bouton OK
210
Cliquez sur le bouton Suivant et s'assurer que les rpertoires sources et de sortie sont dsigns respectivement par les rpertoires "src" et "bin".
211
Cliquez sur le bouton Suivant . Sur l'onglet Web Modules , il faut ajouter un nouveau module.
Saisissez le nom et cliquez sur le bouton OK Sur l'onglet EJB Modules , il est possible d'ajouter au projet un ou plusieurs modules qui vont contenir des EJB. Le principe pour ajouter un module EJB est identique celui utilis pour un module web : cliquer sur le bouton Add , saisir le nom du module dans la bote de dialogue et cliquer sur le bouton OK .
212
L'ajout d'autres modules web ou EJB est toujours possible aprs la cration du projet en utilisant l'assistant de cration de nouvelles entits. Sur l'onglet Targeted Servers , il faut slectionner le type de serveur utiliser et cliquer sur le bouton Add. Dans l'exemple de cette section, il faut ajouter les serveurs JBOSS 3.0 et Apache Tomcat v4.1.0 .
Lors de l'affichage de ce message, il suffit de cliquer sur le bouton Oui pour ouvrir la perspective Java . Des erreurs seront signales dans la vue Taches car le chemin dsign pour le fichier servlet.jar est erron.
Pour corriger le problme, il faut modifier le chemin de la bibliothque dans les proprits du projet.
213
Il faut slectionner la ligne correspondant au fichier servlet.jar (celle contenant une petite icne attention jaune) et cliquer sur le bouton Editer ... .
Pour faciliter la saisie du chemin il est possible de cliquer sur le bouton Variable pour slectionner TOMCAT411 puis de cliquer sur le bouton OK
Pour faciliter la saisie du reste du chemin, il faut cliquer sur le bouton Extension , slectionner le chemin du fichier servlet.jar et cliquer sur le bouton OK .
214
La valeur associe la variable doit avoir une valeur semblable celle ci dessous :
Il suffit de cliquer sur le bouton OK pour valider les modifications. Cette correction n'est que temporaire : pour corriger le problme de faon dfinitive, il faut modifier le fichier .server correspondant celui du serveur utilis dans le rpertoire : C:\java\eclipse\plugins\com.objectlearn.jdt.j2ee\servers La ligne a modifier est celle permettant l'ajout du fichier servlet.jar. Exemple :
<serverClassPath> <jar type="variable">JDK_TOOLS</jar> <jar type="variable">${classPathVariableName}/bin/run.jar</jar> <jar type="variable">${classPathVariableName}/bin/shutdown.jar</jar> <jar type="variable">${classPathVariableName}/client/jbossj2ee.jar</jar> <jar type="variable">${classPathVariableName}/tomcat4.1.x/common/lib/servlet.jar</jar> </serverClassPath>
Une fois le fichier enregistr, il faut relancer Eclipse. Dans la vue package, sur le module EJB, slectionnez l'option Lomboz J2EE/ Change default server pour prendre en compte la modification puis cliquez sur le bouton "Fin". Dveloppons en Java avec Eclipse 215
J2EE Wizards / Lomboz J2EE Module". Sur l'onglet Web module de la page de l'assistant, il suffit de suivre les indications prcises dans la section de cration d'un nouveau projet pour ajouter un nouveau module web.
Il faut slectionner le rpertoire ou sera stock le fichier, saisir le nom du fichier et cliquer sur le bouton Fin .
217
L'diteur propose une assistance la rdaction du code pour les tags en appuyant sur les touches "Ctrl+Espace".
Il propose aussi une assistance pour la saisie des attributs d'un tag.
218
Il faut slectionner le rpertoire, saisir le nom de la JSP et cliquer sur le bouton Suivant .
La page suivante de l'assistant permet de saisir des informations concernant la nouvelle JSP. Un clic sur le bouton Add permet d'ouvrir une boite de dialogue demandant les paramtres du bean ajouter :
219
Il suffit de cliquer sur le bouton Fin pour gnrer la fichier et l'ouvrir dans l'diteur.
L'diteur propose une coloration syntaxique des lments de la JSP et une assistance la rdaction du code en appuyant sur les touches "Ctrl+Espace".
Lors de la sauvegarde du fichier, la JSP est compile et les ventuelles erreurs sont signales :
220
La premire page de l'assistant permet de saisir les informations gnrales sur la nouvelle servlet notamment son package, son nom, ces modificateurs et les mthodes qui doivent tre gnres. Pour crer une servlet, il faut absolument que le fichier servlet.jar soit dans le classpath du projet, sinon un message d'erreur est affich.
Une fois toutes les informations saisies, il suffit de cliquer sur le bouton Suivant pour accder la seconde page de l'assistant.
221
Cette page permet de saisir les informations de la servlet pour enrichir le fichier web.xml. Pour slectionner le module web qui va contenir la servlet, il faut cliquer sur le bouton Browse :
Il suffit alors de slectionner le module web et de cliquer sur le bouton Ok . La saisie du nom de la servlet et du mapping URL est obligatoire. Pour ajouter un paramtre la servlet, il suffit de cliquer sur le bouton Add et de renseigner le nom et la valeur du paramtre dans la bote de dialogue qui s'ouvre puis de cliquer sur le bouton OK .
222
Le fichier WEBINF/web.xml est automatiquement modifi par Lomboz pour tenir compte des informations concernant la nouvelle servlet :
<?xml version="1.0" encoding="UTF8"?> <!DOCTYPE webapp PUBLIC "//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/j2ee/dtds/webapp_2_3.dtd"> <! Copyright (c) 2002 by ObjectLearn. All Rights Reserved. > <webapp>
223
<servlet> <servletname>TestServlet</servletname> <servletclass>com.moi.test.lomboz.web.TestServlet</servletclass> <displayname>servlet_de_test</displayname> <description>Ma servlet de test</description> <initparam> <paramname>param1</paramname> <paramvalue>valeur1</paramvalue> </initparam> </servlet> <servletmapping> <servletname>TestServlet</servletname> <urlpattern>/</urlpattern> </servletmapping> <welcomefilelist> <welcomefile>index.jsp</welcomefile> </welcomefilelist> <errorpage> <errorcode>404</errorcode> <location>/error.jsp</location> </errorpage> </webapp>
Cette vue possde plusieurs boutons pour raliser certaines taches : Lancer le serveur Arrter le serveur Dployer le module dans le serveur Supprimer le module du serveur Permet de rafrachir la vue Pour lancer un serveur, il suffit de le slectionner dans l'arborescence et de cliquer sur le bouton correspondant ou d'utiliser l'option Debug server ou Run server du menu contextuel.
224
Lors du premier lancement, un bote de dialogue demande si le serveur doit devenir le serveur par dfaut du module.
La progression du dmarrage du serveur web Tomcat est affiche dans la vue Console .
Pour vrifier que Tomcat est lanc, il suffit d'ouvrir un navigateur et de saisir l'url http://localhost:8080
Avec Tomcat, il faut le redmarrer aprs le deploiement d'une webapp sinon un message d'erreur est signal lors de l'appel de la webapp dans le navigateur.
225
Il faut cocher la case cocher "Restart server after deploy (Tomcat)" et cliquer sur le bouton "OK ". Il est possible que certaines erreurs empchent le dmarrage de la webapp. Exemple : Dveloppons en Java avec Eclipse 226
Pour rsoudre ce problme, il faut modifier dans le fichier web.xml l'ordre du tag webapp/servlet/servletclass pour le mettre aprs le tag webapp/servlet/description Pour accder aux entits qui composent la webapp, il suffit de saisir l'url correspondante dans le navigateur. Exemple avec la JSP d'accueil de la webapp
Exemple avec la servlet (attention, le mapping url a t modifi en /servlet dans le fichier web.xml)
227
Sur la page suivante, il faut saisir le nom du package, le nom de l'EJB, slectionner le type Stateless Session EJB ou Statefull Session EJB selon le type d'EJB session crer et enfin cliquer sur le bouton Fin . L'assistant gnre un fichier source java contenant le squelette du code de l'implmentation de l'EJB. Le nom du fichier gnr est constitu du nom de l'EJB et du sufixe Bean qui est automatiquement ajout. Exemple :
package com.test.lomboz2.ejb;
228
import javax.ejb.SessionBean; /** * @ejb.bean name="MonEJBSession1" * jndiname="MonEJBSession1Bean" * type="Stateless" **/ public abstract class MonEJBSession1Bean implements SessionBean { }
Ce code contient un tag qui sera traiter par Xdoclet pour gnrer ou enrichir certains fichiers (l'interface Home du Bean, le fichier descripteur de dploiement et le fichier jboss.xml).
L'assistant permet de saisir la signature complte de la mthode, le type de mthode et dans quelle interface sera gnre la mthode. L'assistant gnre le code suivant :
/** * @ejb.interfacemethod * tviewtype="remote" **/ public String monMessage(String nom){ return null; }
Le tag dans les commentaires sera utilis par Xdoclet pour la gnration des fichiers ncessaire l'EJB.
229
230
Saisissez le nom du projet, par exemple test_JSF et cliquez sur le bouton Suivant .
231
Cliquez sur le bouton Fin . L'assistant va crer un nouveau projet possdant une structure de rpertoire typique pour une application Web.
Il faut ensuite copier les fichiers ncessaires une utilisation de JSF dans l'application web. Il suffit partir d'un explorateur de fichier de faire un cliquer/glisser des fichiers *.jar du rpertoire lib de l'implmentation de rfrence vers le rpertoire WEBINF/lib du projet.
Il faut crer une nouvelle entit de type Simple / Fichier la racine du projet et la nommer login.jsp Exemple :
<html> <%@ taglib uri="http://java.sun.com/jsf/core" prefix="f" %> <%@ taglib uri="http://java.sun.com/jsf/html" prefix="h" %> <f:view> <head> <title>Application de tests avec JSF</title>
232
</head> <body> <h:form> <h3>Identification</h3> <table> <tr> <td>Nom : </td> <td><h:inputText value="#{login.nom}"/></td> </tr> <tr> <td>Mot de passe :</td> <td><h:inputSecret value="#{login.mdp}"/></td> </tr> <tr> <td colspan="2"><h:commandButton value="Login" action="login"/></td> </tr> </table> </h:form> </body> </f:view> </html>
Il faut crer une nouvelle entit de type Simple / Fichier la racine du projet et la nommer accueil.jsp Exemple :
<html> <%@ taglib uri="http://java.sun.com/jsf/core" prefix="f" %> <%@ taglib uri="http://java.sun.com/jsf/html" prefix="h" %> <f:view> <head> <title>Page d'accueil de l'application</title> </head> <body>
233
Il faut crer une nouvelle entit de type Simple / Fichier dans le rpertoire /WEBINF et la nommer facesconfig.xml Exemple :
<?xml version="1.0"?> <!DOCTYPE facesconfig PUBLIC "//Sun Microsystems, Inc.//DTD JavaServer Faces Config 1.0//EN" "http://java.sun.com/dtd/webfacesconfig_1_0.dtd"> <facesconfig> <navigationrule> <fromviewid>/login.jsp</fromviewid> <navigationcase> <fromoutcome>login</fromoutcome> <toviewid>/accueil.jsp</toviewid> </navigationcase> </navigationrule> <managedbean> <managedbeanname>login</managedbeanname> <managedbeanclass>com.jmd.test.jsf.LoginBean</managedbeanclass> <managedbeanscope>session</managedbeanscope> </managedbean> </facesconfig>
Il faut crer une nouvelle entit de type Simple / Fichier dans le rpertoire /WEBINF et la nommer web.xml Exemple :
<?xml version="1.0"?> <!DOCTYPE webapp PUBLIC "//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/webapp_2_3.dtd"> <webapp> <servlet> <servletname>Faces Servlet</servletname> <servletclass>javax.faces.webapp.FacesServlet</servletclass> <loadonstartup>1</loadonstartup> </servlet> <servletmapping> <servletname>Faces Servlet</servletname> <urlpattern>*.faces</urlpattern> </servletmapping> <welcomefilelist> <welcomefile>index.htm</welcomefile> </welcomefilelist> </webapp>
234
Une fois Tomcat dmarr, ouvrir un navigateur et taper l'url http://localhost:8089/test_JSF/ (en remplaant le port 8089 par celui dfini dans Tomcat).
235
Il faut saisir un nom par exemple test et cliquer sur le bouton Login .
Cet exemple ne met pas en valeur la puissance de Java Server Faces mais propose simplement de mettre en oeuvre le minimum pour dvelopper des applications utilisant JSF avec Eclipse.
236
JAXB est l'acronyme de Java Architecture for XML Binding. Le but de l'API et des spcifications JAXB est de faciliter la manipulation d'un document XML en gnrant un ensemble de classes qui fournissent un niveau d'abstraction plus lev que l'utilisation de JAXP (SAX ou DOM). Avec ces deux API, toute la logique de traitements des donnes contenues dans le document est crire. JAXB au contraire fournit un outil qui analyse un schma XML et gnre partir de ce dernier un ensemble de classes qui vont encapsuler les traitements de manipulation du document. Pour pouvoir utiliser JAXB, il est ncessaire d'installer le Java Web Services Developer Pack 1.3. Dans le cas de l'utilisation d'un JDK 1.4, attention de bien suivre les instructions fournies la fin de l'installation.
Il est aussi ncessaire de dfinir deux variables d'environnement systme (sous Windows 2000 : menu "Paramtres / Panneau de configuration / Systme", slectionner l'onglet "avanc", puis cliquer sur le bouton "variables d'environnement" ) : JAVA_HOME dont la valeur doit correspondre au rpertoire d'installation du JDK :
JAXB_HOME dont la valeur doit correspondre au rpertoire dans lequel le JWSDP est install : Dveloppons en Java avec Eclipse 237
Il existe deux moyens d'utiliser JAXB avec Eclipse : Crer et configurer une tche d'excution qui va lancer la gnration des classes Java via l'outil de JAXB Excuter Ant fourni avec le JWSDP en tant qu'outil externe dans Eclipse Version utilise dans cette section Eclipse 2.1.2 J2RE JAXB 1.4.2_02 1.3
Il faut ensuite crer une nouvelle tche d'excution en utilisant l'option du menu Excuter/Excuter ... et en cliquant sur le bouton Nouveau.
238
Il faut changer le nom, par exemple Gnration des classes JAXB et saisir dans le champ Classe Main la valeur LauncherBootstrap . Sur l'onglet Arguments , dans la zone de saisie "Arguments de programme" saisir (bibliotheque.xsd est le nom du fichier qui contient le schma du document XML) : verbose xjc bibliotheque.xsd p com.moi.test.jaxb
239
Sur l'onglet Chemin d'accs aux classes , dcochez Utiliser le chemin d'accs aux classes par dfaut puis cliquez sur le bouton Avances
Cliquez sur le bouton Ajouter un dossier externe puis sur le bouton "Ok"
Selectionnez le repertoire %JWSDP%/jwsdpshared/bin et cliquez sur le bouton OK Cliquez sur le bouton Fermer
Cliquez sur le bouton Oui Il faut aussi ajouter le fichier tools.jar prsent dans le rpertoire lib du JDK :
240
Si ce fichier n'est pas ajout, une exception est leve lors de l'excution : file:C:/java/jwsdp1.3/jwsdpshared/bin/launcher.xml:329: java.io.IOException: Could not find Java(TM) 2 SDK classes. This application cannot run using the Java(TM) 2 JRE. It requires the full SDK. at org.apache.commons.launcher.LaunchTask.execute(LaunchTask.java:728) at org.apache.tools.ant.Task.perform(Task.java:341) at org.apache.tools.ant.Target.execute(Target.java:309) La configuration est maintenant termine, il faut un schma qui dcrit le document XML directement la racine du projet, par exemple bibliotheque.xsd.
Pour lancer la gnration des classes Java par JAXB, il faut utiliser l'option du menu Excuter/Excuter ... et slectionner Application Java/Generation de classe JAXB
241
La bote de dialogue raffiche les paramtres prcdemment enregistrs : il suffit de cliquer sur le bouton Excuter . Les messages issus des traitements sont affichs dans la console.
Dans la vue Packages , slectionner le projet test_jaxb et utiliser l'option Rgnrer du menu contextuel pour rafrachir le contenu du projet et voir les fichiers gnrs lors des traitements.
242
Malheureusement, il y a une incompatibilit entre la version de Ant fournie avec Eclipse et celle requise par JAXB. L'excution d'un build.xml en utilisant Ant fourni avec Eclipse choue systmatiquement : Rsultat de l'excution :
Buildfile: C:\java\eclipse\workspace\test_jaxb\build.xml compile: [echo] Compiling the schema external binding file... [xjc] Compiling file:/C:/java/eclipse/workspace/test_jaxb/bibliotheque.xsd
243
[xjc] [WARNING] Unable to validate your schema. Most likely, the JVM has loaded an incompatible XML parser implementation. You should fix this before relying on the generated code. Please see the release notes for details. [xjc] unknown location [xjc] [xjc] BUILD FAILED: file:C:/java/eclipse/workspace/test_jaxb/build.xml:31: unable to parse the schema. Error messages should have been provided
Pour rsoudre ce problme et utiliser Ant, il faut l'excuter en tant qu'outil externe. Il faut dfinir le fichier build.xml qui va contenir les diffrents traitements excuter par Ant. Rsultat de l'excution :
<?xml version="1.0"?> <project basedir="." default="compile"> <property name="jwsdp.home" value="C:\java\jwsdp1.3" /> <property name="java.home" value="C:\java\j2sdk1.4.2_02" /> <path id="classpath"> <pathelement path="." /> <fileset dir="${java.home}" includes="jre/lib/endorsed/*.jar" /> <fileset dir="${jwsdp.home}" includes="jaxb/lib/*.jar" /> <fileset dir="${jwsdp.home}" includes="jwsdpshared/lib/*.jar" /> <fileset dir="${jwsdp.home}" includes="jaxp/lib/**/*.jar" /> </path> <taskdef name="xjc" classname="com.sun.tools.xjc.XJCTask"> <classpath refid="classpath" /> </taskdef> <target name="compile"> <echo message="Generation des classes Java a partir du schema ..."/> <xjc schema="bibliotheque.xsd" target="./src" package="com.moi.test.jaxb"/> <echo message="Compilation des sources ..."/> <javac srcdir="./src" destdir="." debug="on"> <classpath refid="classpath" /> </javac> </target> </project>
Il faut utiliser l'option du menu Excuter/ Outils externes/Outils externes ... et cliquer sur le bouton Nouveau .
244
Sur l'onglet Principal , il suffit de slectionner l'emplacement du fichier ant.bat fourni avec le JWSDP, puis de cliquer sur le bouton Appliquer , puis sur le bouton Excuter . Les informations gnres par Ant au cours de l'excution sont affiches dans la console. Rsultat de l'excution :
Buildfile: build.xml compile: [echo] [xjc] [xjc] [echo] [javac]
Generation des classes Java a partir du schema ... Compiling file:/C:/java/eclipse/workspace/test_jaxb/bibliotheque.xsd Writing output to C:\java\eclipse\workspace\test_jaxb\src Compilation des sources ... Compiling 44 source files to C:\java\eclipse\workspace\test_jaxb
Pour voir les fichiers gnrs par JAXB lors de ces traitements, il suffit d'utiliser l'option Rgnrer du menu contextuel du projet dans la vue Packages .
245
Struts est un framework pour applications web dvelopp par le projet Jakarta de la fondation Apache. C'est la plus populaire des frameworks pour le dveloppement d'applications web avec Java . Struts met en oeuvre le modle MVC 2 (Modle / Vue / Contleur) bas sur une seule servlet et des JSP pour chaque application. L'application de ce modle permet une sparation en trois partie distinctes de l'interface, des traitements et des donnes de l'application. Struts se concentre sur la vue et le contrleur. L'implmentation du modle est laisse libre aux dveloppeurs : ils ont le choix d'utiliser des java beans, un outil de mapping objet/relationnel ou des EJB. Pour le contrleur, Struts propose une unique servlet par application qui lit la configuration de l'application dans un fichier au format XML. Cette servlet reoit toutes les requtes de l'utilisateur concernant l'application. En fonction du paramtrage, il instancie un objet de type Action qui contient les traitements et renvoie une valeur particulire la servlet. Ceci lui permet de dterminer la JSP qui affichera le rsultat l'utilisateur. Il existe un projet open source nomm Easy Struts qui est un plugin dont le but est de faciliter la mise en oeuvre de Struts avec Eclipse. Ce plugin trs intressant et pratique ne semble malheureusement plus voluer. Cette section va mettre en oeuvre les outils suivants sous Windows : Outil JDK Eclipse Tomcat plugin Tomcat de Sysdeo plugin Easy Struts Version 1.4.2_03 2.1 5.0.28 3 0.6.4 IDE conteneur web arrt et dmarrage de Tomcat faciliter l'utilisation de Struts Rle
"Easy Form" : crer une JSP avec une classe de type ActionForm associe et ajoute la dfinition de ce bean dans le fichier de configuration "Easy Action" : crer une classe de type Action et ajoute la definition du mapping de cette classe dans le fichier de configuration "Easy Action associated with a form" : crer une JSP avec une classe de type ActionForm associe, ajoute la dfinition de ce bean dans le fichier de configuration et cr une classe de type Action et ajoute la definition du mapping de cette classe dans le fichier de configuration "Easy Forward" : crer des renvois ddis une Action ou globaux "Easy Exception" : crer des handler pour les exceptions. "Easy Message resources" : crer des fichiers de ressources pour localiser l'application Easy Plugin" : "Easy Datasource" : permet de dfinir une source de donnes qui sera utilise dans l'application Easy Module :
L'onglet Struts 1.0 et Struts 1.1 permet de fournir l'emplacement requis par la version de Struts dsigne par l'onglet.
247
Il faut imprativement ajouter les fichiers .jar requis pas Struts ainsi que les fichier .tld des bibliothques personnalises de Struts.
Une fois tous les paramtres renseigns, cliquez sur le bouton Appliquer puis sur le bouton OK . Il faut crer un projet de type Java/Projet Tomcat qui va contenir l'application web.
248
Saisissez le nom du projet, par exemple test_struts et cliquez sur le bouton Suivant .
Il faut slectionner les proprits du projet. Slectionnez l'option Easy Struts Dveloppons en Java avec Eclipse 249
Cliquez sur le bouton Add Struts support to project ... . Une bote de dialogue s'ouvre pour permettre la slection des options
Si les paramtres ne sont pas correctement renseigns, un message d'erreur est affich
250
Renseignez les informations ncessaires et cliquez sur le bouton Fin . Les fichiers sont copis et les proprits sont mises jour.
251
<paramvalue>/WEBINF/strutsconfig.xml</paramvalue> </initparam> <initparam> <paramname>debug</paramname> <paramvalue>3</paramvalue> </initparam> <initparam> <paramname>detail</paramname> <paramvalue>3</paramvalue> </initparam> <loadonstartup>1</loadonstartup> </servlet> <servletmapping> <servletname>action</servletname> <urlpattern>*.do</urlpattern> </servletmapping> </webapp>
252
Il faut ensuite crer une nouvelle entit de type Java / Easy Struts / Easy Action associated with form .
Cliquez sur le bouton Suivant . La page suivante permet de renseigner les caractristiques de la page.
Renseignez le Use case avec le nom logique de la page, par exemple Login . Automatiquement les champs Form name et Form Type sont prrenseigns en fonction du Use Case saisi et des proprits saisies pour Struts. Pour ajouter des proprits, il suffit de cliquer sur le bouton Add Dveloppons en Java avec Eclipse 253
Il suffit alors de renseigner les caractristiques de la donne : le nom, le type, la valeur initiale et le mode de saisie dans la JSP. Pour valider chaque donne, il faut cliquer sur le bouton OK . Une fois la saisie termine, il faut cliquer sur le bouton Fin . Dans l'exemple de cette section, deux donnes sont ajoutes : nom de type String motDePasse de type String
Cliquez sur le bouton suivant La page suivante permet de saisir les renseignements sur la classe Action qui sera gnre.
254
Les divers renseignements saisis vont permettre de crer la JSP et de modifier le fichier strutsconfig.xml Une fois les donnes saisies, cliquez sur le bouton Suivant . La page suivante permet de prciser les renvois et les captures d'exceptions associs pour l'Action.
Pour ajouter un renvoi (forward), il faut cliquer sur le bouton Add correspondant.
255
Une fois les renvois ajouts, cliquez sur le bouton Fin . Si ncessaire, procdez de la mme faon avec les captures d'exceptions.
Cliquez sur le bouton Fin . Le fichier strutsconfig.xml est modifi pour tenir compte des lments paramtrs dans l'assistant. Exemple :
<?xml version="1.0" encoding="UTF8"?> <!DOCTYPE strutsconfig PUBLIC "//Apache Software Foundation//DTD Struts Configuration 1.1//EN" "http://jakarta.apache.org/struts/dtds/strutsconfig_1_1.dtd"> <strutsconfig> <! ========== Data Source Configuration =============================== > <datasources /> <! ========== Form Bean Definitions ================================== > <formbeans> <formbean name="loginForm" type="com.jmd.test.struts.form.LoginForm"> <formproperty name="motDePasse" type="java.lang.String" />
256
<formproperty name="nom" type="java.lang.String" /> </formbean> </formbeans> <! ========== Global Exception Definitions ============================== > <globalexceptions /> <! ========== Global Forward Definitions =============================== > <globalforwards /> <! ========== Action Mapping Definitions =============================== > <actionmappings> <action attribute="loginForm" input="/form/login.jsp" name="loginForm" path="/login" type="com.jmd.test.struts.action.LoginAction"> <forward name="succes" path="/form/accueil.jsp" /> <forward name="echec" path="/form/login.jsp" /> </action> </actionmappings> <! ========== Controller Configuration ================================ > <controller /> <! ========== Message Resources Definitions ============================ > <messageresources parameter="com.jmd.test.struts.ApplicationResources" /> <! ========== Plug Ins Configuration ================================= > </strutsconfig>
Il faut modifier le fichier LoginForm.java pour mettre le code excuter lors de la validation des donnes dans la mthode validate() la place de la leve de l'exception de type UnsupportedOperationException Exemple :
public ActionErrors validate(ActionMapping mapping, HttpServletRequest request) { ActionErrors erreurs = new ActionErrors(); if (nom == null || nom.equals("")) { erreurs.add("nom", new ActionError("error.login.nommanquant")); } return erreurs; }
257
Il faut ajouter une clause d'importation sur la classe org.apache.struts.action.ActionError Il faut modifier le fichier LoginAction.java pour mettre le code a xcuter lors des traitements dans la mthode execute() la pace de la leve de l'exception de type UnsupportedOperationException Exemple :
public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception { ActionForward resultat = null; LoginForm loginForm = (LoginForm) form; String nom = loginForm.getNom(); String mdp = loginForm.getMotDePasse(); request.setAttribute("nom", nom); if (nom.equals("test") && mdp.equals("test")) { resultat = (mapping.findForward("succes")); } else { resultat = (mapping.findForward("echec")); } return resultat; }
Il ensuite crer une nouvele entit de type type Java / Easy Struts / Easy Form dont le Use Case sera Accueil . Il faut modifier le fichier form/accueil.jsp gnr. Exemple :
<%@ taglib uri="/WEBINF/strutsbean.tld" prefix="bean"%> <%@ taglib uri="/WEBINF/strutshtml.tld" prefix="html"%> <html> <head> <meta name = "Generator" content = "Easy Struts Xslt generator for Eclipse."> <title>Struts Form for accueilForm</title> </head> <body> <H1>Bienvenue<logic:present name="nom" scope="request"> <bean:write name="nom" scope="request"/> </logic:present></H1> <body> </html>
258
259
Un clic sur le bouton Submit sans saisir de nom affiche le message d'erreur
La validation avec le nom test et le mot de passe test affiche la page d'accueil
260
Cet diteur propose deux onglets : Easy Struts pour modifier les informations avec une interface et Source qui permet de visualiser et de modifier directement le fichier xml. L'onglet Easy Struts de compose de deux parties : La partie de gauche permet une navigation dans les lements qui composent le fichier xml et la slection d'un lment. La partie de droite permet de modifier l'lment slectionn.
261
bouton Excuter
L'inconvnient de cette mthode est que cette configuration doit tre effectue pour chaque configuration de lancement. 2. Ajouter le rpertoire qui contient la bibliothque la variable PATH sous Windows ou LD_LIBRAY_PATH sous Unix. 3. Il est possible de copier la bibliothque dans un rpertoire contenu dans la variable java.library.path. L'inconvnient de cette mthode est qu'il faut recopier la bibliothque chaque nouvelle version de SWT utilise. 4. Il est possible de copier la bibliothque dans le rpertoire racine de l'application. L'inconvnient de cette mthode est qu'il faut recopier la bibliothque dans chaque projet qui utilise SWT.
Lors de l'excution, si la bibliothque ne peut tre accde par l'application, une exception est leve. Exemple :
java.lang.UnsatisfiedLinkError: no swtwin322135 in java.library.path
Pour une utilisation sous Linux, la configuration est similaire. Il est cependant ncessaire d'ajouter dans le classpath une bibliothque supplmentaire nomme swtpi.jar. Ce fichier ce trouve au mme endroit que le fichier swt.jar dans le rpertoire eclipse/plugins/org.eclipse.swt.gtk_3.0.0/gs/gtk/ Si ce fichier n'est pas inclus dans le classpath, une exception est leve lors de l'excution : Exemple :
Exception in thread "main" java.lang.NoClassDefFoundError: org/eclipse/swt/internal/gtk/OS at org.eclipse.swt.internal.Converter.wcsToMbcs(Converter.java:63) at org.eclipse.swt.internal.Converter.wcsToMbcs(Converter.java:54) at org.eclipse.swt.widgets.Display. (Display.java:118) at com.jmd.test.swt.TestSWT.main(TestSWT.java:9)
Sous Linux , il faut que l'application puisse accder aux bibliothques natives qui se situe dans le rpertoire eclipse/plugins/org.eclipse.swt.gtk_3.0.0/os/linux/x86 Le plus simple de mettre jour la variable d'environnement LD_PATH du systme ou d'utiliser l'option de la JVM lors de l'excution ( en adaptant le chemin d'Eclipse) : Djava.library.path="/home/java/eclipse/plugins/org.eclipse.swt.gtk_3.0.0/os/linux/x86. Si ces bibliothques ne peuvent tre trouves lors de l'excution, une exception est leve. Exemple :
Exception in thread "main" java.lang.UnsatisfiedLinkError: no swtpigtk3062 in java.library.path at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1517) at java.lang.Runtime.loadLibrary0(Runtime.java:788) at java.lang.System.loadLibrary(System.java:834)
263
Si l'environnement est correctement configur comme expliqu dans la section prcdente, l'excution de l'application se fait comme tout autre application.
264
19.2.1. Installation
V4All require l'installation du plugin GEF (Graphical Editing Framework) en excutant les tapes suivantes : tlchargez le fichier http://download.eclipse.org/tools/gef/downloads/drops/R2.1.1200306180934/GEFruntimeI20030618.zip sur le site d'Eclipse dcompressez ce fichier dans le rpertoire qui contient Eclipse. relancez Eclipse et cliquez sur le bouton Fin pour valider les modifications apportes par le plugin cliquez sur le bouton Oui lors de la demande de relance de l'application. Pour installer V4All, il faut suivre les tapes suivantes : tlchargez le fichier v4all_2_1_1_9.zip sur le site http://sourceforge.net/projects/v4all dcompressez son contenu dans le rpertoire qui contient Eclipse. relancez Eclipse et cliquez sur le bouton Fin pour valider les modifications apportes par le plugin cliquez sur le bouton Oui lors de la demande de relance de l'application.
19.2.2. Utilisation
Pour utiliser V4all, il faut crer ou utiliser un projet Java existant, puis il faut crer un nouveau projet de type V4E Editor .
Un assistant permet de slectionner le projet Java qui va contenir le code, de saisir le nom du fichier qui va contenir les informations, et de slectionner l'API utiliser Il suffit de cliquer sur le bouton Fin pour que la perspective ddie V4All s'affiche.
V4All propose son propre diteur pour raliser de manire WYSIWYG des interfaces graphiques. Cet diteur se compose de deux parties : une barre latrale qui permet de dfinir une action et de slectionner un composant Dveloppons en Java avec Eclipse 266
une zone de travail sur laquelle les composants sont dposs par cliquer/glisser Par dfaut, chacun des lments de la barre est ouvert, ce qui les rend peux visibles. Pour ouvrir un seul lment, il suffit de double cliquer sur son titre.
L'apparence de la barre peut tre configure pour faciliter son utilisation : le menu contextuel de la barre propose plusieurs options intressantes :
L'utilisation de l'option Use large Icons amliore la visibilit des icnes. L'option Layout permet de slectionner le mode d'affichage des composants : l'utilisation de l'option Details permet d'avoir un libell associ l'icne.
L'application se lance et la fentre dfinie s'affiche : elle est dj fonctionnelle et il suffit de cliquer sur le bouton de fermeture pour arrter l'application.
Pour ajouter un bouton, il suffit de faire un cliquer/glisser du composant sur la Frame : le conteneur qui va recevoir le composant change de couleur.
Chaque composant possde de nombreuses proprits qu'il est possible de modifier dans la vue "Proprits". Cette vue affiche les proprits du composant slectionn dans l'diteur. Pour un bouton, il est par exemple possible de modifier le nom du composant avec la proprit Basic / Bean Name , le texte du bouton avec Component / Text , ... Il faut procder de la mme faon pour ajouter une zone de texte (un composant de type TextField).
19.3. Eclipse VE
VE est un framework dont le but est de faciliter le dveloppement de plugin permettant la ralisation d'interfaces graphiques. Mme si VE est propos avec une implmentation de rfrence proposant la conception d'interfaces graphiques reposant sur Swing ou AWT, le but du framework est de pouvoir proposer terme la conception d'interfaces graphiques reposant sur d'autres bibliothques, pas ncessairement dveloppes en ou pour Java. Version utilise dans cette section Eclipse J2RE Eclipse VE 2.1.2 1.4.2_02 0.5
268
19.3.1. Installation
VE ncessite la version 2.1.2. minimum d'Eclipse et les plugins GEF version 2.1.2 et EMF version 1.1.1. Ces deux plugins sont tlcharger et installer avant d'installer VE si ils ne sont pas dj installs. Il faut tlcharger le fichier VEruntime0.5.0RC2.zip et le dcompresser dans le rpertoire d'Eclipse, comme pour installer n'importe quel autre plugin.
Il faut saisir le nom de la classe et renseigner les informations utiles, puis cliquer sur le bouton Fin . L'assistant a gnr une classe Java. Il est possible d'diter cette classe avec l'diteur de code Java ou grce au plugin VE de l'diter avec un diteur particulier, le Visual Editor .
269
Lors du lancement de cet diteur visuel, si l'erreur ci dessous s'affiche, cest que la version du plugin GEF requise n'est pas installe avec Eclipse.
L'diteur se compose de trois parties : A gauche, une barre de menu qui permet de slectionner les composants utiliser, regroups par thmes En haut droite, un diteur Wysiwyg du composant en cours de dveloppement En bas droite, un diteur de code qui affiche le code java correspondant La slection d'un composant dans l'diteur Wysiwyg affiche le code correspondant dans l'diteur de code.
270
La vue Proprits affiche les proprits du composant actuellement slectionn dans l'diteur.
La vue Java Beans affiche sous la forme d'une arborescence les diffrents lments qui constituent le composant en cours de dveloppement.
La slection d'un lment dans l'arborescence slectionne le composant dans l'diteur Wysiwyg et ces proprits sont affiches dans la vue Proprits .
La localisation du nouvel lment est facilite par l'affichage des zones du gestionnaire de positionnement du composant survol par la souris (dans l'exemple ci dessus un BorderLayout). L'ajout d'un autre composant est tout aussi facile : par exemple, ajouter un composant JLabel dans la partie North du gestionnaire de positionnement.
271
L'ajout d'un conteneur ce fait de la mme faon que celle d'un composant. Dans les proprits, il est possible de modifier le gestionnaire de positionnement dfini par dfaut pour ce conteneur en modifiant sa proprit layout.
272
Il est possible de dplacer un composant d'un conteneur vers un autre. Il suffit de faire un cliquer/glisser du composant vers le nouveau conteneur. Exemple : dplacement du bouton dans la partie East du gestionnaire de positionnement BorderLayout
273
La mise en forme des composants est trs intuitive et trs facile d'emploi notamment grce un affichage particulirement pratique des gestionnaires de positionnement de chacun des conteneurs.
Une tche de type A faire (TODO) est cre pour rappeler au dveloppeur que cette mthode a t gnre automatiquement et qu'il faut la complter avec le code adquat. Il est par exemple possible de remplacer l'affichage du nom de la mthode sur la sortie standard par une demande de l'arrt de l'application.
Pour pouvoir dfinir un gestionnaire pour un des autres gestionnaires d'vnements, il suffit d'utiliser l'option Events / Add Events du menu contextuel. Une boite de dialogue permet alors de slectionner l'vnement dsir.
274
Il suffit alors de slectionner : soit un type d'vnement (par exemple Key) : dans ce cas les trois mthodes correspondant aux trois vnements du listener correspondant seront gnres soit directement un vnement : dans ce cas, il est possible de dfinir quel sera l'origine du gestionnaire d'vnement (Listener ou Adapter) selon que l'on veuille ou non une dfinition par dfaut des mthodes implmenter. Un fois qu'un gestionnaire est dfini, une petite icne en forme de lunette apparat en haut gauche du gestionnaire. Si le gestionnaire d'vnement est dj partiellement implment pour un vnement particulier, alors lors de la slection d'un autre vnement, VE propose d'utiliser le gestionnaire existant.
275
19.3.5. Excution
Si l'application contient une mthode main(), il suffit de demander l'excution de cette classe. Dans l'exemple ci dessous, la classe ne possde pas de mthode main(). Il suffit d'crire une classe qui va instancier un objet de type du composant cr et qui va l'afficher Exemple : public class TestVeRun { public static void main(String[] args) { TestVE tv = new TestVE(); tv.show(); } }
Un clic sur le bouton Quitter ferme l'application. Il est aussi possible de demander l'excution sous le contrle du dbogueur comme pour une toute autre application.
276
Cette dernire partie prsente des plugins tiers qui ne sont pas ddi directement aux dveloppements avec Java. Elle comporte les chapitres suivants : Le dveloppement sans Java : prsente des plugins pour raliser des dveloppements avec des langages diffrents de Java. EclipseUML : prsente le plugins EclipseUML pour utiliser UML avec Eclipse. Eclipse et les bases de donnes : prsente plusieurs plugins pour raliser des oprations sur des bases de donnes.
277
Eclipse est un outil de dveloppement, crit en Java, dont un des buts initiaux est de pouvoir dvelopper non seulement en Java mais aussi avec d'autres langages grce des plugins spcifiques. Il existe dj plusieurs plugins plus ou moins avancs pour raliser des dveloppements en C/C++ et Cobol dvelopps par le projet Eclipse mais aussi C# ou PHP dvelopps par des tiers.
278
Dans la vue mise jour des dispositifs, utiliser l'option Nouveau / Signet du site du menu contextuel. Il faut saisir un nom par exemple "Eclipse CDT" et saisir l'url "http://update.eclipse.org/tools/cdt/updates/release".
Cliquez sur le bouton "Fin" pour permettre Eclipse de rechercher les mises jour. La vue "Mise jour des dispositifs" affiche celles disponibles.
279
La vue "Aperu" affiche des informations sur le plugin. Cliquez sur le bouton Installer Maintenant
Lisez la licence et si vous acceptez les termes du contrat, cliquez sur le bouton Suivant
280
281
Cliquez sur le bouton Oui . Faites la mme opration avec la mise jour Eclipse C/C++ development tools CppUnit support 1.1.0. Si vous installez cette mise jour avant la prcdente, le message d'erreur suivant est affich.
Une fois l'installation termine, l'diteur de la prespective ressource affiche des informations sur le CDT.
282
Pour un projet en C++, slectionnez "C++" dans la liste de gauche puis "Standard Make C++ Project" dans la liste de droite et enfin cliquez sur le bouton "Suivant".
Sous Windows, dans l'onglet Binary Parser , cliquez sur PE Windows Parser puis sur le bouton Fin . Dveloppons en Java avec Eclipse 283
284
Il faut ensuite crer un fichier nomm makefile pour automatiser la gnration de l'excutable grce l'outil make.
285
L'assistant d'installation se compose de plusieurs pages : Sur la page d'accueil, cliquez sur le bouton "Next". La page "License Agreement" apparait : lisez la licence et cliquez sur le bouton "Yes" pour accepter les termes de la licence et poursuivre l'installation. La page "Information" apparait : lisez le texte et cliquez sur le bouton "Next". La page "Select destination directory" apparait : slectionnez le rpertoire o sera installer MinGW et cliquez sur le bouton "Next". La page "Ready to install" apparait : cliquez sur le bouton "Install". Lancez l'excution de MSYS1.0.9.exe. Un script permet de configurer l'environnement.
286
Il faut dcocher l'option "use default" et saisir "make f makefile" dans le champ "build command".
Il faut ajouter les rpertoire suivants dans la variable d'environnement path : C:\msys\1.0\bin;C:\MinGW\bin; Attention : aprs la modification, il faut relancer Eclipse si celui ci tait en cours d'excution. Si les outils make et gcc ne sont pas trouvs, alors le message suivant est afficher dans la vue CBuild Exemple :
Build Error (Exec error:Launching failed)
Attention : il est important que le bon programme makefile soit le premier trouv dans le classpath. Il est par exemple possible d'avoir des problmes avec l'outil Delphi de Borland qui ajoute dans le classpath un rpertoire qui contient un programme Makefile.
287
Dans ce cas, il suffit de dplacer ou de supprimer la rfrence sur le rpertoire C:\Program Files\Borland\Delphi7\Bin; dans la variable classpath. (il faut le remettre en cas de suppression pour une utilisation correcte de Delphi). Si la gnration se passe bien, le vue CBuild affiche les tapes de le gnration. Exemple :
make f makefile gcc c premierTest.cpp gcc o premierTest premierTest.o L C:/MinGW/lib/gcclib/mingw32/3.2.3/ lstdc++
Lancer l'excution, il suffit de slectionner le fichier premierTest.exe et d'utiliser l'option Ouvrir du menu contextuel.
288
21. EclipseUML
La socit Omondo propose EclipseUML qui est un plugin permettant d'utiliser UML dans Eclipse. EclipseUML propose une version gratuite avec le support des 11 diagrammes d'UML 2.0. Version utilise dans cette section Eclipse J2SE EclipseUML 3.0.1 1.4.2_03 2.0.0
EclipseUML ncessite plusieurs plugins pour son fonctionnement avec Eclipse 3.0 : GEF (Graphical Editor Framework) 3.0.1 EMF (Eclipse Modeling Framework) 2.0.1 UML2 1.0.1
21.1. Installation
Il faut tlcharger le fichier eclipseUML_E301_freeEdition_2.0.0.beta.20041026.jar sur le site d'Omondo : http://www.omondo.com/download/free/index.html Ce fichier .jar contient un excutable qui va installer EclipseUML et les diffrents plugins tiers ncessaires (GEF, EMF et UML2). Si Eclipse est en cours d'excution, il faut le quitter avant de lancer l'installation. Pour lancer l'installation, il suffit de lancer la commande ci dessous dans une console DOS java jar eclipseUML_E301_freeEdition_2.0.0.beta.20041026.jar Un assistant guide l'utilisateur dans les diffrentes tapes de l'installation : l'cran d'accueil permet de slectionner la langue de l'assistant : cliquez sur le bouton Ok l'cran Introduction vous souhaite la bienvenue : cliquez sur le bouton Suivant l'cran Informations affiche des informations lire : cliquez sur le bouton Suivant l'cran License affiche la licence d'utilisation : lisez la licence et si vous l'acceptez, cliquez sur le bouton J'accepte les termes de cet accord de licence puis sur le bouton Suivant l'cran Configuration permet de slectionner le rpertoire d'installation d'Eclipse. Slectionnez le rpertoire d'installation d'Eclipse au besoin et cliquez sur le bouton Suivant . l'cran Configuration suivant permet de slectionner les packages installer : cliquez sur le Dveloppons en Java avec Eclipse 289
bouton Suivant l'cran Installation affiche la progression de la copie des fichiers : cliquez sur le bouton Suivant l'cran Install Complete : cliquez sur le bouton Quitter . Une fois l'installation termine, il suffit de lancer Eclipse.
Pour crer un nouveau diagramme, il faut slectionner un projet et utiliser l'option Nouveau / Autres du menu Fichier .
290
Il est possible d'exporter chaque diagramme dans plusieurs formats en utilisant l'option Export de l'diteur de diagrammes. Les formats utilisables sont : SVG, JPEG et Gif. Chacun des diteurs proposent des fonctionnalits de zoom via plusieurs options du menu contextuel.
Saisissez le nom du fichier et cliquez sur le bouton Fin . Dveloppons en Java avec Eclipse 291
Il suffit alors de composer son diagramme. Pour ajouter un acteur, il faut cliquer sur le bouton puis cliquer sur la surface de travail de la vue.
Il est possible de rpter l'opration d'ajout d'un nouvel acteur en cliquant sur la surface tant que le bouton
292
est activ. La cration d'un cas d'utilisation est similaire en utilisant le bouton .
Une bote de dialogue permet de saisir les informations concernant le nouveau cas d'utilisation.
Pour ajouter des associations, il suffit de cliquer sur l'association dsire dans la barre d'outils, puis de cliquer sur la premire entit (celle ci change de couleur au passage de la souris) puis sur la seconde (celle ci change aussi de couleur au passage de la souris). Pour ajouter un commentaire, il suffit de cliquer sur le bouton Une boite de dialogue permet de saisir le commentaire. .
293
294
Saisissez le nom du fichier qui sa contenir le diagramme et cliquez sur le bouton Fin pour crer le fichier et ouvrir l'diteur
Pour crer une nouvelle classe, il suffit de cliquer sur le bouton l'diteur. L'assistant de cration de classe s'ouvre.
Le bouton suivant permet d'ajouter des strotypes. Une fois la saisie termine, il suffit de cliquer sur le bouton Fin . La nouvelle classe est alors ajoute dans le diagramme mais aussi dans l'espace de travail.
295
L'option New du menu contextuel de la classe dans l'diteur permet d'ajouter des membres la classe. Une boite de dialogue permet alors la saisie des informations sur le nouveau membre. Par exemple pour ajouter un nouveau champ.
296
Pour ajouter une nouvelle interface, il suffit de cliquer sur le bouton puis sur la surface de travail de l'diteur. Une bote de dialogue permet de saisir les informations de la nouvelle interface.
297
La cration d'une association de gnralisation entre deux classes/interfaces se fait en cliquant sur le bouton , puis sur la classe fille et enfin sur la classe mre. La relation gnre (hritage ou implmentation) se fait automatiquement en fonction du type des deux entits concernes.
Pour mettre jour le code source en fonction des relations ajouts, il faut utiliser l'option Model synchronize du menu contextuel de la classe ou interface dans l'diteur. Les mises jour sont bidirectionnelles : dans le code et sur le diagramme. Il faut donc faire attention notamment la suppression d'une classe du diagramme qui la supprime aussi dans le package. Si le besoin est simplement de ne plus afficher la classe dans le diagramme, il faut simplement la masquer en utilisant l'option Hide du menu contextuel. Pour faire rapparatre un lment masqu, il faut utiliser l'option Package elements ...
298
Eclipse ne propose pas par dfaut de plugin capable de grer ou de manipuler une base de donnes, mais il existe de nombreux plugin permettant d'accomplir certaines de ces tches. Ce chapitre va prsenter quelques uns d'entres eux : Quantum JFaceDBC DBEdit Clay Database Modelling Hybernator
22.1. Quantum
Quantum est un plugin qui permet l'excution de requtes sur une base de donnes. Il affiche une vue arborescente des bases de donnes et propose plusieurs assistants pour effectuer des mises jour sur les donnes. Les bases de donnes supportes sont : Postgres, MySQL, AdabasD, Oracle, DB2, DB2 for AS400. Le site officiel est http://quantum.sourceforge.net/ Version utilise dans cette section Eclipse J2RE Quantum 2.1.2 1.4.2_02 2.2.2.
La version utilise dans cette section ncessite obligatoirement un JDK 1.4 pour fonctionner.
299
Pour pouvoir utiliser une base de donnes, il faut l'enregistrer dans le bookmark. Pour cela, dans la vue Database Bookmarks , cliquez sur le bouton ou slectionnez l'option New Bookmark du menu contextuel. Une boite de dialogue permet de saisir les informations concernant la base de donnes.
300
L'exemple ci dessous contient les paramtres pour une base de donnes MySQL nomme "Test" avec le pilote MySQL ConnectorJ 3.0 (http://www.mysql.com/products/connectorj/). Bookmark name : est le nom du bookmark (cette zone est libre) Username : est le nom de l'utilisateur pour la connexion la base de donnes Password : est le mot de passe de cet utilisateur Connect : est la chane de connexion dpendante du pilote utilis (jdbc:mysql://localhost/test dans l'exemple) Driver : est le nom de la classe du pilote JDBC (com.mysql.jdbc.Driver dans l'exemple) Type : : est le type de base de donnes utilise Driver Name : et le fichier jar qui contient le pilote JDBC (D:\java\mysqlconnectorjava3.0.11stable\mysqlconnectorjava3.0.11stablebin.jar dans l'exemple) Un fois tous les paramtres requis saisis, il suffit de cliquer sur le bouton Fin .
Le bookmark apparait dans la liste. Le menu contextuel propose alors plusieurs options permettant de modifier ou de supprimer le bookmark. L'option "Connect" permet de demander la connexion la base de donnes. Aucun mot de passe n'ayant t fourni, une boite de dialogue demande le mot de passe.
La vue "Database Bookmarks" affiche l'arborescence de la base de donnes. Dans l'exemple, la base de donnes ne contient qu'une seule table nomme "personnes".
Cette vue permet de trier et de filtrer le contenu de la table en cliquant que le bouton
Le filtre est dfini dans la partie de gauche et le tri dans la partie de droite de la bote de dialogue. Le menu contextuel de la vue Quantum Table View propose des options pour faire des mises jour des donnes de la table : insertion, modification et suppression. Un assistant permet de saisir les donnes ajouter dans la nouvelle occurrence de la table :
Une fois les donnes saisies, il suffit de cliquer sur le bouton Fin pour que la requte SQL gnre soit excute. Pour voir les modifications dans la vue Quantum Table View , il faut cependant explicitement demander le rafraichissement en cliquant sur le bouton .
302
Le principe de la construction dynamique de la requte SQL est identique celui de l'insertion d'une occurrence hormis le fait qu'il est possible de saisir les informations concernant la porte de la requte de mise jour (clause Where). L'assistant permettant la suppression d'une ou plusieurs occurrences s'utilise de la mme faon :
303
Le bouton
Un rond rouge en bas de la vue signale aussi une erreur lors de la dernire excution.
La vue Quantum SQL Log affiche des informations sur l'excution des requtes.
Dans le cas d'une requte d'interrogation, le rsultat est affich dans la vue Quantum Table View .
Les boutons et permettent respectivement d'importer et d'exporter le contenu de l'diteur dans un fichier possdant l'extension .sql par dfaut. La vue permet aussi de grer les transactions. Le bouton permet de prciser si le mode fonctionnement est autocommit (bouton enfonc) ou manuel. Dans le mode manuel, le bouton permet de faire un commit des oprations non encore valides et le bouton permet d'invalider les oprations non encore valides (rollback). La vue Query History contient un historique des requtes excutes : un double clic sur une de ces requtes permet de rafficher son contenu dans la vue Quantum SQL Query . Dveloppons en Java avec Eclipse 304
22.2. JFaceDbc
JFaceDBC est un plugin qui propose de faciliter la manipulation d'une base de donnes. Ce plugin possde quelques fonctionnalits intressantes comme un systme de gestion des connexions avec chargement dynamique des pilotes, l'affichage sous la forme graphique du schma de la base de donnes ou la cration pour une table des fichiers xml et java pour l'outil de mapping Hibernate. Le site officiel est l'url http://jfacedbc.sourceforge.net/ Version utilise dans cette section Eclipse J2RE JFaceDBC 2.1.2 1.4.2_02 2.2.1.
La version utilise dans cette section ncessite un JDK 1.4 pour fonctionner.
305
Un certain nombre d'entre eux sont prconfigurs et chargs dynamiquement si ils sont trouvs dans le classpath. Si le chargement a russi alors une petite coche bleu est affiche au lieu d'une croix blanche dans un rond rouge. Il est possible d'ajouter un nouveau pilote en cliquant sur le bouton MySQL ConnectorJ 3.0 . Voici un exemple avec le pilote
306
Il faut renseigner le nom du pilote, un exemple d'URL de connexion, slectionner le fichier jar pour l'ajouter dans l'onglet Extra Class Path , saisir le nom de la classe du Pilote et cliquer sur le bouton OK Si le chargement du pilote a russi, alors la petite coche bleue est affiche.
La vue "Aliases" permet de grer des connexions. Pour ajouter un alias, il suffit de cliquer sur le bouton ou d'utiliser l'option Create New Alias du menu contextuel. Une boite de dialogue permet de saisir les informations concernant le nouvel alias de connexion.
Il faut saisir un nom, slectionner le pilote parmis la liste de ceux dfinis, saisir l'URL de la connexion, le nom de l'utilisateur et son mot de passe.
Pour ouvrir une connexion, il suffit de double cliquer sur l'alias ou d'utiliser l'option Open de son menu contextuel. Dveloppons en Java avec Eclipse 307
Saisissez les informations et cliqueez sur le bouton "OK". JFaceDBC retrouve les informations de la base de donnes
La vue Database Structure affiche les bases de donnes accessibles via la connexion.
La vue Connection Info permet d'obtenir des informations sur les paramtres de la connexion .
308
Pour connatre la structure d'une table, il suffit de la slectionner dans la vue Database Structure View
309
L'option Generate Select in SQL Editor ouvre l'diteur SQL ( SQL Editor ) avec une requte permettant d'afficher le contenu de la table.
Il suffit alors de cliquer sur les donnes modifier et de saisir sa nouvelle valeur :
Il est possible d'appliquer un filtre pour limiter le nombre d'occurrences affiches dans la grille. Pour cela, il suffit de saisir la clause where qui sera ajoute la requte de slection et de cliquer sur le bouton Apply .
310
L'assistant demande ensuite le nom du fichier .sql qui sera cr et de slectionner le projet qui va le contenir.
Un clic sur le bouton Fin cre le fichier et ouvre l'diteur : Dveloppons en Java avec Eclipse 311
La seconde liste droulante permet de slectionner la base de donnes utiliser. Le bouton ou l'option Execute SQL du menu contextuel permet de lancer l'excution de la requte.
L'diteur propose une coloration syntaxique des diffrents lments de la requte mais aussi une compltion de code pour les tables et les champs, ce qui est trs pratique. Cette fonction est appele en utilisant la combinaison de touches "Ctrl + espace".
312
Pour cela, il faut crer une nouvelle entit de type "JFaceDBC/JFaceDBC SQL Schema Visualizer".
L'assistant demande ensuite le nom du fichier .sqls qui sera cr et de slectionner le projet qui va le contenir.
Un clic sur le bouton Fin cr le fichier et ouvre l'diteur. Par dfaut, ce dernier est vide.
Pour ajouter une nouvelle table au schma, il suffit de faire un cliquer/glisser entre une table de la vue Database Structure et l'diteur.
313
Le menu contextuel de l'diteur propose l'option Reverse Database . Un assistant demande de slectionner la connexion concerne.
Il suffit de slectionner la connexion concerne et de cliquer sur le bouton Suivant . Il faut ensuite slectionner la ou les bases de donnes inclure parmis celles accessibles via la connexion.
Cliquer sur le bouton Suivant . L'assistant demande de slectionner la ou les tables concernes.
Un clic sur le bouton Fin gnre le schma dans l'diteur. Dveloppons en Java avec Eclipse 314
22.3. DBEdit
DBEdit est un plugin qui permet l'excution de requtes sur une base de donnes. Le site officiel est http://sourceforge.net/projects/dbedit Version utilise Eclipse J2RE DBEdit 2.1.2 1.4.2_02 1.0.1.
315
La premire chose faire est de dfinir une connexion en utilisant l'option Connection/Configure du menu contextuel de la vue Tables . Une boite de dialogue permet de grer les connexions.
Pour ajouter une nouvelle connexion, il suffit de cliquer sur le bouton New . I
Il suffit alors de saisir les informations ncessaires : Name : est le nom de la connexion JDBC Driver : permet de prciser le nom de la classe du pilote JDBC Serveur URL : est l'URL de connexion User et password : sont le nom et le mot de passe de l'utilisateurs Un clic sur le bouton Apply valide les informations. Il faut ensuite ajouter le pilote au classpath en cliquant sur l'onglet Classpath
316
Il suffit de cliquer sur le bouton Add Archive et de slectionner le fichier Jar contenant le pilote utiliser. L'onglet Additional permet de prciser des paramtres supplmentaires au pilote JDBC. Un clic sur le bouton Connect permet d'ouvrir la connexion.
Si le pilote n'est pas inclus dans le classpath, un message d'erreur est affich
Une fois la connexion tablie, la vue Tables affiche une arborescence contenant les lments de la base de donnes : tables, vues, champs, index ....
317
A partir du menu contextuel de cette vue, il est possible de raliser plusieurs actions : crer une nouvelle entit : connexion, schma, table, fichier SQL importer ou exporter une table ouvrir une table dans l'diteur L'export se fait avec un assistant :
318
Il faut slectionner la connexion et les tables concernes, slectionner le rpertoire de destination et cliquer sur le bouton Fin . L'exportation se fait sous le forme de requtes SQL :
Il suffit de slectionner les entits et de cliquer sur le bouton Suivant . La page suivante permet de prciser les options de correspondance des types de donnes.
319
Un clic sur le bouton Fin permet de lancer l'importation. Un clic sur le bouton permet de rgler certaines options d'affichage.
L'option "Filters" permet de restreindre les types d'lments qui sont affichs :
Par dfaut, l'diteur est en mode consultation. Le menu contextuel permet de raliser certaines oprations : Edit Mode : permet de basculer dans le mode de mise jour des donnes pour un seul champ Insert Row : permet d'insrer une nouvelle occurrence dans la table Delete Row : permet de supprimer l'occurrence slectionne Chaque mise jour doit tre confirme dans une bote de dialogue
320
Un clic sur le bouton Details permet d'obtenir des informations prcises sur l'opration.
Le bouton dans la barre d'outils permet de rafraichir les donnes de l'diteur. Le bouton d'outils permet de saisir un filtre.
dans la barre
321
Il est possible de limiter le nombre d'occurences renvoyes par une requte. Ceci est ncessaire pour des tables possdant de nombreuses occurences car dans ce cas un affichage de toutes les occurences provoque une exception de type OutOfMemory. Ce nombre d'occurences est rglable dans les prfrences.
322
La version 1.0.2 propose une pagination sur les occurences obtenues en fonction du nombre d'occurences maximales afficher. Pour l'activer, il faut utiliser l'option "Toogle" du menu contextuel de la barre de titre "Rsultats".
Ce plugin ncessite le plugin GEF (Graphical Editor Framework). Si il est absent, un message d'erreur est affich.
de valider les modifications en attente et de relancer l'application. L'installation par le gestionnaire de mises jour est possible en utilisant l'url http://www.azzurri.jp/eclipse/plugins
Il faut slectionner Database design et Azzurri Clay Database Design Diagram puis cliquer sur le bouton Suivant .
Il faut slectionner l'emplacement du fichier de donnes (par dfaut le rpertoire du projet en cours), saisir le nom de ce fichier, et slectionner le type de base de donnes cible dans lequel les scripts SQL seront gnrs. Dveloppons en Java avec Eclipse 324
L'option Edit Database Model du menu contextuel permet de saisir des informations concernant le modle.
Dans cette bote de dialogue, la donne SQL Dialect est particulirement importante car elle va conditionner les possibilits de l'diteur selon le type de base de donnes slectionnes, notamment par exemple au niveau des types de donnes utilisables dans les dfinitions de tables. Le bouton permet d'ajouter une nouvelle table au modle en cliquant sur le bouton puis sur la zone d'dition de l'diteur. L'option Edit Table du menu contextuel permet de saisir des donnes gnrales de la table tel que son nom, une description ou des remarques.
Un double clic sur la nouvelle table cre ou l'utilisation de l'option Edit Table Column permet de saisir la description des champs qu'elle va contenir.
325
Pour ajouter une nouvelle colonne, il suffit de cliquer sur le bouton Add New
Il suffit alors de saisir les donnes du nouveau champ. L'opration doit tre rpte pour chaque table du modle. Exemple :
La vue "Structure" affiche sous une forme arborescente la structure du modle avec les diffrents lments qui la compose. Dveloppons en Java avec Eclipse 326
Il est possible de crer des index en utilisant l'option Edit Table Indexes du menu contextuel.
Pour ajouter un champ dans l'index, il faut cliquer sur le bouton New dans Key Column List
327
Slectionnez le champ et cliquez sur le bouton Ok . Une fois toute les informations saisies, il suffit de cliquer sur le bouton OK . Le nouvel index apparat dans la vue Structure . Il est possible de dfinir des index uniques en utilisant l'option Edit Table Unique Keys du menu contextuel.
Pour ajouter un champ dans l'index, il faut cliquer sur le bouton New dans Key Column List .
Slectionnez le champ et cliquez sur le bouton Ok . Une fois toutes les informations saisies, il suffit de cliquer sur le bouton OK . Le nouvel index apparat dans la vue Structure
328
Le bouton permet de crer des relations entre deux tables. Pour cela, il faut cliquer sur le bouton, cliquer sur la table contenant la cl trangre puis cliquer sur la table rfrence.
Le lien entre les deux tables apparait sous la forme d'une flche bleu entre les deux tables. Le menu contextuel Edit Foreign Key permet de modifier la cl trangre.
329
Une boite de dialogue permet de saisir les informations ncessaires la connexion : le type de connexion peut tre choisi dans la liste : si celui ci n'apparat pas dans la liste, alors il faut slectionner unknown l'alias est un nom qui permet de reconnatre la connexion user et password sont le nom de l'utilisateur et son mot de passe utilis pour la connexion JDBC Driver est le nom pleinement qualifi de la classe contenant le pilote utiliser Driver Location est le chemin du fichier jar contenant la classe du pilote Cliquez sur le bouton Ok .
330
Slectionnez l'alias et cliquez sur le bouton Suivant . La connexion la base de donnes s'effectue et l'assistant demande la slection du schma. Dans l'exemple de cette section, il n'y en a pas.
Cliquez sur le bouton Suivant . L'assistant demande de slectionner les tables qui doivent tre intgres dans le modle.
Pour slectionner une table, il suffit de la slectionner dans la liste de gauche et de la faire basculer dans la liste de droite en utilisant le bouton > . Une fois la slection termine, il suffit de cliquer sur le bouton Fin .
331
Il faut slectionner le dossier qui va contenir le fichier, saisir le nom de ce fichier et cliquer sur le bouton Suivant .
La page suivante permet de slectionner les types d'ordres qui seront gnrs. Un clic sur le bouton Fin permet de gnrer le fichier et de l'ouvrir dans l'diteur associ au fichier .sql. Dveloppons en Java avec Eclipse 332
Exemple :
DROP TABLE IF EXISTS Factures; DROP TABLE IF EXISTS Clients; CREATE TABLE Clients ( id_clients INT(10) NOT NULL AUTO_INCREMENT , nom_clients CHAR(150) , PRIMARY KEY (id_clients) )TYPE=InnoDB; CREATE TABLE Factures ( id_factures INT(10) NOT NULL AUTO_INCREMENT , num_factures CHAR(10) , date_factures DATE , id_clients INT(10) , UNIQUE UQ_Factures_1 (num_factures) , PRIMARY KEY (id_factures) , INDEX (id_clients) , FOREIGN KEYFK_Factures_1 (id_clients) REFERENCESClients (id_clients) ) TYPE=InnoDB; CREATE INDEX IX_Factures_1 ON Factures (id_clients ASC);
333
Partie 6 : Annexes
334
23. Annexes
Annexe A : GNU Free Documentation License
Version 1.1, March 2000
Copyright (C) 2000 Free Software Foundation, Inc. 59 Temple Place, Suite 330, Boston, MA 021111307 USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. 0. PREAMBLE The purpose of this License is to make a manual, textbook, or other written document "free" in the sense of freedom: to assure everyone the effective freedom to copy and redistribute it, with or without modifying it, either commercially or noncommercially. Secondarily, this License preserves for the author and publisher a way to get credit for their work, while not being considered responsible for modifications made by others. This License is a kind of "copyleft", which means that derivative works of the document must themselves be free in the same sense. It complements the GNU General Public License, which is a copyleft license designed for free software. We have designed this License in order to use it for manuals for free software, because free software needs free documentation: a free program should come with manuals providing the same freedoms that the software does. But this License is not limited to software manuals; it can be used for any textual work, regardless of subject matter or whether it is published as a printed book. We recommend this License principally for works whose purpose is instruction or reference. 1. APPLICABILITY AND dfiniTIONS This License applies to any manual or other work that contains a notice placed by the copyright holder saying it can be distributed under the terms of this License. The "Document", below, refers to any such manual or work. Any member of the public is a licensee, and is addressed as "you". A "Modified Version" of the Document means any work containing the Document or a portion of it, either copied verbatim, or with modifications and/or translated into another language. A "Secondary Section" is a named appendix or a frontmatter section of the Document that deals exclusively with the relationship of the publishers or authors of the Document to the Document's overall subject (or to related matters) and contains nothing that could fall directly within that overall subject. (For example, if the Document is in part a textbook of mathematics, a Secondary Section may not explain any mathematics.) The relationship could be a matter of historical connection with the subject or with related matters, or of legal, commercial, philosophical, ethical or political position regarding them. The "Invariant Sections" are certain Secondary Sections whose titles are designated, as being those of Invariant Sections, in the notice that says that the Document is released under this License. The "Cover Texts" are certain short passages of text that are listed, as FrontCover Texts or BackCover Texts, in the notice that says that the Document is released under this License. A "Transparent" copy of the Document means a machinereadable copy, represented in a format whose specification is available to the general public, whose contents can be viewed and edited directly and Dveloppons en Java avec Eclipse 335
straightforwardly with generic text editors or (for images composed of pixels) generic paint programs or (for drawings) some widely available drawing editor, and that is suitable for input to text formatters or for automatic translation to a variety of formats suitable for input to text formatters. A copy made in an otherwise Transparent file format whose markup has been designed to thwart or discourage subsequent modification by readers is not Transparent. A copy that is not "Transparent" is called "Opaque". Examples of suitable formats for Transparent copies include plain ASCII without markup, Texinfo input format, LaTeX input format, SGML or XML using a publicly available DTD, and standardconforming simple HTML designed for human modification. Opaque formats include PostScript, PDF, proprietary formats that can be read and edited only by proprietary word processors, SGML or XML for which the DTD and/or processing tools are not generally available, and the machinegenerated HTML produced by some word processors for output purposes only. The "Title Page" means, for a printed book, the title page itself, plus such following pages as are needed to hold, legibly, the material this License requires to appear in the title page. For works in formats which do not have any title page as such, "Title Page" means the text near the most prominent appearance of the work's title, preceding the beginning of the body of the text. 2. VERBATIM COPYING You may copy and distribute the Document in any medium, either commercially or noncommercially, provided that this License, the copyright notices, and the license notice saying this License applies to the Document are reproduced in all copies, and that you add no other conditions whatsoever to those of this License. You may not use technical measures to obstruct or control the reading or further copying of the copies you make or distribute. However, you may accept compensation in exchange for copies. If you distribute a large enough number of copies you must also follow the conditions in section 3. You may also lend copies, under the same conditions stated above, and you may publicly display copies. 3. COPYING IN QUANTITY If you publish printed copies of the Document numbering more than 100, and the Document's license notice requires Cover Texts, you must enclose the copies in covers that carry, clearly and legibly, all these Cover Texts: FrontCover Texts on the front cover, and BackCover Texts on the back cover. Both covers must also clearly and legibly identify you as the publisher of these copies. The front cover must present the full title with all words of the title equally prominent and visible. You may add other material on the covers in addition. Copying with changes limited to the covers, as long as they preserve the title of the Document and satisfy these conditions, can be treated as verbatim copying in other respects. If the required texts for either cover are too voluminous to fit legibly, you should put the first ones listed (as many as fit reasonably) on the actual cover, and continue the rest onto adjacent pages. If you publish or distribute Opaque copies of the Document numbering more than 100, you must either include a machinereadable Transparent copy along with each Opaque copy, or state in or with each Opaque copy a publiclyaccessible computernetwork location containing a complete Transparent copy of the Document, free of added material, which the general networkusing public has access to download anonymously at no charge using publicstandard network protocols. If you use the latter option, you must take reasonably prudent steps, when you begin distribution of Opaque copies in quantity, to ensure that this Transparent copy will remain thus accessible at the stated location until at least one year after the last time you distribute an Opaque copy (directly or through your agents or retailers) of that edition to the public. It is requested, but not required, that you contact the authors of the Document well before redistributing any large number of copies, to give them a chance to provide you with an updated version of the Document. 4. MODIFICATIONS You may copy and distribute a Modified Version of the Document under the conditions of sections 2 and 3 Dveloppons en Java avec Eclipse 336
above, provided that you release the Modified Version under precisely this License, with the Modified Version filling the role of the Document, thus licensing distribution and modification of the Modified Version to whoever possesses a copy of it. In addition, you must do these things in the Modified Version:
A. Use in the Title Page (and on the covers, if any) a title distinct from that of the Document, and from those of previous versions (which should, if there were any, be listed in the History section of the Document). You may use the same title as a previous version if the original publisher of that version gives permission. B. List on the Title Page, as authors, one or more persons or entities responsible for authorship of the modifications in the Modified Version, together with at least five of the principal authors of the Document (all of its principal authors, if it has less than five). C. State on the Title page the name of the publisher of the Modified Version, as the publisher. D. Preserve all the copyright notices of the Document. E. Add an appropriate copyright notice for your modifications adjacent to the other copyright notices. F. Include, immediately after the copyright notices, a license notice giving the public permission to use the Modified Version under the terms of this License, in the form shown in the Addendum below. G. Preserve in that license notice the full lists of Invariant Sections and required Cover Texts given in the Document's license notice. H. Include an unaltered copy of this License. I. Preserve the section entitled "History", and its title, and add to it an item stating at least the title, year, new authors, and publisher of the Modified Version as given on the Title Page. If there is no section entitled "History" in the Document, create one stating the title, year, authors, and publisher of the Document as given on its Title Page, then add an item describing the Modified Version as stated in the previous sentence. J. Preserve the network location, if any, given in the Document for public access to a Transparent copy of the Document, and likewise the network locations given in the Document for previous versions it was based on. These may be placed in the "History" section. You may omit a network location for a work that was published at least four years before the Document itself, or if the original publisher of the version it refers to gives permission. K. In any section entitled "Acknowledgements" or "Dedications", preserve the section's title, and preserve in the section all the substance and tone of each of the contributor acknowledgements and/or dedications given therein. L. Preserve all the Invariant Sections of the Document, unaltered in their text and in their titles. Section numbers or the equivalent are not considered part of the section titles. M. Delete any section entitled "Endorsements". Such a section may not be included in the Modified Version. N. Do not retitle any existing section as "Endorsements" or to conflict in title with any Invariant Section. If the Modified Version includes new frontmatter sections or appendices that qualify as Secondary Sections and contain no material copied from the Document, you may at your option designate some or all of these sections as invariant. To do this, add their titles to the list of Invariant Sections in the Modified Version's license notice. These titles must be distinct from any other section titles. You may add a section entitled "Endorsements", provided it contains nothing but endorsements of your Modified Version by various partiesfor example, statements of peer review or that the text has been Dveloppons en Java avec Eclipse 337
approved by an organization as the authoritative dfinition of a standard. You may add a passage of up to five words as a FrontCover Text, and a passage of up to 25 words as a BackCover Text, to the end of the list of Cover Texts in the Modified Version. Only one passage of FrontCover Text and one of BackCover Text may be added by (or through arrangements made by) any one entity. If the Document already includes a cover text for the same cover, previously added by you or by arrangement made by the same entity you are acting on behalf of, you may not add another; but you may replace the old one, on explicit permission from the previous publisher that added the old one. The author(s) and publisher(s) of the Document do not by this License give permission to use their names for publicity for or to assert or imply endorsement of any Modified Version. 5. COMBINING DOCUMENTS You may combine the Document with other documents released under this License, under the terms defined in section 4 above for modified versions, provided that you include in the combination all of the Invariant Sections of all of the original documents, unmodified, and list them all as Invariant Sections of your combined work in its license notice. The combined work need only contain one copy of this License, and multiple identical Invariant Sections may be replaced with a single copy. If there are multiple Invariant Sections with the same name but different contents, make the title of each such section unique by adding at the end of it, in parentheses, the name of the original author or publisher of that section if known, or else a unique number. Make the same adjustment to the section titles in the list of Invariant Sections in the license notice of the combined work. In the combination, you must combine any sections entitled "History" in the various original documents, forming one section entitled "History"; likewise combine any sections entitled "Acknowledgements", and any sections entitled "Dedications". You must delete all sections entitled "Endorsements." 6. COLLECTIONS OF DOCUMENTS You may make a collection consisting of the Document and other documents released under this License, and replace the individual copies of this License in the various documents with a single copy that is included in the collection, provided that you follow the rules of this License for verbatim copying of each of the documents in all other respects. You may extract a single document from such a collection, and distribute it individually under this License, provided you insert a copy of this License into the extracted document, and follow this License in all other respects regarding verbatim copying of that document. 7. AGGREGATION WITH INDEPENDENT WORKS A compilation of the Document or its derivatives with other separate and independent documents or works, in or on a volume of a storage or distribution medium, does not as a whole count as a Modified Version of the Document, provided no compilation copyright is claimed for the compilation. Such a compilation is called an "aggregate", and this License does not apply to the other selfcontained works thus compiled with the Document, on account of their being thus compiled, if they are not themselves derivative works of the Document. If the Cover Text requirement of section 3 is applicable to these copies of the Document, then if the Document is less than one quarter of the entire aggregate, the Document's Cover Texts may be placed on covers that surround only the Document within the aggregate. Otherwise they must appear on covers around the whole aggregate. 8. TRANSLATION Translation is considered a kind of modification, so you may distribute translations of the Document under the Dveloppons en Java avec Eclipse 338
terms of section 4. Replacing Invariant Sections with translations requires special permission from their copyright holders, but you may include translations of some or all Invariant Sections in addition to the original versions of these Invariant Sections. You may include a translation of this License provided that you also include the original English version of this License. In case of a disagreement between the translation and the original English version of this License, the original English version will prevail. 9. TERMINATION You may not copy, modify, sublicense, or distribute the Document except as expressly provided for under this License. Any other attempt to copy, modify, sublicense or distribute the Document is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance. 10. FUTURE REVISIONS OF THIS LICENSE The Free Software Foundation may publish new, revised versions of the GNU Free Documentation License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. See http://www.gnu.org/copyleft/. Each version of the License is given a distinguishing version number. If the Document specifies that a particular numbered version of this License "or any later version" applies to it, you have the option of following the terms and conditions either of that specified version or of any later version that has been published (not as a draft) by the Free Software Foundation. If the Document does not specify a version number of this License, you may choose any version ever published (not as a draft) by the Free Software Foundation.
Annexe B : Webographie
http://www.eclipse.org/ le site officiel d'Eclipse http://www.eclipse.org/downloads/index.php la page officielle pour le tlchargement d'Eclipse http://www.eclipsetotale.com/index.html portail en franais consacr au projet Eclipse et aux outils WebSphere Studio d'IBM
http://eclipseplugins.2y.net/eclipse/index.jsp
http://eclipsewiki.swiki.net/ http://www.sysdeo.com/eclipse/tomcatPluginFR.html plugin pour utiliser Tomcat dans Eclipse http://www.eclipseworkbench.com/jsp/ portail en anglais
339
340