Compte rendu de la soirée Glassfish/Java EE 6

L’Alpes JUG accueillait mardi Alexis Moussine-Pouchkine, célèbre évangéliste du serveur d’application Glassfish.Alexis  GlassfishAprès nous avoir présenté la roadmap du serveur, Alexis nous a rassuré sur la pérennité de Glassfish, malgré  le rachat de Sun par Oracle.

Glassfish 3 est l’implémentation de référence  des spécifications Java EE, cependant nous avons pu voir que son utilisation est bénéfique même en dehors de l’utilisation de Java EE. Alexis nous a fait une petite démonstration de redéploiement à chaud d’une application Spring, de manière ultra-rapide et transparente. De quoi faire rêver tout développeur qui subit chaque jour les redéploiements complets et redémarrages de contexte en environnement de dev.

La paire GlassfishNetbeans permet donc une compilation et un déploiement incrémental, avec en plus, option propre à Glassfish, la possibilité de conserver les sessions utilisateurs lors du redéploiement. Mais Glassfish ne s’intègre pas uniquement avec Netbeans (dont la version 6.9 vient de sortir) mais aussi avec Eclipse.

Nous avons également pu découvrir HK 2, une couche d’abstraction au dessus d’OSGI à destination des développeurs de Glassfish , offrant la possibilité de développer des services de manière modulaire, sans être fortement couplé à une implémentation OSGI. Ainsi si Glassfish fonctionne principalement sur Apache Felix, il est possible d’utiliser un conteneur OSGI Equinox ou Knopflerfish.

La deuxième partie de la présentation fût  axée sur Java EE 6 et nous a fait faire le tour des  nouveautés de la spécification, comme les EJB 3.1, JSF 2.0 ou encore CDI.
A ce propos nous avons pu remarquer que JAX-RS (que Paul était venu nous présenter en avril) n’était pas inclus dans le profile Web de Java EE 6, ce qui est dommage dans le sens ou le Web et REST sont fondamentalement liés! Heureusement pour nous, Glassfish embarque par défaut l’implémentation Jersey dans sa distribution Web!!

Glassfish est entièrement pilotable programmatiquement et ses différents modules/conteneurs aussi. Alexis nous a donc montré comment tester avec JUnit nos EJBs.

Enfin, nous avons découvert la console d’administration du serveur ainsi que son mode embarqué, qui permet de démarrer le serveur en une commande et de se passer de la phase d’installation. Par exemple pour lancer l’application web toto.war : java -jar glassfish.jar toto.war
Ce mode peut aussi être utilisé pour embarquer le serveur et son application et fournir un package prêt à l’emploi.

Alexis en demonstrationPuis nous sommes un peu sorti des spécifications pour nous intéresser à la partie OSGI de Glassfish et montrer comment déployer ses propres modules dans le conteneur de Glassfish puis intéragir avec eux depuis une application JEE ‘classique’.  Cependant, comme Miguel l’a fait remarquer, on est hors de JEE et notamment pour tout ce qui concerne les ClassLoaders.

En conclusion ce fut une présentation très convaincante, en partant on avait réellement envie de d’installer Glassfish et de s’amuser avec! D’ailleurs c’est ce que j’ai fait dès le lendemain ;o)

Les slides de la soirée JEE6 GlassFish3