Le site francophone consacré au projet Eclipse et à OSGi
 
 

 

 

(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.


Sommaire


 

 

 

 

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.

 

 


 

 

 

 


 

 

(c) EclipseTotale - contact(arobase)eclipsetotale.com