Cette fois ci je m’y suis pris assez tôt pour vous faire un compte-rendu de la réunion du mois de janvier du NormandyJUG.

Le changement d’année s’est accompagné d’un changement de décors puisque cette réunion a eu lieu à l’UFR Sciences et Techniques du Madrillet. Cette soirée avait de quoi plaire avec le thème Java EE 6 et Glassfish. Initialement, la réunion devait s’organiser ainsi :

Au final, il s’est avéré que les deux présentations ont fusionnées et nos deux intervenants ont alterné les présentations des nouveautés de Java EE 6 au travers d’une quinzaine de démonstrations qui tournaient sur Glassfish.
Pour ceux qui ont raté l’événement, Java EE 6 est sorti le 10 décembre 2009 et regroupe actuellement 28 spécifications. Cette nouvelle version apporte sont lot de nouveautés qui raviront de nombreux développeurs parmi les suivantes :

  • Le prunning indique qu’une spécification peut disparaitre dans une prochaine version de Java EE.
  • Les profiles définissent des sous-ensembles ou sur-ensembles de JEE (un peu comme le fait JME). Aujourd’hui, il existe le profile Web Profile.
  • Les EJB Lite.
  • La normalisation du nommage JNDI.
  • Tout est Managed Bean. Avec Managed Bean 1.0 n’importe quel objet est une sorte de POJO EE qui autorise des concepts fondamentaux : cycle de vie, injection et intercepteurs.
  • La mise à jour majeure de JPA 2.0 apporte des améliorations essentielles :
    • Mapping de liste de type simple
    • Embeddable récursif
    • Amélioration de la gestion des Maps
    • Enrichissement du JPQL
    • Normalisation du persistence.xml
    • Lock pessimiste
    • Une criteria API (enfin !)
    • Cache
    • Etc…
  • Servlet 3.0 n’apporte pas grand chose de nouveau :
    • Annotations
    • Extensions via des fragments ou une API
    • API de configuration
    • FileUpload
    • Support de la sécurité
  • Quelques nouveautés intéressantes dans EJB 3.1 :
    • Intercepteurs configurable comme ça se fait en AOP
    • Interface optionnelle pour les EJBs locaux
    • EJBs asynchrones
    • Paquetage dans un WAR possible pour EJB Lite
    • Un nouveau Timer Service qui reprend les bonnes idées de cron
    • EJB Singleton
    • Une container API pour disposer d’un conteneur embarqué
  • JSF 2.0 :
    • Utilisation des facelets
    • Pas de dépendance avec Servlet 3.0
    • Les fichiers de configurations deviennent optionnels
    • Composants et composants composites
    • Amélioration des traces d’erreur
    • Standardisation de l’Ajax via le JavaScript et les tags
    • Bean Validation
    • Template
  • Bean Validation 1.0 permet d’écrire des règles métier une seule fois et de les utilise partout (couche JPA et JSF aujourd’hui). Des règles simples sont pré-définies mais il est possible de créer ses propres règles personnalisées.
  • REST n’a pas été oublié avec JAX-RS 1.1. Tout se fait simplement avec des annotations (comme les web services) : support des mimes types, paramètres, EJB, …
  • Le CDI/DI permet de réaliser un couplage lâche avec un typage fort. Cette spécification définie également la notion de porté en introduisant une nouvelle : la conversation. Cette dernière permet de résoudre la problématique de scénario concurrent sur une interface web (ie pour une utilisation multi-fenêtre ou multi-onglet).

Même si je ne suis pas un très grand fan des annotations, je dois avouer que cette nouvelle version de Java EE est très séduisante et donne envie de passer le plus rapidement possible sur un serveur d’application implémentant Java EE 6.

J’ai essayé d’être le plus concis possible mais il y a tellement de chose qui ont été présentées… J’espère vous avoir donné également envie d’utiliser Java EE 6. Je tiens enfin à saluer Antonio et Alexis pour leur bonne humeur et la qualité de leur prestation !