avril
2008
Ryan Lubke vient d’annoncer dans son blog qu’à partir de cette nuit, les nightly build de la prochaine version de Mojarra (== Sun JSF RI) 1.2_09 inclueront une nouveauté de taille: un mode développement configurable dans web.xml via un context-param (comme celui de Wicket par exemple) qui permet d’utiliser Groovy pour ecrire les managed beans mais surtout de développer une application JSF en mode PHP-like, i.e. modifier ses classes/pages, et faire un F5 dans le navigateur pour voir le résultat … A dieu le malfamé et lourd cycle de développement inhérent à Java EE (redéploiement à chaque modification, voir même redémarrage du serveur)
Pour ceux qui se plaigneront du fait qu’ils ne connaissent pas la sntaxe de groovy, la réponse est simple: il suffit d’ecrire en Java, ce qui est déjà du Groovy. D’ailleurs, il vaut mieux écrire son code Groovy en Java natif vu qu’à la fin du prototypage, et pour des performances optimales, il faudrait désactiver le mode développement et recoder les classes Groovy en Java.
=> Vous voyez où je veux parvenir: en y allant avec du Java natif, ceci reviendrait à un simple copier/coller
Presque tout serait rechargeable à chaud, des managed beans jusqu’au renderers et listeners, en passant par les validators/converters et même les composants.
Autre point: il est fortement conseillé d’utiliser FAcelets comme technologie de présentation (y’en a déjà qui font du JSF avec JSP ???), car il n’y a pas de rechargement à chaud pour les TagHandlers du JSP ou encore des TLDs.
La mise en place de ceci se présente comme suit:
- Inclure groovy-1.5.5-all.jar dans son classpath
- Ajouter ceci à son web.xml:
<context-param>
<param-name>com.sun.faces.developmentMode</param-name>
<param-value>true</param-value>
</context-param>
<filter>
<filter-name>GroovyFilter</filter-name>
<filter-class>com.sun.faces.scripting.GroovySupportFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>GroovyFilter</filter-name>
<url-pattern>/*</url-pattern>
<dispatcher>REQUEST</dispatcher>
<dispatcher>FORWARD</dispatcher>
<dispatcher>INCLUDE</dispatcher>
<dispatcher>ERROR</dispatcher>
</filter-mapping>(En gros, un context-param et un filtre + son mapping)
- Créer un répertoire « groovy » dans WEB-INF dans lequel placer les fichiers .groovy.
Notez que lorsqu’on référence les beans Groovy dans faces-config, il faut ajouter l’extension .groovy au nom qualifié.
Notez enfin qu’il s’agit encore d’une fonctionnalité encore à son inception, et que c’est loin d’être solide/fiable.