Ce matin sur The ServerSide j’ai trouvé un article de Michael Yuan sur JBoss Seam 2.0 qui reprend les nouveautés et présente le framework JBoss Seam. J’appelle à la conversion les développeurs qui ont un projet avec des EJB3 pour la partie business et JSF pour la partie Web. Vous verrez à quel point JBoss Seam vous simplifie le travail.

Voici quelques questions/réponses sur ce que l’on peut faire aujourd’hui avec JBoss Seam pour compléter l’article de Michael Yuan. J’espère vous apporter ici des nouvelles fraiches par rapport à ce que l’on trouve sur le net.

Est-ce que JBoss Seam est payant?
Non, JBoss Seam est distribué sous licence LGPL.

Est-ce que je dois absolument utiliser le serveur d’application JBoss pour profiter de Seam?
Non, JBoss Seam peut être aussi déployé dans un containeur léger de type Tomcat. Des portages sont en cours pour IBM Websphere, des utilisateurs ont aussi déployés Seam sur le serveur SUN Glassfish. Bref les développeurs de JBoss Seam ont clairement envie de fonctionner sur le plus de serveur d’applications du marché possible. Voir aussi ce post pour Glassfish

Est-ce que JBoss Seam sait génerer des applications Web 2.0 avec Ajax ?

La réponse est oui. A la base, Seam utilise JSF (Java Server Faces) et la communauté open-source propose des API qui sont maintenant intégrées de facto dans JBoss Seam. Il devient ainsi très simple d’ajouter des formulaires qui se mettent à jour partiellement via Ajax par exemple. D’autre part le module Seam Remoting permet au développeur d’implémenter une vraie application Web 2.0 facilement

Est-ce que Seam peut envoyer des emails ? faire des traitements la nuit ?

JBoss Seam peut en effet envoyer des emails. Il est possible de génerer un fichier PDF par exemple et de l’envoyer chaque nuit. Pour l’envoi de l’email, l’api est simple et facile à utiliser. Le traitement de batch avec Seam se repose sur un moteur Asynchrone. Seam peut par exemple faire une tâche chaque heure, chaque nuit et déclencher un traitement. Tout ceci soit via l’api EJB3 d’asynchronisme, soit via l’api Quartz qui est plus puissante. En effet celle-ci permet de créer des tâches avec une date d’écheance par exemple.
Concernant l’envoi d’email, jBPM 3.2 qui est en cours d’intégration dans JBoss Seam 2.0 Beta 1 permet aussi d’envoyer un email lorsqu’une tâche est terminée.

Est-ce qu’il est possible de changer de langue, de locale à la volée ?
Oui en effet le support de l’internationalisation (i18n) est fortement intégré dans Seam, en partie via JSF. Par ailleurs il est possible d’ajouter un composant en 2 clics pour permettre de changer de langue et de Locale à la volée. Ce choix peut être persisté via un cookie. Il existe aussi une possibilité de changer le thème (la skin) d’une application (je pense au module Stylizer chez Reuters…) afin de changer l’aspect d’un site avec un seul clic.

Est-ce qu’Eclipse peut me permettre d’écrire des pages graphiquements ? Existe-t-il un studio ?
J’ai lu que Macromedia prépare une version de DreamWeaver qui reconnait parfaitement JSf 1.2. Cela devrait permettre de coder les pages de la vue plus rapidement. Attention cependant, avec richFaces, ajax4jsf et iceFaces de toutes les façons ces studios ne fonctionnent pas. Il vaut mieux travailler en mode « explode ». Ce mode consiste à compiler votre application, à déployer sur JBoss une arborescence explosée (EAR dans lequel on retrouve un repertoire WAR…). Cela permet alors de travailler sur les fichiers .xhtml (avec Facelets) sans devoir reconstruire tout l’EAR à chaque fois. Vous n’avez alors qu’à lancer un « ant restart » de temps en temps si vous touchez à la partie Java. C’est très pratique.

Par ailleurs sinon je vous conseille de dépenser un peu d’argent pour acheter IDEA IntelliJ. C’est mon quart d’heure sponsor ce soir. Mais entre Eclipse+MyEclipse vs IntelliJ, il n’y a pas photos. IntelliJ reconnait le format xhtml, les JSF et surtout les annotations de JBoss Seam ce qui au passage devrait convertir j’espere quelques lecteurs ici. Ajoutez-y le support de JBoss AS en natif pour controler, débuger JBoss (comme JBoss IDE mais en mieux) et voilà, vous allez craquer.

Si vous avez d’autres questions, n’hésitez pas à commenter.