I. Introduction

Image non disponible
Image personnelle Cette 5ème édition de Javapolis, organisée par le JUG belge BeJUG, s'est tenue comme les précédentes à Anvers (Belgique) entre le 11 et le 15 décembre. Comme les années passées, c'était dans Metropolis, un complexe de salle de cinéma, faisant que les salles de conf étaient très agréables et les écrans pour les projections impressionnants.

Comme les années précédentes, Javapolis est organisé en deux parties :

  • les deux premiers jours sont des universités, c'est à dire des sessions de 3 heures sur un sujet avec du temps pour rentrer dans les détails
  • les trois derniers jours sont des conférences, c'est à dire des sessions de 1 heure

Sur ces deux parties nous pouvions aussi assister à des quickies, c'est a dire des sessions de 30 minutes sur un sujet précis, ou des BOF (Birds of Feathers), correspondant à des sessions de 1 heure mais en soirée dans de petites salles autorisant plus d'interactivités. Vous pouviez assister à l'un ou l'autre, ou les deux.

II. Ce que l'on a pour son billet

  • un pass d'accès pour la semaine;
  • un sac a dos qui contenait : un T-shirt, un programme, 1 carnet et un bic, ainsi que quelques goodies des sponsors;
  • un mug;
  • un magazine quasi tous les jours;
  • des boissons en libres services;
  • des pâtisseries le matin;
  • un sandwich le midi;
  • des fruits tout au long de la journée;
  • un Meet & Greets;
  • des tables avec des prises pour brancher PC, chargeurs de batteries, ..., ...;
  • un film le jeudi soir, avec un sachet de Pop-corn;
  • une zone d'exposition avec les stands des sponsors et pleins de goodies;
  • et bien naturellement des conférences.

III. Impressions générales

Un travail d'organisation titanesque, mais une équipe qui reste super disponible. Un accueil frisant la perfection :

  • il manquait des sandwich le lundi, mais la chose a été très bien rattrapée les jours suivants
  • un réseau wifi par moment déficient ...
  • de nombreuses excellentes idées comme le Meet and Greets, les camions de frites ....

Une convivialité étonnante et une taille humaine (3000 personnes) qui fait que l'on peut retrouver les gens et discuter avec eux.
Des Java Champions et speakers qui sont accessibles, et avec qui on discute autour d'un café, d'une bière ou d'un cornet de frites.

Pour avoir une idée de l'ambiance générale, vous pouvez consulter les vidéos sur YouTubeLes vidéos sur YouTube (dont une amusante demande en mariage), les images sur le site officiel de JavapolisSite officiel Javapolis ou les plus de 900 photos disponibles sur FlickRPhotos sur FlickR.

IV. Notre Programme

Vous pouvez voir les diapositives de ces présentations sur le site de JavapolisSite officiel de Javapolis (login necessaire). Les vidéos seront progressivement mises en ligne sur le site ParleysSite de Parleys.

A. Lundi

A.1. Jini A Java SOA that Rocks by Jan Newmarch (Christophe)

Jini c'est le truc dont on doit être nombreux a s'être dit : "il va falloir que j'essaie un jour...." sans jamais prendre le temps de le faire. En tout cas, c'était mon cas. L'occasion se présentant, j'y suis allé sans trop savoir ce que j'allais voir. Je savais vaguement qu'il s'agissait "d'une sorte de RMI ou CORBA...". Finalement je n'ai pas regretté. Jan Newmarch nous a fait une présentation complète de Jini. J'y ai finalement appris que c'est un middleware indépendant du protocole, que le proxy n'est pas embarqué dans le client mais téléchargé par le client. Il existe un système de callback du service vers le proxy pour signaler son fonctionnement et donc permette de garbage collecter le proxy si on perd le service, un modèle événementiel permettant de simplifier la gestion de la perte d'évènements, une gestion des commit à deux phases. Il a ensuite abordé les notions de sécurité, et enfin une notion très intéressante qui est celle du space : il s'agit d'une sorte de lookup où l'on peut mettre des objets, y faire des recherches ou se placer en listener pour être averti de changement des objets présents, ce qui peut servir par exemple pour faire du calcul distribué. Si vous cherchez des applications concrètes de Jini, vous pouvez regarder du coté des banques, mais aussi de la formule un pour la collecte télémétrique des informations des voitures. Pour plus d'information sur Jini, vous pouvez lire le tutoriel de Jan NewmarchTutoriel Jini par Jan Newmarch.

A.2. DOJO in Action par Alex Russell (Vincent)

Image non disponible

Alex Russel nous a présenté DOJO, les API/objets qu'il mettait à disposition, les problèmes auxquels il apportait une solution, ... DOJO est très puissant, et vous permettra d'écrire des applications web très puissantes. Et à ce que j'ai vu durant les différentes présentations faites pendant le salon, DOJO a l'air de devenir le standard de facto pour tout ce qui est AJAX.
Malgré cela, la présentation de DOJO faite par Alex Russell m'a quelque peu déçu car elle n'était que théorique. Il l'a en fait très peu illustrée. Lorsqu'il présentait un bout de code DOJO, il n'a jamais montré ce que cela allait afficher à l'écran.
Cette présentation m'a tout de même permis de me faire une idée de ce qu'était DOJO et d'avoir quelques bases. Mais je dois vous avouer que j'ai appris bien plus sur les capacités de DOJO durant la présentation de JMaki. Ce qui, vous le conviendrez n'est tout de même pas normal.

Image non disponible
Image non disponible

A.3. QUICKIES : Rapid Web Application Developpement with NetBeans Visual Pack by Roman Strobl

Image non disponible

Je connaissais déjà les présentations de Roman Strobl qui est un des évangélistes de NetBeans. C'était surtout l'occassion de voir une de ses démonstrations en live. Il s'agit d'une démonstration où, en utilisant NetBeans et le Visual Pack, il développe une application JSF avec login et affichage d'un stock contenu dans une base de donnée et détail d'un élément en moins de 20 minutes et en expliquant ce qu'il fait. Vous pouvez retrouvez ses démonstrations sur son blog. J'ai eu plusieurs fois l'occasion de discuter avec lui pendant la semaine et c'est vraiment quelqu'un qui aime ce qu'il fait.

Image non disponible
Image non disponible
Image non disponible
Image non disponible

A.4. Dojo and Faces by Jonas Jacobi and John Fallows (Christophe)

Jonas Jacobi et John Fallows sont aussi les auteurs du livre "Pro Ajax and JSF" que j'ai gagné lors d'un tirage au sort sur le stand Oracle. Ils ont commencé par nous détailler les différentes étapes nécessaires à la création d'un composant JSF maison. Dans la deuxième partie de leur présentation, ils ont abordé le framework CometdSite du framework Cometd qui est une implémentation d'une technique de programmation qui permet au serveur web d'envoyer des données au client sans que celui ci ne l'ai demandé. Cette solution de "push" permet la création d'application web "event-driven". L'implémentation Cometd utilise les librairies Dojo. Ils ont détaillé un peu les avantages de cette technique et ses utilisations possibles (changement d'un modèle de données partagé, auto déconnexion si l'utilisateur se connecte sur un autre navigateur...). La conclusion étant que Comet permet le web en temps réel et que Faces est la porte d'entrée de Comet vers Java EE. Leur utilisation sera intéressante dans le cadre de la JSR 299 (Web Bean) et la JSR 227 (Standart data Binding & data access facility).

A.5. Java EE 5 Blueprints par Greg Murray & Brian Leonard (Vincent)

Image non disponible
Image non disponible

Cette session était très intéressante par le fait qu'elle nous expliquait quelques bonnes guidelines à suivre avec Java EE 5. Greg Murray a également présenté le Pet Store, version 2, qui est rempli d'effets AJAX, ...
Je ne peux que vous conseiller d'aller y jeter un oeil, non seulement aux Java EE 5 Blueprints, mais également au Pet Store 2.

Image non disponible
Image non disponible
Image non disponible
Image non disponible
Image non disponible
Image non disponible
Image non disponible
Image non disponible
Image non disponible

A.6. BOFS : Hacker vs. Developer by Erwin Geinaert (Christophe)

Image non disponible

Je n'ai malheureusement pas pu assister à toute cette présentation (les discussions hors conférence et dîners sont aussi très intéressants a Javapolis). Il s'agissait d'une présenation sur les problèmes de sécurisation des applications web et webservices. Erwin Geinaert a présenté quelques outils classiquement utilisés pour permettre de modifier les requêtes et utiliser des failles de type injections SQL ou modification des valeurs des champs cachés sur formulaire (le input type hidden avec où l'on stocke admin=false....). Enfin il a parlé des outils permettant d'attaquer directement les web services, la sécurité pouvant se trouver dans le code Java appelé avant le web service.

A.7. BOFS : JSF in the real world, case-study by Alexandre Snaps (Christophe, Vincent)

Cette présentation concernait JSF et son utilisation pour la création d'un site de commerce. Alexandre Snaps s'est intéressé au problème que pose JSF pour ce type de site ainsi que les solutions pour résoudre ces problèmes. Il a notamment abordé les problèmes d'indexation par les robots (commandLink générant du javascript), de bookmark par les clients (nécessite l'utilisation de <redirect/>), de "PostBack" (quand le client fait un BACK avant que la page ne soit servie), ou d'itération de collection au sein de DataTable. Il a principalement insisté sur le fait qu'il est indispensable de connaître le cycle d'un requête JSF pour pouvoir programmer correctement. Il a ensuite rapidement abordé l'intégration de JSF avec Spring et Hibernate.
Nous avons ensuite beaucoup discuté avec lui, et il contribue depuis sur les forums de Developpez.com.

B. Mardi

B.1. Java performance Tuning par Kirk Pepperdine and Heinz Kabutz (Christophe, Vincent)

Kirk et Heinz sont tous les deux des Java Champions. Ils travaillent dans une société spécialisée dans les performances des applications Java. De plus Heinz est aussi l'auteur de la Java Specialist Newsletter. Ils nous ont présenté la méthodologie et les outils pour mesurer les performances des applications et trouver les points problématiques. Leur présentation s'est faite avec un exercice pour ceux disposant d'un portable, et la faiblesse du réseau wifi a forcé Kirk a parcourir la salle avec une clé USB pour permettre la distribution de l'application de test. De la présentation il faut retenir que l'on ne devine pas mais qu'on mesure et qu'il faut savoir quoi mesurer et comment le mesurer. Mais il est aussi nécessaire de répondre à un certain nombre de questions : qu'est ce qui est trop lent, quand est-ce trop lent, où est-ce trop lent, comment cela se manifeste ? Mais une autre question est aussi importante : quand le système est-il suffisament performant ? Enfin, un dernier point très important est que l'on n'extrapole pas : ce n'est pas parce que je marche depuis 10 mètres sans problème avec une cagoule sur la tête que je peux encore marcher 10 mètres, on ne sait jamais quand on va heurter le mur.

Image non disponible
Image non disponible

B.2. QUICKIES : Reachitecturing Legacy J2EE Application with Spring-Hibernate by Peter Pilgrim (Christophe)

Une présentation trop rapide (mais c'est le problème des Quickies qui ne font que 30 minutes) sur la reprise d'une application existante vers une architecture Spring-Hibernate. La présentation ne contenait pas de technique mais était intéressante pour sa méthodologie avec un processus agile et un découpage en plusieurs étapes courtes permettant une validation complète de l'application à chaque étape.

B.3. Spring 2 development by Alef Arendsen and Arjen Poutsma (Christophe)

La présentation a commencé par une présentation rapide de Spring IDE. Ensuite une intéressante démonstration de ce que l'AOP peut vous amener dans vos programmes avec notamment le remplacement de tous les contrôles permettant d'éviter les NullPointerExceptions dans la couche service par l'utilisation d'un aspect. La seconde partie, moins intéressante présentait les possibilités de créer son propre namespace (Présentation Spring 2.0 et Namespaces par Erik GollotPrésentation Spring 2.0 et Namespaces par Erik Gollot). J'ai donc profité de la pause pour m'eclipser et naviguer entre les salles avec les démos visuelles de Web2 et Swing.

B.4. Web 2 and Java in Action by Greg Murray, RIA using Swing Part 2 par Romain Guy, Chet Haase, & Richard Bair (Vincent)

Personnellement, je fais très peu de Swing, et plus de Web. J'étais donc tenté par la présentation de Greg Murray sur le Web2. Ce fut assez intéressant, mais pas assez pour que je n'aille pas jeter un oeil dans l'autre session en parralèle donnée par Romain Guy, Chet Haase, et Richard Bair. Car, il faut le reconnaître, les démos qu'ils font sont très souvent un régal. Mais je me demande toujours quelles sont les entreprises qui accepteraient qu'on passe du temps à mettre ces animations de transition en place dans nos GUI. En tout cas, certainement pas la mienne. Ce qui est triste, du moins pour moi :-).

Image non disponible
Image non disponible
Image non disponible
Image non disponible
Image non disponible
Image non disponible
Image non disponible
Image non disponible

C. Mercredi

C.1. Keynotes: Stephan Janssen (Javapolis), Omar Tazi (Oracle), Laurie Tolson (Sun)

Stephan, leader du BeJUG qui est organisateur de l'évènement, a ouvert ce Keynote. Il nous a indiqué que nous étions plus de 2800 venant de plus de 50 pays pour écouter plus de 110 speakers. Il nous a aussi présenté le site Parleys qui permet déjà de voir des vidéos de SpringOne et qui commence à recevoir des vidéos de Javapolis. La seconde partie a été faite par Omar Tazi qui nous a fait une démonstration de JDeveloper et l'outil de BPEL. Une présentation très commerciale d'un outil performant qui mériterait que l'on prenne le temps de s'y interesser. A noter que l'équipe qui a gagné la RAD Race utilisait JDeveloper. Enfin le Keynote a été conclu par Laurie Tolson (VP of Developer Products and Programs) qui nous a présenté un retour sur quelques chiffres et le passage en Open Source. Cette courte présentation a été suivie d'une présentation de SUN SPOT, un outil de Geek, équipé de communication radio, d'accéléromètre, de connecteur. Ces démonstrations incluaient des robots jouant au loup et un gant permettant de manipuler le bureau 3D de Looking Glass façon "Minority Report".

C.2. Desktop Pattern and Data Binding by Karsten Lentzsch (Christophe)

Karsten est le fondateur de JGoodies. Il nous a présenté les différents patterns d'interaction entre la couche de données et la couche de présentation. Une bonne présentation montrant les avantages et inconvénients de chacune des solutions. Je vous recommande la lecture des diapositives de cette présentation.

C.3. Avec Juggy : diverses interviews : Dalibor Topic (créateur KAffee), François Orsini (JavaDB), Geir Magnusson Jr (Harmony) (Christophe)

J'ai fait la connaissance d'une des figures de la communauté Java. Bruno Souza est le leader du plus gros JUG Brésilien (SouJava - Sociedade de Usuários Java) et leader de la communauté des JUG Leaders. Il vient de quitter ce dernier poste pour entrer chez SUN où il va manager la communauté NetBeans, mais aussi la NetBeans Dream Team. Bruno est aussi celui qui donne vie à Juggy, la mascotte des JUG. Nous (Vincent et moi) avons aidé Bruno pour plusieurs interviews pendant les trois jours restant. Ce mercredi matin, c'était Dalibor Topic (Leader de Kaffe), Francois Orsini (Leader de JavaDB/ Apache Derby) dont une version française de l'interview est visible sur le site, et Geir Magnusson (Leader du projet Harmony que nous avons déranger 10 minutes avant qu'il ne monte sur scène). Ces interviews commencent à apparaitre sur le blog de Juggy : http://weblogs.java.net/blog/thejavafinch/

C.4. Harmony by Geir Magnusson Jr (Vincent)

Image non disponible

Cette session fût très enrichissante, car j'ai toujours eu du mal à comprendre pourquoi un tel projet existait, et qu'est ce que Intel avait à gagner dans cette aventure. En effet, il faut savoir que c'est Intel qui est l'un des principaux contributeurs de ce projet. Et bien, en fait, c'est très important pour Intel de contribuer à une version open source de Java. Cela leur permet de s'assurer par eux-mêmes que les performances de la JVM seront excellentes avec leurs processeurs. Petit fait intéressant, lorsque Geir Magnusson a cité, lors de la présentation de la roadmap future, le nombre de jours qui seraient nécessaires pour faire passer la TCK à Harmony, Mark (Sun) a fait savoir qu'ils pouvaient multiplier le nombre de tests par 10. Ce qui à fait dire à Geir qu'il allait devoir revoir sa roadmap.

Image non disponible
Image non disponible
Image non disponible
Image non disponible
Image non disponible
Image non disponible

C.5. Quickies Java Concurrency by Brian Goetz (Christophe)

Brian Goetz est l'auteur du livre "Java Concurrency in practice". Il nous a présenté les bonnes pratiques pour assurer l'exécution correcte de vos programmes multithreads sans les mésaventures des accès concurentiels aux données. Une présentation malheureusement trop courte puisqu'il s'agissait d'un Quickie.

C.6. Java Performance Myths by Brian Goetz (Christophe)

Toujours Brian Goetz qui nous a expliqué l'origine de certains mythes sur la lenteur de Java. Ils nous a aussi expliqué que certaines anciennes pratiques d'optimisations sont aujourd'hui inutiles (les boucles tournant en arrière car la comparaison à 0 est plus rapide) voire catastrophiques (les pools d'objets justifié en 1.0 qui maintenant augmente inutilement la pression sur le Garbage Collector). Enfin il nous a aussi expliqué que le compilateur faisait beaucoup pour nous (il est capable de ne synchroniser qu'une seule fois un Vector pour une série d'ajouts consécutifs, de ne pas le synchroniser si l'usage du Vector est interne à une méthode, avec portée locale, voire de le remplacer quand il est utilisé pour une concaténation de String). Enfin il faut se méfier du mini Benchmark pour mesurer les performances. La JVM est capable d'exécuter en boucle une méthode en interprétant puis de décider de la compiler en natif. Ce phénomène fait que l'on mesure aussi le temps de la compilation et que selon que la compilation intervient en début ou fin d'itération, la mesure du temps d'exécution sera complétement différente.

C.7. Interview Marc Fleury, Discussion avec Omar Tazi

Durant la pause, on a eu l'occasion de décrocher un interview de Marc Fleury, ce qui fut un moment très agréable pour moi. Marc parlant très facilement. On voit qu'il est passionné par ce qu'il fait. Et ce malgré les ennuis qui commencaient déjà à ce moment-là avec RedHat.

C.8. Typical Pitfalls in Agile Development by Jutta Eckstein (Christophe)

Le développement agile est souvent sujet à de grandes discussions entre les partisans et ceux qui disent que c'est une aberration. Je suis allé à cette présentation en m'inquiétant de trouver une vue un peu trop partisane. Finalement je ne regrette pas, Jutta Eckstein nous a bien présenté les méthodes agiles comme n'étant pas une solution universelle et infaillible à tous nos problèmes. Elle a bien insisté sur les pièges et choses qui font que les gens attendent parfois trop de ces méthodes et sont au final déçus par les résultats. De même elle a traité des différents facteurs qui peuvent faire que l'usage des méthodes agiles peut conduire à l'échec du projet.

C.9. BOF Meet the Java Champions (Christophe, Vincent)

Un BOF permettant aux Java Champions de se rencontrer et à ceux qui le voulaient de venir les rencontrer. Matt Thompson (Sun - Director of Technology Outreach) nous a présenté rapidement l'objectif de cette communauté, puis les Java Champions présents se sont présentés et il y a eu une rapide discussion sur l'organisation de la communauté. La discussion a malheureusement du être interrompue puisqu'un autre BOF avait lieu dans la salle.

C.10. Meet and Greets (Christophe)

Un des meilleurs moments de la semaine : les organisateurs avaient un accord avec un bar à côté. A l'entrée, on nous fournissait deux tickets pour l'obtention de consommations et nous pouvions nous installer. J'ai passé une bonne partie de la soirée en discussion avec Roman Strobl (évangeliste NetBeans de chez Sun). J'ai aussi eu le droit à la démonstration d'une application de concours de programmation écrite par le JUG Hollandais (NLJUGNLJUG).

D. Jeudi

D.1. Keynotes : Marc Fleury (JBoss), Rad Race Contest, Erich Gamma (Eclipse)

Marc Fleury, PDG de JBoss (mais il vient de quitter son poste) a ouvert le Keynotes avec un show à l'américaine. Une arrivée en musique dans une déguisement de Flava Flav chanteur du groupe Public Enemy. Il nous a fait une présentation très intéressante sur l'Open Source professionnel et les modèles économiques associés. On a ensuite eu les résultats de la RAD Race (voir la section dédiée). Enfin Erich Gamma (JUnit, Design Pattern, Eclipse) a conclu ce Keynote. Il nous a détaillé l'organistation du projet Eclipse pour les cycles de développement et l'utilisation de Milestone pour maintenir l'intéret des équipes de développeurs tout en réduisant les variations de stress.

Image non disponible
Image non disponible
Image non disponible
Image non disponible
Image non disponible
Image non disponible

D.2. Direct Web Remoting par Joe Walker (Christophe)

Une présentation amusante de DWR. Cet outils permet de générer un proxy d'une classe Java déployée côté serveur pour permettre sa manipulation par Javascript côté navigateur. La version 2 de DWR permet de faire le contraire, c'est à dire de manipuler le navigateur depuis le serveur. Pour la démonstration, Joe Walker a construit, sur l'heure de présentation et en donnant les explications, une pseudo bataille navale. Nous avons pu nous logguer dans l'application depuis la salle, choisir une case pour nous abriter, tirer sur les autres et utiliser le chat incorporé.
DWR facilite vraiment l'intégration de l'Ajax avec les appels du côté serveur et simplifie grandement toute la machinerie.

D.3. JSR 277 Java Module System par Stanley Ho (Vincent)

Image non disponible

J'attendais beaucoup de cette présentation, mais j'ai été fortement décu. Cette présentation de JSR 277 ne m'a pas du tout donné envie de voir cette JSR intégrée dans une future version du JDK. Est-ce du au fait que cette JSR soit mauvaise ou que l'orateur ne savait pas la "vendre" ? Ce qui m'a fortement fait peur c'est lorsque quelqu'un dans la salle a demandé comment cela allait s'intégrer dans une application Java EE. Et là, la réponse fut qu'ils ne s'étaient pas encore penché la-dessus. Ca m'a jeté un froid dans le dos.

Image non disponible
Image non disponible
Image non disponible
Image non disponible
Image non disponible
Image non disponible

D.4. iText in Action par Bruno Lowagie & Paulo Soares (Vincent)

Image non disponible

C'était la première fois que Bruno Lowagie et Paulo Soares se rencontraient en chair et en os, bien qu'ils travaillent depuis un bon bout de temps ensemble sur iText, mais via internet uniquement. Lors de l'édition 2005 de Javapolis, Stephan avait fait remarquer que le Portugal n'avait pas de représentant. Paulo Soares fût le digne représentant du Portugal cette année. Cette session était très intéressante, donnant le gout de se pencher un peu plus sur iText. On a toujours pleins de projets, et de choses à faire, et il faut déjà beaucoup pour me convaincre de prendre le temps de faire encore autre chose. Et pourtant, c'est ce que Bruno et Paulo ont réussi à faire.

D.5. Java Specialist in Action by Heinz Kabutz (Christophe & Vincent)

Image non disponible
Image non disponible

Heinz Kabutz est l'auteur de Java Specialist Newsletter, une excellente newletter à lire à tête reposée car souvent très technique (en général, je la lis deux fois à quelques jours d'intervalle pour être sur d'avoir compris...). Pour les présentations de Heinz, il en est de même..... Nous avons eu une brillante démonstration de Proxy dynamique utilisant l'introspection et les génériques et la lazy-initialisation, il ne fallait pas un moment d'inattention si on voulait tout suivre. Une présentation que je prendrais le temps de regarder de nouveau lorsqu'elle sera disponible sur Parleys.

Image non disponible

D.6. Spring 2 Update by Rod Johnson (Christophe)

J'attendais avec impatience d'assister à cette présentation de Rod Johnson et finalement j'en suis sorti relativement déçu. Une toute petite présentation des nouveautés de Spring 2, un rapide mot sur le futur de Spring (notamment Spring OSGI) mais surtout beaucoup de temps à répéter que Spring est bien (ce qui est vrai), que Spring est beau, que Spring facilite le dévelopement, que Spring peut vous apporter le succès auprès des femmes... Ah non pas le dernier. En résumé, beaucoup de marketing et pas de technique, d'où ma déception.

D.7. BOF : Jug leaders et diner (Christophe, Vincent)

Un autre moment très agréable lors de ce Javapolis. Il s'agissait d'une rencontre entre JUG Leaders présents. Les JUG sont les Java User Group, des communautés d'utilisateurs Java passionnés qui se réunissent et organisent des conférences, discutent Java ... La rubrique Java de Developpez.com est d'ailleur un Virtual JUG (virtual car nous n'existont pour l'instant que sur le Net). Ce fût l'occassion de mettre des visages sur les noms que nous voyons dans la liste de diffusion et de discuter des actions que nous pouvions engager pour promouvoir Java, mais aussi de rencontrer Matt Thompson et Nichole Scott, deux des employés Sun chargés des relations avec les communautés. Cette réunion a été suivie d'un dîner improvisé en ville pour un certain nombre d'entre nous, permettant de pousser plus avant les discussions.

E. Vendredi

E.1. Automatic Testing of Entreprise Application using Open Source tools by Bruno Bossola (Christophe)

Une présentation de deux outils de test : FitNesse et Selenium

Le premier est un Wiki pour tester vos services. Pourquoi un Wiki pour faire des tests ? Simplement parce que la syntaxe est relativement simple et que c'est un outil collaboratif. Il permet une collaboration étroite avec la MOA qui pourra écrire elle-même les tests fonctionnels d'acceptance sous forme de tableaux avec les paramètres d'entrée et le résultat. Ce wiki permet ensuite l'exécution des tests avec une mise en couleur des résultats et l'éventuelle génération d'un rapport au format Excel pour les managers aimant les notes de synthèse (a noter qu'il y a aussi une fonction de génération des tables de tests à partir d'un tableur). Il permet aussi l'organisation des tests en suite avec des SetUp et TearDown. Pour avoir un apercu de cet outil, vous pouvez aller voir le "Two Minutes Example".

Le second outil, Selenium, permet d'automatiser vos tests d'interfaces web. Il est composé de différents élements :

  • selenium core qui est le moteur du test;
  • selenium IDE qui est un plugin pour Firefox;
  • selenium Remote Control qui permet de developper manuellement les test en Java, .NET, Perl, Python, ou Ruby (la présentation ne parlait pas trop de ce dernier)

L'utilisation est bluffante de simplicité. On utilise le plugin de Firefox pour enregistrer différentes actions dans le navigateur (clic sur le bouton/lien, remplissage de champs). On peut aussi l'utiliser pour vérifier l'affichage de texte spécifique dans la page web. Il permet ensuite de rejouer le scénario éventuellement en mode pas à pas et de le réorganiser.

Ensuite on peut utiliser selenium core pour faire jouer notre test dans n'importe quel navigateur sur n'importe quel OS (voir la page http://www.openqa.org/selenium/ pour la liste de compatibilité). Le système se base sur l'utilisation de iFrame et javascript pour rejouer le scénario de test en automatique et beaucoup plus vite que vous ne pouviez espérer le taper. Comme il est multi-plateforme/navigateur, il vous permettra aussi de tester facilement la compatibilité de vos applications web.

E.2. Refactoring to Seam by Brian Leonard (Vincent)

Ce fut assez étonnant de voir un "netbeans evangelist" présenter une session concernant Seam lorsque l'on sait qu'il n'y a pas de support Seam intégré à NetBeans. Mais cela montre bien l'ouverture d'esprit et de tolérance qui règne dans l'équipe NetBeans. En tout cas, Seam rencontre un succès croissant, et de ce que j'en ai vu, son succès semble bien mérité. Heureusement tout de même que des spécialistes Seam JBoss étaient dans la salle pour venir en aide à l'orateur lors de la séance de Q/R.

E.3. Deadly Security Sins by Stephen De Vries (Christophe)

Il s'agit d'une présentation sur la sécurité. Stephen a commencé par présenter les 5 failles classiques dans la sécurité des applications : le Cross Site Scripting, SQL injection, Directory traversal, PHP Include et Buffer Overflow. La JVM nous protège des deux derniers. Il a donc traité de 4 péchés de sécurité : la non validation des saisies, le cross site scripting, les transactions non autentifiées et la confiance mal placée. Pour chacun de ces problèmes, il a expliqué le fonctionnement, puis présenté les solutions possibles. Il a aussi insisté sur le fait que la sécurité est à prendre en compte tout au long du cycle de vie du projet et qu'il existe des outils pour analyser le code à la recherche de failles classiques et pour tester la solidité de votre application. Il a démontré ces différentes faille avec notamment une faille de SQL Injection sur une serveur Windows permettant de prendre la main sur un shell administrateur.

E.4. Interview & Film spécial "Meet your idols"

Le vendredi, est toujours plus court que les autres jours. Cela nous a permis de faire quelques interviews pour Juggy. Mais le moment le plus amusant, c'est lorsque j'ai proposé à Bruno d'interviewer Stephan aux toilettes, pour respecter le thème choisi par Javapolis. C'est à ce moment là qu'a germé dans l'esprit de Bruno un scénario de tonnerre. Un grand merci en tout cas à Stephan qui a accepté de jouer le jeu. J'ai encore toutes les chutes des vidéos faites avec Bruno sur mon disque dur. Et je les regarde encore quelques fois. Je ne sais pas si je pourrai un jour les mettre en ligne, mais, que de souvenirs.

Image non disponible

F. Stands

Cette année, je donnerais la palme du stand le plus original à celui de JBoss. On pouvait y jouer du Kicker (BabyFoot, ou football de table) et être servi par Marc Fleury lui-même, très disponible. Le deuxième stand que je retiendrai est celui d'ObjectWeb. Où s'étaient concentrés plusieurs représentants des différents projets gravitant sous la bannière ObjectWeb.

Image non disponible
Image non disponible

G. La RAD Race

La RAD Race, c'est 1 journée à développer en Java une application complète. Les équipes (de 2 personnes) reçoivent un cahier des charges bien précis concernant l'application à développer, mais sont entièrement libres quant aux outils à utiliser. Il y avait l'équipe gagnante de l'année passée, mais aussi de nouvelles équipes (dont l'équipe NetBeans). Cette année, la diversité des EDI était encore plus grande que l'année passée (Eclipse, IntelliJ, JBuilder, JDeveloper, NetBeans, WebSphere Application Developer, ...) Cette année, c'est encore JDeveloper qui a gagné. Il va vraiment falloir regarder d'un peu plus près cet outil de développement.

Image non disponible
Image non disponible
Image non disponible
Image non disponible
Image non disponible
Image non disponible
Image non disponible

H. Conclusion

H.1. Christophe

C'est une semaine qui vaut des mois de veilles technologiques, ce sont souvent les gens qui ont fait les trucs qui vous les présentent, des spécialistes qui montrent le maximum des possibilités des outils/api/framework. Peut-être parfois un manque d'objectivité (ils sont là pour vendre, ils ne vont pas dire que c'est mauvais) mais on apprend quand même beaucoup.

H.2. Vincent

Pour moi, cette édition de Javapolis fût la meilleure que j'ai suivie, des 4 éditions auxquelles j'ai participé. C'était la plus fun, la plus agréable en type de rencontre, et la plus diversifiée en type de conférences. Mais les stands de l'année passée étaient plus originaux ... Les Keynotes de Sun sont toujours très agréables à suivre, car ce sont les seuls qui sont le plus orienté Java en général (Java embarqué dans des petites voitures via SPOT, ou manipuler des interfaces avec des capteurs situés dans la paume des mains, ...) et moins vendeurs de solutions toute faites. Le Keynote de Marc fleury était également excellent. Il m'a bien fait rire, tout en faisant réfléchir. Pourquoi j'aime aller à Javapolis :

  • Non seulement on y voit des veilles technologiques;
  • mais on peut également y (re)découvrir des perles (comme JODA, iText);
  • mais surtout croiser et discuter avec bon nombre d'acteurs importants sur le marché Java.

JavaPolis, c'est vraiment un JavaOne, mais avec la dimension humaine en plus. On espère en tout cas vous y rencontrer l'année