Paris JUG : soirée de présentation de Java EE 6 le mardi 13 janvier

Le thème de la première réunion de l'année du JUG parisien était Java EE 6. Antonio Goncalves, co-fondateur du JUG, a présenté les nouveautés apportés à Java Enterprise Edition en tant que membre du JCP, le Java Community Process. Il s'agit du groupe chargé de définir les spécifications de Java dans son ensemble. La première version de Java EE (en 1999) comportait 10 spécifications, la version 6 qui sortira en mai ou juin 2009 en comporte 28.

Plus riche, plus simple, plus léger

Les mots d'ordre de cette nouvelle version sont : plus riche, plus simple, et plus léger. Plus riche avec de nouvelles fonctionnalités introduites par de nouvelles spécifications, notamment concernant les services web. Plus léger avec l'utilisation des EJB3.1 (Entity Bean) et l'utilisation des profiles qui permettent de n'utiliser qu'un sous ensemble de Java EE, comme par exemple un profil spécial pour le web. Enfin, plus simple avec l'utilisation des annotations et donc moins de XML. En effet, à partir de la version 3 de l'API Servlet, il va être possible d'annoter les servlets, les filtres et les listeners (en remplacement du fichier XML). Par ailleurs, il sera possible de fragmenter le fichier web.xml dans plusieurs web-fragment afin de gagner en modularité et en souplesse.

Voici quelques exemples de nouveautés introduites par la version 6 de Java EE (en gardant à l'esprit qu'elles sont susceptibles d'évoluer d'ici la sortie de la version finale).

Le support de l'asynchronisme dans les servlets

Afin de faire face à un besoin croissant d'asynchronisme dans le contexte web, une nouvelle annotation a été introduite : @WebServlet(asyncSupported=true). Elle permet de rendre la main instantanément en suspendant la requête, puis la reprenant ultérieurement.

La simplification de JSF2

JSF2 vise à simplifier en rendant des éléments de configuration optionnels. Par exemple la configuration peut se faire à l'aide de l'annotation @ManagedBean(name="dbUtil", scope="request") au lieu de remplir le fichier faces-config.xml.

L'enrichissement des fonctionnalités de EJB et la simplification

La version 3.1 des EJB permet d'utiliser directement les singletons avec l'annotation @Singleton. Il est garantit qu'une seule instance de l'objet marqué ne sera présente dans la machine virtuelle Java. Par ailleurs, alors qu'il était interdit de créer un thread auparavant dans les EJB (et qu'il fallait par exemple passer par JMS), il sera possible de créer des méthodes asynchrones avec soit un type de retour void, soit l'utilisation de la classe générique java.util.concurrent.Future (donc avec un type paramétré). Enfin, il sera possible d'intégrer les EJB directement dans un war, sans nécessité de créer un ear.

Le nouveau service de Timer

Le service de Timer bénéficie d'une syntaxe à la cron : @Schedule(dayOfWeek="Mon-Fri", hour="9") void (makeUp() {...}. Ceci couplé à l'introduction des méthodes asynchrones, et du conteneur d'EJB léger (embarquable) ouvre de nouvelles portes aux EJB : le batch-processing.

Les changements de JPA2

JPA est désormais spécifié en dehors des EJB, dans la JSR317. JPA est utilisable directement dans Java SE, et s'enrichit d'une API de Criteria, à la manière de Hibernate.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Captcha *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.