Difficile de trouver le temps de vous tenir au courant quotidiennement.
Je vous propose donc un résumé des journées de mardi et de mercredi.
Mardi, seconde journée des universités, j’ai eu l’occasion de suivre une session intitulée « SOA using Web Services » par l’auteur du livre de même nom Mark D. Hansen.
Le speaker a commencé par soulever la difficulté de la programmation de Web Services en Java, en soulignant l’importance de la mise en correspondance de 2 mondes : les objets Java et le XML (à l’image de la problématique d’ORM).
Il a également présenté la différence entre SOAP et REST, en soulignant (ce qu’on oublie souvent) que SOAP ne se limite pas qu’à HTTP (ajoutez y FTP, JMS, SMTP, …).
Quelques éléments sur JAXB, sur JAX-WS, ses annotations, outils (WsGen et WsImport), et quelques illustrations des 3 approches que sont « Code First », « Contract First » et « Meeting in the middle », puis une démo de l’application SOAShopper illustrant la dernière approche pour finir la session.
La session de l’après midi dédiée à EJB et JPA fût l’occasion de réviser un peu la simplification de programmation introduite par les annotations, ainsi que leur utilisation.
Le speaker a notamment introduit le Standalone EJB Client et nous a montré comment attaquer un EJB « proprement ».
Du côté JPA, après quelques rappels sur le vocabulaire, nous avons eu droit à quelques exemples classiques sur les stratégies de mémorisations d’une hiérarchie de classe, sur la gestion du lazy, tout cela agrémenté de quelques points très intéressant pour construire sa couche d’accès aux données le plus simplement possible en exploitant l’API et en la comprenant.
En fin de journée, j’ai eu l’occasion de suivre la session de Xavier Hanin sur Apache Ivy qui est un gestionnaire de dépendances.
Ivy gère pour vous la transitivité des dépendances et s’intègre avec ANT. Ce n’est pas pour autant qu’Ivy est concurrent de Maven puisqu’il ne se concentre que sur une partie de ce que propose Maven, d’autant plus qu’Ivy est compatible avec les repositories Maven 2 (compatibilité qui devrait être totale Maven 2 d’ici la version 2 d’Ivy).
La démo a très bien illustré l’objectif de l’outil et permet de mettre en évidence les dépendances et d’éventuels conflits de version (plusieurs chemins de dépendances amenant à 2 versions différentes d’une même librairie).
Dernière session de la journée, la présentation de Mylyn par Wayne Beaton.
Pour ceux qui ne connaissent pas Mylyn, le point de départ est le constat qu’un développeur passe approximativement 10% de son temps à réellement développer. Le reste du temps est donc du temps optimisable, notamment la lecture du code et l’organisation du travail.
Sur la base de cette réflexion a été concu Mylyn (anciennement Mylar), davantage connu pour l’intégration à Eclipse de différents gestionnaires de tâches / de bugs (Bugzilla, JIRA) mais dont la force est une gestion du contexte utilisateur avec pour objectif de n’afficher dans Eclipse que ce qui est susceptible d’intéresser le développeur (filtre dans le package explorer notamment).
Mylyn permet d’aller jusqu’à persister tout un contexte pour pouvoir le recharger plusieurs jours ou mois plus tard et bénéficier de l’analyse de l’outil pour retrouver les éléments de contexte utile aux tâches qu’on souhaite réaliser. Mylyn propose bien d’autres fonctionnalités complémentaires, notamment la réorganisation des tâches permettant au développeur d’organiser sa semaine.
J’arrive enfin à la journée de mercredi, dont le Keynote nous a donné l’occasion de partager un moment avec James Gosling (qui a tenu à souligner qu’il ne possédait pas de Hummer – cf. la vidéo promotionnelle de JavaPolis 2006 )
Une session intéressante était celle sur Groovy, vainqueur des JAX Innovation Awards 2007. Au programme, illustration des closures Groovy, de la partie GPath pour navigation dans du XML, de l’accès aux données, et même d’une utilisation de l’Automating Office Applications.
Puis Guillaume Laforge nous a présenté sa réflexion sur l’intérêt de Groovy dans l’écriture de DSL, soulignant l’expressivité du langage.
Puis nous avons eu droit à des informations sur Groovy 1.5, avec notamment l’intégration des fonctionnalités Java 5, l’amélioration des performances, et l’intégration aux différents IDE (avec notamment l’incontournable Plugin IntelliJ Idea). Les speakers ont mis en valeur l’intégration des fonctionnalités telles que les annotations et les generics, permettant à Groovy de s’intégrer le plus simplement du monde dans les frameworks Java (il y a notamment un exemple d’utilisation des annotations JPA avec Groovy dans la documentation de JBoss Seam).
L’API de test a également été évoquée et, toujours dans l’optique d’écrire du code consis et parlant, semble pouvoir trouver son public (Mocks, Stubs, GroovyTestCase).
L’après-midi a donné lieu à l’étude des JSR Java EE 6 et EJB 3.1 et leur lot de nouveautés et objectifs, sur lesquels je reviendrais à un autre moment.
Puis en soirée, nous avons eu droit à un BOF très attendu par Neil Gafter sur le thème Exception Transparency. Nous n’avons pas vu beaucoup de closures puisque Neil s’est focalisé sur la problématique des closures qui soulèvent des exceptions.
Et nous voila déjà jeudi midi, j’ai presque rattrapé mon retard
pinaise, ca a l’air bien sympa tout ca !
bon, je vais jeter un oeil sur mylin, je connais pas et ca m’interesse.
(merci pour les comptes rendu ! )