Eclipse Europa : le successeur de Callisto

Après Eclipse Callisto (Eclipse 3.2), la fondation Eclipse sort la nouvelle mouture d'Eclipse appelée Europa (Eclipse 3.3) faisant ainsi passer le nombre de projets embarqués de 10 à 21. Que ceux qui sont réticents aux « distributions » d'Eclipse se rassurent car comme l'indique la fondation Eclipse : « While Europa is about the simultaneous release of twenty one projects, it is not a unification of the projects - each project remains a separate open source project operating with its own project leadership, its own committers, and its own project plan. »

Dans la section « téléchargement » du site d'Eclipse, depuis le 29 juin dernier nous avons donc le choix entre ces différentes versions d'Eclipse :

* Java Developers : à destination des développeurs Java SE

* Java EE Developers : à destination des développeurs Java EE

* C/C++ Developers : à destination des développeurs C et C++

* RCP / Plugin Developers : à destination des développeurs utilisant Eclipse comme plate-forme de base pour leurs applications RCP.

* Customize Europa : à destination des développeurs souhaitant créer leur propre version d'Eclipse en ajoutant les plugins via l'Update Manager

Eclipse Europa offre un support complet de Java 6 et embarque différents plugins et de nouvelles fonctionnalités. Dans cette article nous allons utiliser la d'Eclipse : « Java EE Developers » et développer un projet basé sur les EJB 3 afin d'identifier les réels gain de cette nouvelle version.

Voici le nouveau Welcome screen :

Dans cet article nous allons développer un projet avec les technologies JavaEE phare : EJB3 & JSF.

Très souvent dans les tutoriaux nous pouvons trouver une modélisation UML des classes métiers alors que dans la réalité il est relativement rare de débuter un projet sans aucune base préalable.

Prenons donc comme fait que nous devons construire une application à partir du modèle physique de données suivant :

Pour information ce diagramme à été réalisé grâce au plugin Clay Database Modeling qui permet notamment de faire de la rétro-conception afin de rapidement visualiser une struture de base de données.

En revanche, le plugin Data Tools Platform (DTP) : 1.5 regroupe plusieurs outils permettant un accès facilité aux données. La perspective « Database Developement » permet d'accéder à une base de données et d'y exécuter du SQL, la vue « Data Source Explorer » . Dans le quotidien d’un développeur, avoir un client SQL intégré à Eclipse (ou tout autre IDE) est un gain de temps considérable. La première des opérations à effectuer va donc être d'explorer le modèle et visualiser les informations :

Dans cet exemple où nous partons d'une base de données existante, nous allons utiliser l'approche "bottom-up". Pour ce faire nous allons commencer à utiliser les nouveautés apportées par le plugin Web Tools Platform (WTP) : 2.0. WTP est LE plugin incontournable pour développer des applications Web & Java EE sous Eclipse. Les assistants et éditeurs graphiques supportant de multiples normes permettent un gain de temps considérable. De plus, le support des EJB3 (grâce au sous-projet Dali), Java Persistance API (JPA), JSF & Ajax permet à Eclipse de consolider sa place d'environnement privilégié des développeurs Java EE.

Construisons donc un projet de type « JPA Project » que vous trouverez dans la catégorie « JPA » qui aura pour but d'héberger, dans une premier temps les Entity Beans. Nous allons donc générer ces Entity à partir du modèle de données via le menu contextuel « JPA Tools » suivant :

La génération de code (et dans ce cas là d'Entity) n'est pas une grande découverte mais il y a des petits plus qui sont vraiment très apréciable comme l'assistant suivant qui permet de choisir le nom de la classe qui sera mappé à la table :

Une partique courante en base de données est de ne pas nommer une table « user », d'où le fait que nous ayant dans l'assistant ci-dessus une table nommé « xuser » qui sera rattachée à la classe Java nommée « User ». Ce plugin Dali va cependant beaucoup plus loin que la simple génération des Entity Beans puisque c'est surtout l'édition des annotations au sein du POJO (Plain Old Java Object) qui est facilité puisque cela est réalisable à la fois via l'éditeur et également via la vue « JPA Details » :

Voici un extrait du code généré et mappé de l'Entity Bean « User » :

package com.labosun.stockmanager.entity;

...

@Entity

@Table(name="xuser", schema = "database")

public class User implements Serializable {

@Id

private int id;

private String password;

private Date birthdate;

private String firstname;

private String login;

@Column(name="address_fk")

private int addressFk;

private String sex;

...

public int getId() {

return this.id;

}

public void setId(int id) {

this.id = id;

}

public int getAddressFk() {

return this.addressFk;

}

public void setAddressFk(int addressFk) {

this.addressFk = addressFk;

}

...

public String getLastname() {

return this.lastname;

}

public void setLastname(String lastname) {

this.lastname = lastname;

}

}

Une fois cette couche d'accès aux données développé, nous pouvons valider cette tâche au sein d'Eclipse. Et oui nous savions depuis longtemps qu'Eclipse était bien plus qu'un IDE, il se propose grâce au plugin MyLyn de gérer les tâches. Mylyn, version 2.0, fait partie des avancées majeures d'Eclipse. Ce plugin permet d'avoir une vue sur les tâches, les bugs & le planning de vos projets. Pour la définition des tâches, un référentiel distant peut être défini afin que l'ensemble des membres d'une équipe puisse y accéder et ainsi prendre en charge la réalisation des tâches en attente. Vous pourrez donc notamment plannifier vos corrections de bugs en se connectant directement au Bugzilla de l'entreprise ou à un autre système de bug tracking soit distant, soit local. Pour ce faire une nouvelle perspective « Planning » permet de créer vos propre tâches et de les plannifier. Comme vous pourrez le voir dans l'écran suivant, nous pouvons spécifier le détail d'une tâche, son importance, son étât, sa date de début, sa durée, la date limite de réalisation, ... :

Voici un exemple de liaison entre MyLyn et Bugzilla, l'accès / l'ajout aux fichiers attachés à un bug sont facilité, la description de celui-ci. Il est donc très simple de programmer la correction d'une liste de bugs ou d'évolutions. Des notifications des tâches plannifiés à réaliser s'affiche alors dans le coin inférieur-droit de l'écran afin de ne pas "oublier" la correction d'un bug. Cette gestion des tâches intégré à Eclipse permet de mieux gérer son temps en vu d'un meilleur travail en équipe :

Parlons maintenant des nouveautés de l'éditeur en lui même, des raccourcis et fonctionnalités qui viennent enrichir Eclipse 3.3 (Europa). Certains de ces ajouts sont majeurs, d'autres seront moins visibles mais tout autant attendus par la communauté des « Eclipse addicts ».

La nouveauté sans doute la plus marquante est le nouveau raccourci "Ctrl + 3" qui permet d'accéder aux fonctionnalités d'Eclipse sans avoir à naviguer dans les menus. Dommage pour ceux qui connaissent par cœur les chemins complets permettant d'accéder aux éléments d'Eclipse, ils ne pourront pas rivaliser avec ce nouveau menu de recherche rapide. Il suffit donc de saisir le nom d'une commande, menu, vue, perspective,... afin de restreindre les possibilités. Il n'est donc ni nécessaire de connaître l'emplacement, ni le nom complet de l'élément recherché. Encore mieux, le menu de recherche mémorise les derniers éléments sélectionnés. Voici un exemple d'accès à ce nouveau menu :

Tout projet informatique bien document est un gage d'une certain rigueur qui en font très souvent le succès. Avec la correction orthographique (en anglais Etats-Unis ou Royaume-Uni) des commentaires (JavaDoc ou classique), cette qualité sera accru permettant d'éliminer un bon nombre de fautes qui peuvent se « glisser » dans la documentation. Il est possible de lier cette nouvelle fonction à d'autres dictionnaires. Il est donc à prévoir que des dictionnaires dans les différentes langues ainsi que des spécifiques à certain corps de métier : télécoms, finance, … seront bientôt disponibles. Il est très simple de réaliser son propre dictionnaire puisse qu'il suffit d'inscrire dans une fichier texte l'ensemble des mots (un par ligne) à prendre en compte lors de la correction. L'utilisation du raccourci "Ctrl + 1" permet d'accéder à la fonctionnalité Quick Fix que nous connaissons d'Eclipse pour proposer des corrections de code. Dans le cas de la correction orthographique, les propositions proposées seront les mots correctement orthographiés :

De nombreuses autres évolutions apparaissent avec cette version d'Eclipse, nous pouvons citer la fonction Undo qui a été améliorée et donne accès à la restauration de fichiers supprimés, le comparateur de fichiers a subi des évolutions, le drag & drop de texte entre différents éditeurs (le fichier source et destination n'ont pas à avoir la même extension, cela permet donc de rendre les copier/coller encore plus rapides..), la sélection entière d'une ligne de code dans l'éditeur par l'intermédiaire d'un triple clic, le support de Windows Vista (SWT se basant désormais sur WPF), le nettoyeur de code source a subit des amélioration : dorénavant il est possible d'appeler cette fonction lors de chaque enregistrement de fichier, parmi les actions pouvant être faites par ce nettoyeur, nous pouvons citer la réorganisation des imports, la correction de l'indentation du code, le rajout des annotations marquantes, la suppression des opérations de cast inutile,... Le copier / coller de code depuis une source externe (par exemple le contenu d'une classe pris sur le net) génère maintenant les ressources associées (package et classe).

Reprenons notre projet, après avoir développer la partie JPA, nous allons mettre en place une seconde application se basant sur les Java Server Faces. Créons donc un simple projet de type « Dynamic Web Project » auxquels nous allons ajouter les pages JSP du site. Nous commençons par créer la page de login avec un éditeur WYSIWYG qui se compose de plusieurs zones (la palette de composants graphique, le rendu et le code :

Plus qu'un simple éditeur WYSIWYG, WTP intègre surtout un éditeur du fichier de configuration « faces-config.xml » avec de nombreux onglets dont "Navigation Rule" permettant de rapidement visualiser le comportement de l’application Web.


Cet éditeur du fichier « faces-config.xml » permet une gestion vraiement facilité de l'ensemble de la configuration de l'application, que ce soit de l'utilisation de ressources bundles, de validators, de managed beans, ... WTP conforte donc sa place de plugin JavaEE par excellence, que voit utilisiez la technologie JSF ou non.

Dans l'ordre alphabétique nous retrouverons les plugins suivant intégrés à Europa :

* AspectJ Development Tools (AJDT) : 1.5

* Business Intelligence and Reporting Tools (BIRT) : 2.2.0

* Buckminster : 0.1.0

* C/C++ Development Tools (CDT) : 4.0

* Data Tools Platform (DTP) : 1.5

* Device Software Development Platform - Device Debugging (DSDP.DD) : 0.9

* Device Software Development Platform - Target Management (DSDP.TM) : 2.0

* Dynamic Languages Toolkit (DLTK) : 1.0

* Dash (Eclipse Monkey) : 1.0

* Eclipse Communication Framework (ECF) : 1.0.0

* Eclipse Platform, JDT, PDE and Equinox : 3.3

* Eclipse Modeling Framework (EMF) : 2.3

* Eclipse Modeling Framework Technology (EMFT) - Query, Transaction, Validation (MQ, MT, VF) : 1.1

* Graphical Editing Framework (GEF) : 3.3

* Graphical Modeling Framework (GMF) : 2.0

* Model Development Tools (MDT) : 1.0

* Model to Text (M2T) – JET : 0.8

* MyLyn : 2.0

* SOA Tools Platform (STP) : 0.6

* Test and Performance Tools Platform (TPTP) : 4.4

* Web Tools Platform (WTP) : 2.0

Vous pouvez consulter le détail de chacun de ces plugins en accédant à l'adresse suivante : http://www.eclipse.org/europa/projects.php

Pour télécharger cette nouvelle version d'Eclipse vous pouvez toujours utiliser l'adresse habituelle : http://www.eclipse.org/downloads/ et pour obtenir plus d'informations sur cette version, visualiser les différents Webinars, écouter les Podcasts ou tout simplement suivre les nouveautés d'Eclipse Europa, rendez-vous sur le site http://www.eclipse.org/europa/.

A vous maintenant d'essayer et vous faire votre avis sur cet nouvelle version d'Eclipse. On se demande bien les manques qui pourraient subsister à Eclipse... Et pourtant après Europa, une future version est déjà en préparation, la 3.4 qui devrait s'appeler Ganymède. Pour les impatients, une version d'Eclipse 3.4M1 est même disponible depuis le 9 août dernier que vous pouvez récupérer à l'adresse suivante :

http://download.eclipse.org/eclipse/downloads/drops/S-3.4M1-200708091105/index.php




Retrouvez ci-dessous les autres sections du Laboratoire Sun
Evènements
Java Sun Net Talk LIVE CHAT le 2 Avril à 16h303/29/08
SolarisSunDécouvrez les nouveaux Sun Fire sous Intel10/11/07
JavaValtech Days10/9/07
JavaApacheCon du 1 au 4 mai à Amsterdam2/13/07

Exemples de code
JavaManipuler les looks and feel (lister et affecter)10/15/07
JavaFaire sa propre injection de dépendance avec les annotations5/9/06
JavaSplash screen avec progress Bar5/5/06
JavaFaire un splash screen en swing5/5/06

Actualités
SunSun et Fujitsu annoncent un nouveau Sparc647/16/08
SunVisualVM, un outil de surveillance des applications Java7/10/08
SunSun, Microsoft et Cisco contre le DNS Cache Poisoning7/9/08
Serveur d'applicationJBoss 5.0, bientôt disponible !7/7/08
JavaJava bientôt à 100% sous licence GPL6/24/08

Tips du laboratoire
EclipseVisual Editor avec Eclipse Europa, c'est possible3/28/08
EclipseGérer les projets dans un workspace.10/16/07
JavaManager votre server d'application avec Eclipse4/21/07
JavaVue des sub-packages avec Eclipse4/21/07
JavaGlisser-déposer avec Eclipse4/21/07

Laboratoire SUPINFO des technologies Sun
labo-sun@supinfo.com


Conditions d'utilisation et © Copyright 2000-2006 SUPINFO Paris, Paris Academy of Computer Science
23, rue de Château Landon - 75010 PARIS - Tél : +33 (0) 153359700 Fax : +33 (0) 153359701
Respect de la vie privée