(publié le 10/10/2006)
Présentation d'Eclipse Web Tools Platform (WTP)
|
Les débuts difficiles du projet
Web Tools
Le projet WebTools a été annoncé au mois
de juin 2003 (près de deux ans après la sortie
d'Eclipse 1.0) mais les développements n'ont débuté
que fin 2004 avec les contributions d'une part d'ObjectWeb
d'autre part d'IBM. La première version utilisable
verra le jour en août 2005 avec une numérotation
indiquant un certain manque de maturité : WTP 0.7.
Fort de nombreux renforts, le retard a été
rattrapé et le projet Web Tools est de plus en plus
solide. Le projet compte actuellement plus d'une trentaine
de développeurs à plein temps (essentiellement
des employés d'IBM, mais aussi de BEA et d'Oracle),
une dizaine de 'Very active contributors' et une vingtaine
de 'Active contributors' (Listes
des contributeurs). Le responsable du projet est actuellement
une personne de BEA.
|
|
Le développement d'applications J2EE est l'utilisation
principale de Java. Il est donc logique que la fondation Eclipse ait répondu
aux besoins particuliers des développeurs d'applications J2EE en
complétant son environnement de développement Java. Les
développements de ces outils J2EE se font dans le cadre du projet
WTP (Web Tools Platform). Après des débuts laborieux (cf
encart), le projet WTP a atteint la maturité depuis la version
1.5 (livrée en juin 2006). Cette version 1.5 cible J2EE 1.4. La
prochaine version majeure, WTP 2.0 (juin 2007), ciblera Java EE 5.
WTP est organisé en deux projets :
Web
Standard Tools (WST) : les applications J2EE utilisent des technologies
qui ne sont pas propres au monde Java. Le but du projet WST est de fournir
les outils pour manipuler ces technologies : XML, HTML, XHTML, XSD, DTD,
XSLT, SVG, JavaScript/ECMAScript, CSS, SOAP, WSDL, UDDI, WSIL, ...
J2EE Standard Tools
(JST) : Eclipse répond au besoin de base des développeurs
Java. Dans le cadre des développements J2EE des outils améliorant
la productivité sont nécessaires. Le projet JST fourni des
outils supportant le modèle applicatif de J2EE (Servlet, JSP et
EJB), prenant en compte le modèle de déploiement (formats
WAR et EAR) et permettant de déboguer les applications J2EE de
façon intégrée à Eclipse.
Courant 2006, trois nouveaux sous-projets ont rejoint le projet WebTools
:
- Dali Java Persistence API (JPA) Tools : rattaché
au projet JST, le sous-projet Dali propose des outils facilitant le développement
de code conforme à la spécification Java Persistence API
(Volet persistance de la spécification EJB 3.0).
- JavaServer Faces Tools : intégrée
à Java EE 5.0, les JSF viennent compléter le modèle
applicatif de J2EE. Ce sous-projet, rattaché au projet JST, propose
des outils facilitant le développement des JSF.
- AJAX Toolkit Framework (ATF) : rattaché
au projet WST, le sous-projet ATF a pour objectif de développer
des outils utiles pour les développeurs d'applications AJAX.
Présentation
de WST (Web Standard Tools)
Une des caractéristiques du développement
d'applications Web est la multiplication des formats de fichiers que les
développeurs sont amenés à manipuler.
Le projet WebTools simplifie ces manipulations en fournissant des outils,
notamment d'édition, pour les principaux types de fichiers utilisés
dans les applications Web. Ces outils sont indépendants de J2EE
et peuvent être utilisés dans d'autres contextes (par exemple
ils servent aussi de base à l'outillage PHP du projet PHP-IDE).
Outillage
HTML, CSS et JavaScript
Créer des pages HTML, mettre au point des feuilles
de style CSS ou encore développer du code JavaScript sont des tâches
courantes lors du développement d'applications Web.
WST propose des éditeurs de code source pour chacun de ces langages.
Ces éditeurs sont moins sophistiqués que l'éditeur
de code Java mais ils proposent les principales fonctionnalités
que sont : la coloration syntaxique, l'assistance à la saisie ('complétion'
déclenchée par Ctrl+espace), le formattage et l'affichage
de la structure du fichier dans la vue 'Outline'. A noter que l'éditeur
de code HTML prend en compte le fait que du code JavaScript ou CSS puisse
être inclus dans la page.
Les récapitulatifs des fonctionnalités
supportées ou non par chacun de ces éditeurs sont disponibles
dans la documentation : fonctionnalités
de l'éditeur HTML, de
l'éditeur JavaScript et de
l'éditeur CSS.
Pour la version 2.0 de WTP, il est prévu d'ajouter
un éditeur graphique de pages HTML. Les travaux sur cet éditeur
ont commencé après la sortie de WTP 1.5, ils se basent sur
une contribution initiale de Sybase (téléchargeable sur
cette
page). Cet éditeur permet d'afficher simultanément les
vues source et graphique :
Outillage
XML
L'outillage XML est principalement composé de
trois éditeurs pour les fichiers de types XML, DTD et XMLSchema.
L'éditeur de DTD est assez sommaire, ses fonctionnalités
se limitent à la coloration syntaxique et à la validation
lors de l'enregistrement.
L'éditeur de fichier XML propose une vision code
source et une vision sous forme d'arbre. L'éditeur de code source
est presque aussi complet que l'éditeur de code Java. Il propose
notamment la coloration syntaxique, le formattage, la validation lors
de la frappe et l'assistance à la saisie (basée sur la grammaire
associée au fichier). Le récapitulatif des fonctionnalités
supportées par l'éditeur de fichier XML se trouve sur
cette page.
L'éditeur de fichier XMLSchema propose une vision
code source et une vision graphique. L'éditeur de code source possède
les mêmes fonctionnalités que l'éditeur de fichier
XML, l'éditeur graphique est en phase de refonte, il reste perfectible
mais donne déjà une vision intéressante de la structure
du fichier XMLSchema.
Outillage
WebServices
Pour le développement de WebServices les trois
fonctionnalités les plus visibles sont un éditeur de fichier
WSDL (ressemblant à l'éditeur de fichier XMLSchema), des
assistants pour la création de WebServices (notamment génération
à partir d'une classe Java) et un outil permettant d'invoquer un
WebServices (Le 'WebServices Explorer').
Autres
outils proposés par WST
Project Facets : WST fournit des fonctionnalités
de base qui peuvent être étendues par d'autres projets. Parmi
ces fonctionnalités, la notion de 'Project Facets' est la plus
intéressante.
Pour les applications Java simple, les fichiers sont placés dans
un type de projet nommé 'Projet Java'. dans le cas des développements
Web et notamment J2EE, de nouveaux types de projets sont proposés.
Ce sont à la base des projets Java mais avec une arborescence prédéfinie
et des paramétrages automatiques (par exemple des librairies ajoutées
au chemin de compilation). Pour gérer tous les cas possibles (versions
de J2EE, utilisation de frameworks comme Struts ou Spring, etc...), il
faudrait envisager de nombreux de types de projets. Pour éviter
cette multiplication, WebTools définit quelques types de projets
relativement génériques (par exemple, 'Projet Web Dynamique')
et propose la possibilité d'ajouter et de supprimer dynamiquement
des fonctionnalités à ces projets, ces fonctionnalités
sont nommées 'Project Facets' et sont configurables lors de la
création du projet et par la suite dans la page des propriétés
du projet.
TCP-IP Monitor : il est parfois intéressant
de voir le détail des communications échangées entre
une application cliente et une application Serveur. La vue 'TCP-IP Monitor'
permet de tracer ces communications et d'en voir le contenu (quelque soit
son format) :
Sous-projet
ATF : AJAX Toolkit Framework
Créé début 2006, ce sous-projet
a pour but d'ajouter des outils pour aider les développeurs d'applications
AJAX. Les premiers travaux portent sur les sujets suivants :
- Amélioration de l'éditeur de JavaScript
notamment vérification de la syntaxe lors de la saisie.
- Ajout d'un débogueur de JavaScript.
- Intégration de Mozilla dans la zone
d'éditeur d'Eclipse.
- Ajout de plusieurs outils permettant d'obtenir
des informations sur la page affichée par le navigateur Mozilla
embarqué :
- vue 'DOM inspector' qui détaille
la structure de la page affichée.
- vue 'CSS' qui affiche les propriétés
du style qui s'applique à l'élément sélectionné
dans la vue 'DOM Inspector'.
- vue 'DOM Source' qui affiche le code de
l'élément sélectionné dans la vue 'DOM
inspector' et permet de modifier ce code et de voir le rendu immédiatement
dans le navigateur mozilla embarqué.
- vue 'XHR Monitor' cette vue affiche les
requêtes asynchrones émises par l'application AJAX.
Présentation
de JST (J2EE Standard Tools)
Le projet JST fourni des outils supportant le modèle
applicatif de J2EE (Servlet, JSP et EJB), prenant en compte le modèle
de déploiement (formats WAR et EAR) et permettant de déboguer
les applications J2EE de façon intégrée à
Eclipse.
Prise
en compte des formats WAR et EAR
JST définit plusieurs types de projets. Les plus
notables sont 'Dynamic Web Project' (format WAR) et 'Entreprise Application
Project' (format EAR). L'intérêt de ces types de projets
est de simplifier notamment :
- Le respect d'une arborescence standard (par exemple
création du répertoire WEB-INF pour un WAR).
- La configuration automatique du projet : les types
de projets proposés par JST sont en fait des projets Java, lors
de la création d'un nouveau projet le chemin de compilation est
automatiquement configuré. Les descripteurs de déploiements
sont aussi créés et initialisés (fichier web.xml,
fichier application.xml ...).
- L'ajout de fonctionnalités d'import/export
de fichiers (.war, .ear, ...).
Outils
pour le développement de Servlets, JSP et EJB
L'outillage Java d'Eclipse couvre la plupart des besoins
pour le développement du code d'une application J2EE. Cependant
certaines tâches sont largement simplifiées par l'outillage
proposé par WTP :
- pour les Servlets : un assistant permet de créer
un servlet, l'intérêt principal de cet assistant est d'ajouter
la déclaration du servlet dans le fichier web.xml.
- pour les EJB : en plus d'un type de projet particulier, un assistant
permet de créer des EJB. A noter la possibilité de choisir
si on souhaite ou non s'appuyer sur XDoclet. Le support d'XDoclet est
parfaitement intégré via le déclenchement automatique
des tâches ANT correspondantes lorsque le code d'un EJB est modifié.
- pour les JSP : le développement de JSP sans outil particulier
est assez fastidieux. WebTools intègre deux fonctionnalités
qui simplifient très largement le développement des JSP
: un éditeur de JSP et un débogueur de JSP.
L'éditeur de JSP est construit sur la base de
l'éditeur HTML décrit précédemment (support
de HTML, JavaScript et CSS). Il ajoute la prise en compte des particularités
des JSP, soit d'une part le support des tags propres aux JSP et des taglibs,
et d'autre part les facilités nécessaires pour développer
le code Java intégré dans la page JSP. Le niveau d'aide
à l'écriture de code Java se rapproche de celui offert par
l'éditeur Java standard d'Eclipse avec notamment le support de
la complétion (avec notamment l'ajout des directives d'import)
et la validation pendant la saisie.
Outils
d'exécution et de déboguage
Une attente de base des développeurs d'applications
J2EE est de pouvoir déboguer les applications directement dans
l'environnement de développement. Pour ce faire, JST propose une
vue 'Servers' qui permet de configurer et piloter des serveurs d'applications
(lancement en mode debug, arrêt, publication des applications...).
Les principaux serveurs J2EE sont supportés :
Une fois le serveur lancé en mode débug,
le débogueur Java est utilisé directement pour les servlets
et EJB, pour les JSP le débogueur d'Eclipse a été
étendu pour proposer les mêmes facilités (ajout de
point d'arrêt, pas à pas, visualisation des variables, ...)
Dali
et le développement d'EJB 3.0
Avec Java EE 5 la problématique du développement
des EJB a été largement prise en compte. Les EJB 3.0 sont
amenés à rencontrer un fort succés notamment grâce
à l'implication des principaux acteurs du monde du mapping objet-relationnel
(Hibernate, TopLink,...). Le projet Dali a été lancé
en 2005 par Oracle, JBoss a rejoint le projet fin 2005. La cible de ce
projet est le support de la partie persistences des EJB 3.0 : la spécification
JPA (Java Persistence API). A noter que JPA est utilisable en dehors d'un
serveur J2EE, l'outillage du projet Dali en tient compte.
La version actuelle, Dali JPA Tools 0.5, propose les
fonctionnalités suivantes :
- Génération du fichier persistence.xml.
- Configuration d'un projet Java pour l'utilisation
de JPA (ajout des librairies nécessaires). Une fois les librairies
nécessaires configurées le développeur peut utiliser
les annotations prévues par la spécification JPA.
- Intégration d'outils pour le mapping : la vue
'Persistence outline' permet de visualiser les champs persistants
et les relations, la vue 'Persistence properties' permet de configurer
le mapping de l'élément sélectionné dans
l'éditeur de code source.
JavaServer
Faces Tools
La spécification JavaServer Faces fait partie
intégrante de Java EE 5. Le projet JavaServer Faces Tools a été
créé en 2005 par Oracle. Il ajoute aux outils de développement
de JSP de WTP plusieurs fonctionnalités :
- Configuration d'un projet pour le support des JSF
(utilisation de la notion de 'Project Facet').
- Support des tags JSF dans l'éditeur de JSP,
c'est dans le cadre de ce sous-projet que Sybase a contribué
l'éditeur graphique décrit plus haut (cet éditeur
sera utilisable pour les pages HTML, les JSP et les JSF).
- Ajout d'un éditeur spécifique pour le
fichier faces-config.xml qui permet notamment de définir
graphiquement les règles de navigation.
Conclusion
Fort d'une équipe de développeurs de plus
en plus conséquente, le projet WebTools est devenu une solution
complète pour le développement d'applications J2EE. Le support
des dernières évolutions : EJB 3.0, JSF et aussi AJAX, pourrait
permettre à WTP de devenir l'outil de référence pour
les développements J2EE. En attendant la version 2.0, prévue
pour juin 2007, la version 1.5 occupe la première place des téléchargement
effectués à partir du site Eclipse.org.
Plus d'informations:
- La page d'Eclipse
WTP.
- Les
news d'EclipseTotale concernant Eclipse WTP.
|